Bisakah saya mendapatkan file .apk dari aplikasi yang diinstal?

9

Saya telah menggunakan file .apk aplikasi saya di perangkat Qualcomm. Sekarang karena nasib buruk saya laptop saya di mana aplikasi ini dikembangkan dicuri. Jadi saya tidak punya kode aplikasi dengan saya. Namun saya memiliki perangkat yang sebelumnya saya instal aplikasi saya.

Jadi pertanyaan saya adalah, bisakah saya mendapatkan file aplikasi .apk dari perangkat ini? jika ya, tolong beri tahu saya cara mendapatkannya.

Bantuan apa pun cukup besar.

Terima kasih, Gaurav

GamDroid
sumber

Jawaban:

10

Itu harus terletak di /data/app/. Anda dapat mengaksesnya secara langsung jika Anda memiliki root. Jika tidak, Anda harus menggunakannya adb pull. Sebagai contoh:

adb pull / data / app / myapp.apk C: \ backup \ myapp.apk

Info lebih lanjut tentang adb: http://developer.android.com/guide/developing/tools/adb.html

Matius Baca
sumber
4

Jika Anda tahu nama file yang terinstal apk (yang pada beberapa perangkat mungkin myapp-1.apk atau myapp-2.apk daripada hanya myapp.apk) Anda dapat langsung mengaksesnya sebagai pengguna biasa termasuk satu adb berjalan sebagai pada perangkat yang aman, jadi Anda harus dapat menariknya. Tetapi jika Anda tidak tahu nama apk yang diinstal , Anda tidak dapat menelusuri direktori / data / app tanpa menjadi root atau aid_system.

Mungkin layak menebak-nebak nama yang terinstal - coba saja, coba dengan -1.apk, dan -2.apk, dll.

Mungkin ada cara lain: Saya percaya yang berikut ini akan bekerja pada perangkat yang aman tetapi tidak ada di depan saya saat ini untuk mengujinya.

EDIT: Ide baru untuk menentukan nama file APK yang tepat

1) adb pull / data / system/packages.xml

2) Lihat untuk entri kodePath aplikasi Anda

3) adb tarik itu

EDIT: Sehubungan dengan ide lama di bawah ini, Matthew menemukan bahwa sementara file per-proses di bawah / proc telah membaca izin pada perangkat yang diamankan, mereka kosong ketika dibaca oleh pengguna yang tidak memiliki hak selain dari pemiliknya. Jadi ini tidak akan berhasil.


1) Dapatkan aplikasi Anda berjalan. Anda juga akan membutuhkan mesin dengan adb.

2) jenis

adb shell ps 

dan cari baris dengan nama aplikasi Anda:

app_1     11959 907   112984 27580 ffffffff afd0c5bc S com.clevername.myapp

3) ambil nomor di kolom kedua yang merupakan id proses, dan lihat itu peta memori virtual, dalam hal ini saya akan mengetik

adb shell cat /proc/11959/maps

dan mencari baris di mana ia telah memetakan file apk sendiri ke dalam memori

43e9c000-43ea3000 r--s 001f4000 b3:06 15393      /data/app/com.clevername.myapp-1.apk

4) Itulah nama file yang harus Anda tarik adb

adb pull /data/app/com.clevername.myapp-1.apk .

Pemeriksaan izin direktori di / proc menunjukkan ini harus bekerja untuk pengguna yang tidak berhak, saya minta maaf jika tidak. Jika Anda terbiasa dengan penggunaan 'grep' Anda dapat menggunakannya untuk menghindari pemindaian output secara manual.

Tambahan: Saya tidak begitu yakin apa cerita pada aplikasi yang diinstal ke kartu SD.

Chris Stratton
sumber
Saya baru saja mencoba perangkat aman saya; adb shell cat /proc/####/mapssayangnya tidak mengembalikan apa-apa.
Matius Baca
@ Matthew ... aneh, saya mensimulasikan kasus aman dan melihat sebagian besar file dalam proc memiliki ukuran nol, tetapi dapat dibaca. Sebelumnya saya hanya memeriksa bahwa mereka akan membaca izin. Mungkin itu dilakukan dengan membatalkan mereka daripada izin sehingga alat baca / proc tidak mendapatkan aliran kesalahan akses yang konstan. Oh well ... menebak varian nama APK yang diinstal mungkin yang terbaik.
Chris Stratton
Nama file apk saya semuanya gila dan tidak dapat dilewati, tetapi menggunakan package.xml bekerja untuk mencari tahu nama aslinya. :)
paleozogt