Bagaimana cara melihat AndroidManifest.xml dari file APK?


309

Apakah mungkin melihat Androidmanifest.xmlfile?

Saya baru saja mengubah ekstensi apkfile menjadi zip. zipFile ini berisi Androidmanifest.xmlfile tersebut. Tetapi saya tidak dapat melihat isinya Androidmanifest.xml. Ini sepenuhnya terenkripsi.

Bagaimana saya bisa melihat Androidmanifest.xmlfile?


Saya punya satu file APK. Saya perlu melihat file Androidmanifest.xml. karena saya menggunakan satu framework. File APK itu juga menggunakan kerangka kerja yang sama. Jadi saya perlu melihat cara mengkonfigurasi file Androidmanifest dari file APK itu.
bharath

@Jason Rogers: AFAIK Anda dapat melihat informasi itu. Lihat ini
Vikas Patidar

Jawaban:


220

Ya, Anda dapat melihat XMLfile dari suatu Android APKfile. Ada alat untuk ini:android-apktool

Ini adalah alat untuk merekayasa balik aplikasi pihak ketiga, tertutup, biner Android

Cara melakukannya di Sistem Windows Anda:

  1. Unduh file apktool-install-windows- *
  2. Unduh file apktool- *
  3. Buka paket keduanya ke direktori Windows Anda

Sekarang salin APKfile juga di direktori itu dan jalankan perintah berikut di prompt perintah Anda:

apktool d HelloWorld.apk ./HelloWorld

Ini akan membuat direktori " HelloWorld" di direktori Anda saat ini. Di dalamnya Anda dapat menemukan AndroidManifest.xmlfile dalam format dekripsi, dan Anda juga dapat menemukan XMLfile lain di dalam "HelloWorld/res/layout"direktori.

Ini HelloWorld.apkadalah file APK Android Anda.

Lihat cuplikan layar di bawah ini untuk informasi lebih lanjut: teks alternatif


15
Ini bagus, tetapi saya ingin tahu cara melihat AndroidManifest.xml tanpa harus mengunduh semua ini. Apakah dienkripsi atau dikompresi?
JohnnyLambada

1
@JohnnyLambada : Ya, Anda dapat membuka dan melihatnya di alat pengarsipan seperti: WinRar / WinZip / 7Zip tetapi tidak masuk akal karena berada dalam bentuk terenkripsi.
Vikas Patidar

9
Apktool sudah usang. Lebih baik merujuk ke beranda proyek mereka untuk versi terbaru.
Deqing

1
Saya mendapatkan: Pengecualian di utas "main" brut.androlib.AndrolibException: Berbagai sumber daya: di brut.androlib.res.data.ResConfig.addResource (Sumber Tidak Dikenal)
WindRider

3
Sekarang perintah telah berubah untuk versi terbaruapktool d your_destination youraApk.apk
Pranoy Sarkar

109

Android Studio sekarang dapat menunjukkan ini. Buka Build> Analyze APK...dan pilih apk Anda. Kemudian Anda dapat melihat konten file AndroidManifset.


3
Fitur ini telah ditambahkan baru-baru ini dan saya juga ingin menyarankan ini kecuali jika Anda tertarik menggunakan baris perintah dan Anda memiliki platform-tools di jalur Anda mengatur.
anthonymonori

8
ini harus diputuskan untuk menjadi jawaban terbaik, metode lain sekarang tidak perlu rumit.
Sébastien

3
Ada versi baris perintah dari built-in ini juga: stackoverflow.com/a/54874783/89818
caw

46

aapt d xmltree com.package.apk AndroidManifest.xml

akan membuang AndroidManifest.xmldari APK yang ditentukan. Itu bukan dalam bentuk XML, tetapi Anda masih bisa membacanya.

aapt (Android Asset Packaging Tool) adalah alat bawaan yang hadir dengan Android SDK.


45

Di utas ini , Dianne Hackborn memberi tahu kami bahwa kami bisa mendapatkan info dari AndroidManifest menggunakan aapt.

Saya menyiapkan perintah unix cepat ini untuk mengambil info versi:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"

apakah mungkin melakukannya bahkan di dalam aplikasi Android? juga, apakah mungkin untuk mendapatkan semua file manifes dan bukan hanya nama versi?
pengembang android

36

Google baru saja merilis alat open source lintas platform untuk memeriksa APK (di antara banyak format Android biner lainnya):

ClassyShark adalah alat inspeksi biner mandiri untuk pengembang Android. Itu dapat dengan andal menelusuri Android yang dapat dieksekusi dan menampilkan info penting seperti antarmuka kelas dan anggota, jumlah dex dan dependensi. ClassyShark mendukung berbagai format termasuk perpustakaan (.dex, .aar, .so), executable (.apk, .jar, .class) dan semua XML biner Android: AndroidManifest, sumber daya, tata letak, dll.

