Saya memerlukan alat baris perintah khusus dan saya telah membuat program C di shell Linux saya. Saya telah mengkompilasi program dengan cross-compiler ARM. Saya kemudian telah memindahkan program ke sistem file Android dan mencoba menjalankannya.
Outputnya adalah izin ditolak.
Apa yang harus saya lakukan, untuk menjalankan program yang saya buat sendiri di sistem file Android?
chmod +x pgm
dan./pgm
juga?noexec
bendera. Anda harus memindahkannya ke penyimpanan internal ponsel, atau menjalankannya melalui shell (missh /path/to/myexecutable
.).Jawaban:
Saya berasumsi bahwa Anda menggunakan adb push untuk mengunggah executable Anda ke kartu-sd. Sayangnya sd-card selalu dipasang dengan "noexec" yang berarti Anda tidak dapat menjalankan apa pun dari sini.
Oleh karena itu Anda harus menyalin file executable ke sistem file lokal, misalnya ke / data / local. Jika perangkat tidak di-rooting atau Anda tidak menginstal BusyBox tidak akan ada perintah "cp". Anda hanya dapat menggunakan cat:
cat /sdcard/myprog > /data/local/myprog
.Maka Anda harus mengatur izin yang dapat dieksekusi pada yang dapat dieksekusi. Chmod di android biasanya tidak mendukung sintaks "u + x". Karena itu Anda harus menelepon
chmod 555 /data/local/myprog
.Setelah itu Anda bisa menjalankan executable Anda:
/data/local/myprog
.sumber
tmp-mksh: /data/local/workspace/clang+llvm-5.0.0-aarch64-linux-gnu/bin/clang++: No such file or directory
meskipun file tersebut adaPertama, Anda harus mendorongnya ke direktori, seperti
/data/local/tmp
. Kemudian, Anda harus mengatur izin untuk itu menggunakanchmod 755 executable
. Setelah itu, Anda dapat menjalankannya sebagai./executable
.Langkah-langkah lengkapnya adalah sebagai berikut:
Atau, jika Anda ingin menjalankannya dari folder aset Anda, Anda harus menyalin file ke folder data Anda
/data/data/packagename/
. Kemudian menggunakanFile
kelas, mengatursetExecutable
benderatrue
untuk file dan menjalankannya dengan kelas Proses atau paket pihak ketiga seperti Root Tools .sumber