Исполняемый файл убит системой на Android, но исполняется через «Adb Shell»Android

Форум для тех, кто программирует под Android
Anonymous
Исполняемый файл убит системой на Android, но исполняется через «Adb Shell»

Сообщение Anonymous »

У меня есть кросс-скомпилированная GCC для работы на устройстве Android Arm64, и я могу запустить его на эмуляторе с «оболочкой ADB»: < /p>

Код: Выделить всё

130|generic_arm64:/data/data/com.mycompany.myproject/files/sdk/hardware/tools/avr/bin # ./avr-g++ -v
Using built-in specs.
COLLECT_GCC=./avr-g++
Target: avr
Configured with: ...
Thread model: single
gcc version 7.3.0 (crosstool-NG 1.28.0.1_403899e)
Но если я запускаю его из приложения с помощью runtime.getRuntime (). exec () (или с помощью ProcessBuilder ). Он убит Android, а код возврата - 159.
Я использую d, и я ясно вижу, что он убит Android:

Код: Выделить всё

[pid 18202] chdir("/data/app/com.mycompany.myproject-MofhdxOiFns4__o-Osu8rw==/lib/arm64") = 0
[pid 18202] execve("/data/user/0/com.mycompany.myproject/files/sdk/hardware/tools/avr/bin/avr-g++", ["/data/user/0/com.mycompany.mypr"..., "-v"], [/* 14 vars */]) = 0
[pid 18202] --- SIGSYS {si_signo=SIGSYS, si_code=SYS_SECCOMP, si_call_addr=0x4d186c, si_syscall=__NR_set_robust_list, si_arch=AUDIT_ARCH_AARCH64} ---
[pid 18202] +++ killed by SIGSYS +++
[pid 18201] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=18202, si_uid=10100, si_status=SIGSYS, si_utime=0, si_stime=0} ---
< /code>
Что может быть причиной?
Я пытался избежать передачи текущих переменных DIR и среды. Похоже, Si_syscall = __ NR_SET_ROBUST_LIST 
является проблемой. AVR-GCC был перекрестно скомпилирован с использованием «Aarch64-Linux-Gnu», а не «Aarch64-Linux-Android». Это поможет? Кажется, для этого есть блокатор. Также неясно, как это работает от "Adb Shell" ..

Подробнее здесь: https://stackoverflow.com/questions/797 ... -adb-shell

Вернуться в «Android»