Tangkapan layar ClassyShark


3
Ini 10.000 kali lebih mudah daripada Apktool!
Guilherme Campos Hazan

18

Anda dapat menggunakan apkanalyzer, versi baris perintah APK Analyzer yang dibundel dengan Android SDK. Cukup jalankan perintah berikut pada CLI:

/path/to/android-sdk/tools/bin/apkanalyzer manifest print /path/to/app.apk

Anda hanya perlu mengganti /path/to/android-sdkdengan jalur yang benar ke versi Android SDK Anda, dan /path/to/app.apkdengan jalur ke file APK Anda.


8
Ini harus menjadi jawaban yang diterima karena tidak perlu menginstal apa pun dari sumber yang tidak diverifikasi.
c4k

perhatikan bahwa ini tampaknya tidak berfungsi pada Windows :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein

Saya mendapatkan kesalahan: Pengecualian di utas "utama" java.lang.IllegalStateException: Properti direktori alat tidak disetel, pastikan Anda menjalankan apkanalyzer, saya tidak tahu bagaimana mengatasinya
jk2K

Ini kemungkinan besar jalur yang Anda butuhkan jika Anda menggunakan MacOS:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik

15

Anda dapat menggunakan perintah ini: simpan ke file AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt

2
dadalah singkatan untuk dump, yang membuat jawaban ini identik dengan yang ini , yang diposting lebih dari setahun sebelumnya.
Dan Dascalescu

4
Ya, tetapi kode ini disimpan dalam file > AndroidManifest.txt.
Ahmad Aghazadeh

hahaha, itu jawaban yang sama, membuang file tidak membuat perbedaan
Leonardo Sapuy


7

Ada alat online yang memungkinkan Anda mengunggah APK. Ini mendekompilasi dan akhirnya memungkinkan Anda untuk mengunduh zip dengan semua sumber, file XML manifes dan seterusnya terurai, semua itu tanpa harus menginstal program apa pun di komputer Anda: http: / /www.javadecompilers.com/apk

Juga jika Anda hanya ingin memeriksa beberapa param yang Anda bisa, dengan UI mereka


Bekerja pada APK pada bulan Agustus, tidak bekerja pada yang lain pada bulan November
Dan Dascalescu

apktools tampaknya tidak membuat direktori untuk saya dengan output, dan aapt tidak menunjukkan hasilnya dalam format XML. Situs web ini berfungsi seperti pesona.
kregus

6

Untuk mendekode AndroidManifest.xmlfile menggunakan axmldec :

axmldec -o output.xml AndroidManifest.xml

atau

axmldec -o output.xml AndroidApp.apk

Ini berfungsi dan dapat dengan mudah dipasang melalui Homebrew:brew tap ytsutano/toolbox brew install axmldec
gmoz22

5

Aapt2, termasuk dalam alat membangun SDK Android dapat melakukan ini - tidak perlu alat pihak ketiga.

$(ANDROID_SDK)/build-tools/28.0.3/aapt2 d --file AndroidManifest.xml app-foo-release.apk

Dimulai dengan build-tools v29 Anda harus menambahkan perintah xmltree:

$(ANDROID_SDK)/build-tools/29.0.3/aapt2 d xmltree --file AndroidManifest.xml app-foo-release.apk

Ini tidak menampilkan XML asli, tetapi rapi jika saya hanya perlu melihat nilai di sana tanpa harus mengekstrak APK atau menulis ke file sementara.
Raziel

2

Anda juga dapat menggunakan aplikasi saya, Detektif Aplikasi untuk melihat file manifes dari aplikasi apa pun yang telah Anda instal pada perangkat Anda.


0

Ini adalah utas lama, tetapi saya pikir saya akan menyebutkan, ponsel Anda memiliki root, Anda dapat melihatnya langsung di ponsel menggunakan aplikasi root explorer. Anda bahkan tidak perlu mengekstraknya untuk melihatnya.


-1

File perlu didekompilasi (atau deodex tidak yakin yang mana). Tapi inilah cara lain untuk melakukannya:

-Download free Tickle My Android tool on XDA: https://forum.xda-developers.com/showthread.php?t=1633333https://forum.xda-developers.com/showthread.php?t=1633333
-Unzip
-Copy APK into \_WorkArea1\_in\ folder
-Open "Tickle My Android.exe"
-Theming Menu
-Decompile Files->Any key to continue (ignore warning)
-Decompile Files->1->[Enter]->y[Enter]
-Wait for it to decompile in new window... Done when new window closes
-Decompiled/viewable files will be here: \_WorkArea3\_working\[App]\

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.