Merge pull request #181 from its-pointless/master
[termux-packages] / packages / termux-api / termux-api.c
index 30c9175..ca51755 100644 (file)
@@ -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);
 }