X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/59f0d218a6ff34c80cf898f6d7ac62555ba8eb11..202a1fb5d3efb4affe66cabc1f5ed33de0db1d80:/packages/termux-api/termux-api.c diff --git a/packages/termux-api/termux-api.c b/packages/termux-api/termux-api.c index 30c9175c..ca51755c 100644 --- a/packages/termux-api/termux-api.c +++ b/packages/termux-api/termux-api.c @@ -32,10 +32,6 @@ void exec_am_broadcast(int argc, char** argv, char* input_address_string, char* // Close stdin: close(STDIN_FILENO); - char const* const file = "/system/bin/am"; - // Avoid the system am binary from linking to wrong libraries: - unsetenv("LD_LIBRARY_PATH"); - // The user is calculated from the uid in android.os.UserHandle#getUserId(int uid) as "uid / 100000", so we do the same: uid_t current_uid = getuid(); int android_user_id = current_uid / 100000; @@ -71,7 +67,10 @@ void exec_am_broadcast(int argc, char** argv, char* input_address_string, char* // End with NULL: child_argv[argc + extra_args] = NULL; - execv(file, child_argv); + // Use an a executable taking care of PATH and LD_LIBRARY_PATH: + char const* const am_executable = "/data/data/com.termux/files/usr/bin/am"; + execv(am_executable, child_argv); + perror("execv(\"/system/bin/am\")"); exit(1); }