Potrzebuję specjalnego narzędzia wiersza poleceń i stworzyłem program C w mojej powłoce Linux. Skompilowałem program z kompilatorem krzyżowym ARM. Następnie przeniosłem program do systemu plików Android i próbowałem go uruchomić.
Dane wyjściowe są zabronione.
Co muszę zrobić, aby uruchomić własne skompilowane programy w systemie plików Android?
chmod +x pgm
a potem./pgm
także?noexec
flagą. Musisz przenieść go do pamięci wewnętrznej telefonu lub uruchomić za pomocą powłoki (npsh /path/to/myexecutable
.).Odpowiedzi:
Zakładam, że użyłeś adb push do przesłania pliku wykonywalnego na kartę SD. Niestety, karta SD jest zawsze montowana z opcją „noexec”, co oznacza, że nie możesz stąd nic wykonać.
Dlatego musisz skopiować plik wykonywalny do lokalnego systemu plików, np. Do / data / local. W przypadku, gdy urządzenie nie jest zrootowane lub nie masz zainstalowanego BusyBox, nie będzie komendy „cp”. Możesz po prostu użyć kota:
cat /sdcard/myprog > /data/local/myprog
.Następnie musisz ustawić uprawnienia do pliku wykonywalnego. Chmod na Androidzie zwykle nie obsługuje składni „u + x”. Dlatego musisz zadzwonić
chmod 555 /data/local/myprog
.Następnie można wykonać swój plik wykonywalny:
/data/local/myprog
.źródło
tmp-mksh: /data/local/workspace/clang+llvm-5.0.0-aarch64-linux-gnu/bin/clang++: No such file or directory
chociaż plik jest obecnyNajpierw musisz wepchnąć go do katalogu, takiego jak
/data/local/tmp
. Następnie musisz ustawić uprawnienia do tego za pomocąchmod 755 executable
. Następnie możesz uruchomić go jako./executable
.Wykonaj następujące kroki:
Alternatywnie, jeśli chcesz uruchomić go z folderu zasobów, musisz skopiować plik do folderu danych
/data/data/packagename/
. Następnie za pomocąFile
klasy ustawsetExecutable
flagętrue
na plik i uruchom ją za pomocą klasy Process lub pakietów stron trzecich, takich jak Root Tools .źródło