Saya mencoba mengekstrak file APK dari aplikasi Android yang diinstal TANPA izin root.
Saya pikir ini tidak mungkin, karena semua file APK untuk aplikasi non-sistem terletak di / data / aplikasi, dan mengakses folder ini memerlukan izin root. Kemudian saya menemukan bahwa ada banyak aplikasi di Google Play store yang tampaknya memiliki akses ke file APK bahkan pada perangkat yang tidak di-rooting.
Dapatkah seseorang memberi tahu saya bagaimana ini mungkin? Tidak ada aplikasi cadangan yang membuat cadangan file APK tanpa root?
Jawaban:
Mengakses / data / aplikasi dimungkinkan tanpa izin root; izin pada direktori tersebut adalah rwxrwx - x. Menjalankan izin pada direktori berarti Anda dapat mengaksesnya, namun kurangnya izin baca berarti Anda tidak dapat memperoleh daftar kontennya - jadi untuk mengaksesnya Anda harus mengetahui nama file yang akan Anda akses. Pengelola paket Android akan memberi tahu Anda nama apk yang disimpan untuk paket yang diberikan.
Untuk melakukan ini dari baris perintah, gunakan
adb shell pm list packages
untuk mendapatkan daftar paket yang diinstal dan menemukan paket yang diinginkan.Dengan nama paket, kita bisa mendapatkan nama file aktual dan lokasi APK menggunakan
adb shell pm path your-package-name
.Dan mengetahui direktori lengkapnya, kita akhirnya dapat menarik adb menggunakan
adb pull full/directory/of/the.apk
Kredit ke @tarn untuk menunjukkan bahwa di bawah Lollipop, jalur apk akan
/data/app/your-package-name-1/base.apk
sumber
adb shell pm list packages
untuk mendapatkan daftar paket yang diinstal, pilih paket yang diinginkan, tambahkan-1.apk
, dan tarik dari/data/app
. Contoh: Jika nama paketnya adalahorg.mozilla.firefox
, gunakanadb pull /data/app/org.mozilla.firefox-1.apk
.adb: error: remote object '/data/app/com.Slack-1/base.apk' does not exist
Android menambahkan nomor urut ke nama paket untuk menghasilkan nama file APK akhir (mungkin ini bervariasi dengan versi OS Android). Urutan perintah berikut ini berfungsi pada perangkat yang tidak di-root :
Dapatkan nama path lengkap file APK untuk paket yang diinginkan.
Hal ini memberikan output sebagai:
package:/data/app/com.example.someapp-2.apk
.Tarik file APK dari perangkat Android ke kotak pengembangan.
Lokasi APK setelah penarikan berhasil adalah di ../sdk/platform-tools/base.apk di komputer / laptop Anda.
sumber
Anda tidak memerlukan izin ROOT untuk mendapatkan daftar Aplikasi yang Diinstal.
Anda dapat melakukannya dengan PackageManager android.
Di bawah ini adalah cuplikan kode kecil.
sumber
sumber
Ketika Anda menginstal Eclipse untuk Android:
sumber
Pada Nougat (7.0) versi Android dijalankan
adb shell pm list packages
untuk mendaftar paket yang diinstal pada perangkat. Kemudian jalankanadb shell pm path your-package-name
untuk menunjukkan jalur apk. Setelah menggunakan adb untuk menyalin paket ke Unduhanadb shell cp /data/app/com.test-1/base.apk /storage/emulated/0/Download
. Kemudian tarik apk dari Unduhan ke mesin Anda dengan menjalankanadb pull /storage/emulated/0/Download/base.apk
.sumber
Saya mendapat
does not exist error
Inilah cara saya membuatnya bekerja:
sumber
Daftar PackageManager.getInstalledApplications () akan memberi Anda daftar aplikasi yang diinstal, dan ApplicationInfo.sourceDir adalah path ke file .apk.
sumber
Saya menemukan cara untuk mendapatkan nama paket APK di perangkat non-root. itu tidak begitu elegan, tetapi bekerja sepanjang waktu.
Langkah 1 : di perangkat Anda, buka APK target
Langkah 2 : di jendela cmd PC, ketikkan perintah ini:
karena output dari perintah ini banyak, redirect ke file disarankan.
Langkah 3 : buka file dump.txt ini dengan editor apa pun.
untuk perangkat sebelum Android 4.4:
awal file akan terlihat seperti ini:
nama paket ada di baris ke-3, com.tencent.mm untuk contoh ini.
untuk Android 4.4 dan yang lebih baru:
output dumpsys telah berubah sedikit. coba cari "Stack # 1", nama paket akan sangat dekat di bawahnya.
Juga, cari "baseDir", Anda akan menemukan path lengkap file apk!
sumber
Buka ES explorer -> tekan tombol Menu di sudut kiri atas (tiga garis horizontal) -> di bagian Perpustakaan pilih aplikasi.
Dengan demikian, Anda mendapatkan daftar semua aplikasi pengguna. Temukan aplikasi Anda dan pilih dengan lama mendorongnya. Kemudian tekan "Lainnya" di sudut kanan bawah dan pilih "Kirim". Kemudian Anda dapat menggunakan opsi yang berbeda, misalnya Anda dapat memilih "ES Save To" untuk menyimpan file .apk ke direktori home Anda atau di mana pun.
sumber
Atau Anda bisa mendapatkan 'Transfer File Bluetooth' dari Google Play dan mengatur folder home ke
/system/
. Maka Anda bahkan dapat pergi ke/
.sumber