Menjalankan aplikasi dari emulator terminal [tertutup]

8

Saya memiliki tablet Nexus 7 Jelly Bean yang telah di-rooting dan setiap kali saya mencoba menjalankan aplikasi dari aplikasi emulator terminal setelah chmod 777 menggunakannya dan menggunakan sintaks ("./applicationName") itu menegaskan bahwa saya tidak memiliki izin untuk mengeksekusi meskipun saya memberikan superUser priv saya menggunakan ("su"). Setelah itu saya melakukan sedikit riset dan saya mengetahui bahwa jika Anda menyalin file ke direktori (/ data / lokal / temp /) Anda harus dapat menjalankan aplikasi. Jadi ketika saya mencoba mengatakan bahwa file tersebut tidak ada walaupun muncul ketika daftar isi direktori menggunakan ("ls")

Saya tidak tahu langkah apa yang harus diambil, jika ini membantu saya mencoba menjalankan (scp) sebagai tes tapi saya berharap dapat menjalankan versi dns2tcp yang dikompilasi khusus. Saya tahu saya bisa menggunakan aplikasi yang lebih baik seperti hello world dikompilasi secara asli pada perangkat tetapi saya tidak bisa mendapatkan C compiler untuk android seperti gcc.

Terima kasih atas sarannya

Andrei0427
sumber
2
dapatkah Anda menambahkan sedikit transkrip dari apa yang Anda lakukan? / sdcard dipasang dengan fitur 'noexec' yang mencegah executable dijalankan. Apakah Anda menentukan path lengkap dengan percobaan kedua (/ data / local / tmp / yourprogram)?
ce4
@ ce4 Saya telah mencoba apa yang Anda sebutkan di bagian kedua dari komentar Anda. Inilah transkripnya: pastebin.com/RkuMHuBj EDIT: Ya, saya lupa menekan shift + enter :) my hehe hehe
Andrei0427
Apakah Anda mencoba menentukan jalur lengkap untuk eksekusi - misalnya /data/local/tmp/scp? Dan memastikan scpfile Anda tidak memiliki ekstensi file ketika dipanggil tanpa?
Izzy
@Izzy saya punya, ya. Adakah yang bisa menjalankan aplikasi C kustom dari terminal itu sendiri di perangkat Android?
Andrei0427
Jika aplikasi tidak dikompilasi untuk Android, itu tidak akan berfungsi.
Matius Baca

Jawaban:

3

coba letakkan shdi depan perintah Anda, mis .:

sh ./scp

atau

sh -c ./scp
Esso
sumber
Saya telah menerima kesalahan sintaks saat menjalankan aplikasi, saya menduga itu terjadi karena itu tidak dikompilasi untuk tablet itu sendiri karena saya merobeknya dari telepon saya. Sayangnya, ini pasti berarti berhasil .. kan?
Andrei0427
kesalahan apa yang kamu terima?
EsOsO
perintah pertama pasti tidak akan berfungsi (./scp tidak dalam format yang dapat diartikan oleh shell), yang kedua adalah berlebihan (itu hanya berjalan ./scp dalam subkulit). Keduanya tidak akan memperbaiki izin eksekusi yang tidak sesuai dan / atau ketidakcocokan lainnya.
ce4
2

Aplikasi emulator harus dapat menjalankan aplikasi lain dari direktori sendiri. Direktori itu disebut sesuatu seperti /data/data/com.super.emulator. Coba berikan path lengkap ke aplikasi yang Anda inginkan di emulator.

Jika Anda ingin mendapatkan kompiler untuk Android, Anda dapat menggunakan NDK . Mudah didapat, gratis digunakan.

Tidak bisakah Anda juga mendorong file Anda ke /system/binmelalui adb ? Saya tidak tahu apakah Anda mendapatkan izin itu saat Anda melakukan root pada perangkat Anda. Tetapi jika itu masalahnya, seharusnya membuat hidup Anda lebih mudah.

auselen
sumber
1

Kemungkinan besar Anda tidak dapat menjalankan program karena pustaka pada perangkat tempat Anda menyalinnya agar tidak hilang dari perangkat tempat Anda menyalinnya.

Karena tujuan akhir Anda adalah menyusun program dan menjalankannya secara native di telepon, bolehkah saya menyarankan Anda menggunakan Android NDK ? Dokumentasi NDK mencakup STANDALONE-TOOLCHAIN.HTMLyang menjelaskan cara mengkompilasi silang program asli untuk dijalankan di perangkat Android Anda.

Michael Hampton
sumber
0

Jika Anda di-rooting (saya mengerti), gunakan superintah dan kemudian jalankan script asli Anda. Jika masalahnya adalah izin, ini harus memperbaikinya. Dan jika Anda menggunakan skrip shell, Anda bisa menambahkan baris ini di atasnya. Anda mungkin harus memeriksa pengaturan superSu Anda (atau aplikasi pengguna super mana pun yang Anda miliki dengan root), dan pastikan emulator terminal Anda memiliki izin root.

Jika Anda tidak di-rooting (atau tidak dapat menjalankan sebagai root untuk beberapa alasan), saya sarankan untuk melihat bagaimana XBMC melakukannya, karena saya percaya itu dapat menjalankan aplikasi dalam mode pengguna.

Semoga berhasil.

Christopher
sumber