Як переглянути AndroidManifest.xml з файлу APK?


309

Чи можливо переглянути Androidmanifest.xmlфайл?

Я просто змінив розширення apkфайлу на zip. Цей zipфайл містить Androidmanifest.xmlфайл. Але я не можу переглянути вміст Androidmanifest.xml. Він повністю зашифрований.

Як я можу переглянути Androidmanifest.xmlфайл?


У мене є один файл APK. Мені потрібно переглянути файл Androidmanifest.xml. тому що я використовував один фреймворк. Цей файл APK також використовував ті ж рамки. Тому мені потрібно подивитися, як налаштувати файл Androidmanifest з цього файлу APK.
бхарат

@Jason Rogers: AFAIK ви можете переглянути цю інформацію. Дивіться це
Вікас Пацідар

Відповіді:


220

Так, ви можете переглядати XMLфайли Android APKфайлу. Для цього є інструмент:android-apktool

Це інструмент для зворотного проектування сторонніх, закритих, бінарних додатків для Android

Як це зробити у вашій системі Windows:

  1. Завантажте файл apktool-install-windows- *
  2. Завантажте файл apktool- *
  3. Розпакуйте обидва в каталог Windows

Тепер скопіюйте APKфайл також у цей каталог та запустіть у командному рядку наступну команду:

apktool d HelloWorld.apk ./HelloWorld

Це створить каталог HelloWorldу вашому поточному "" каталозі. Всередині нього можна знайти AndroidManifest.xmlфайл у розшифрованому форматі, а також можна знайти інші XMLфайли всередині "HelloWorld/res/layout"каталогу.

Ось HelloWorld.apkваш файл Android APK.

Дивіться знімок екрана нижче для отримання додаткової інформації: alt текст


15
Це добре, але я хотів би знати, як просто подивитися на AndroidManifest.xml, не завантажуючи все це. Це зашифроване чи стиснене?
JohnnyLambada

1
@JohnnyLambada : Так, ви можете відкрити і переглянути його в інструменті архівації, як: WinRar / WinZip / 7Zip, але це не має сенсу, оскільки він знаходиться в зашифрованому вигляді.
Вікас Пацідар

9
Апкутол застарілий. Для отримання останньої версії краще ознайомтеся з домашньою сторінкою проекту .
Декін

1
Я отримую: Виняток у темі "main" brut.androlib.AndrolibException: Кілька ресурсів: at brut.androlib.res.data.ResConfig.addResource (Невідоме джерело)
WindRider

3
Тепер команда змінилася на останню версіюapktool d your_destination youraApk.apk
Pranoy Sarkar

109

Android Studio тепер може це показати. Перейдіть до Build> Analyze APK...та виберіть apk. Потім ви можете побачити вміст файлу AndroidManifset.


3
Ця функція була додана нещодавно, і я також хотів би запропонувати це, якщо ви не захочете використовувати командний рядок і у вас не встановлені інструменти платформи у вашому шляху.
anthonymonori

8
на це слід звернути увагу, щоб стати найкращою відповіддю, інші методи тепер надмірно складні.
Себастьян

3
Існує також версія цього вбудованого командного рядка: stackoverflow.com/a/54874783/89818
caw

46

aapt d xmltree com.package.apk AndroidManifest.xml

скидає AndroidManifest.xmlз вказаного APK. Це не у формі XML, але ви все одно можете його прочитати.

aapt (Android Asset Packaging Tool) - це вбудований інструмент, який постачається разом із SDK для Android.


45

У цій темі Діанна Хакборн повідомляє нам, що ми можемо отримувати інформацію з AndroidManifest за допомогою aapt.

Я скочив цю швидку команду Unix, щоб отримати інформацію про версію:

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

чи можна це зробити навіть в додатку для Android? також, чи можна отримати весь файл маніфесту, а не лише ім'я версії?
андроїд розробник

36

Щойно Google випустив міжплатформенний інструмент з відкритим кодом для перевірки APK (серед багатьох інших двійкових форматів Android):

ClassyShark - це окремий інструмент двійкового контролю для розробників Android. Він може надійно переглядати будь-який виконуваний Android та показувати важливу інформацію, таку як інтерфейси класів та учасників, кількість dex та залежності. ClassyShark підтримує декілька форматів, включаючи бібліотеки (.dex, .aar, .so), виконувані файли (.apk, .jar, .class) та всі двійкові XML-файли Android: AndroidManifest, ресурси, макети тощо.

Скріншот ClassyShark


3
Це в 10000 разів простіше, ніж Apktool!
Guilherme Campos Hazan

18

Ви можете використовувати apkanalyzerверсію командного рядка аналізатора APK у комплекті з SDK для Android. Просто виконайте таку команду в CLI:

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

Вам потрібно лише замінити /path/to/android-sdkправильний шлях до вашої версії Android SDK та /path/to/app.apkшлях до файлу APK.


8
Це має бути прийнятою відповіддю, оскільки не потрібно нічого встановлювати з неперевірених джерел.
c4k

зауважте, що це, здається, не працює в Windows :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein

Я отримую помилку: Виняток у потоці "main" java.lang.IllegalStateException: Не встановлено властивість каталогу інструментів, будь ласка, переконайтеся, що ви виконуєте apkanalyzer, я не знав, як його вирішити
jk2K

Це, швидше за все, шлях, який вам потрібен, якщо ви перебуваєте на macOS:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Фредерік,

15

Ви можете використовувати цю команду: зберегти у файл AndroidManifest.txt

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

2
d- це абревіатура dump, яка робить цю відповідь ідентичною цій , яка була розміщена на рік раніше.
Дан Даскалеску

4
Так, але цей код зберегти у файлі > AndroidManifest.txt.
Ахмад Агазаде

хаха, це та сама відповідь, скидання файлу не має значення
Леонардо Сапуй


7

Існує інтерактивний інструмент , який дозволяє завантажити APK Це декомпілюються його і , нарешті , дозволяє вам завантажити поштовий індекс зі всіх джерел, файл маніфесту XML і так далі декомпілювати, все , що без необхідності встановлювати будь - якої програми на вашому комп'ютері: HTTP: / /www.javadecompilers.com/apk

Крім того, якщо ви хочете просто перевірити деякі параметри, ви можете, використовуючи їх інтерфейс користувача


Працював над APK у серпні, не працював над іншим у листопаді
Dan Dascalescu

apktools, здавалося, не створив для мене каталог з результатом, і aapt не показав результат у форматі XML. Цей веб-сайт працював як шарм.
kregus

6

Для декодування AndroidManifest.xmlфайлу за допомогою axmldec :

axmldec -o output.xml AndroidManifest.xml

або

axmldec -o output.xml AndroidApp.apk

Це працює і його можна легко встановити через Homebrew:brew tap ytsutano/toolbox brew install axmldec
gmoz22

5

Aapt2, включений до інструментів побудови Android SDK, може це зробити - сторонні інструменти не потрібні.

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

Починаючи з build-tools v29, ви повинні додати команду xmltree:

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

Це не виводить оригінальний XML, але це акуратно, якщо мені просто потрібно переглянути значення там, не потребуючи витягування APK або запису у тимчасовий файл.
Разіель

2

Ви також можете використовувати мій додаток, детектив додатків, щоб переглянути файл маніфесту будь-якого додатка, встановленого на пристрої.


0

Це стара нитка, але я думав, що я зазначу, що ваш телефон має root, ви можете переглядати його безпосередньо на своєму телефоні за допомогою програми root Explorer. Вам навіть не потрібно витягувати це, щоб побачити.


-1

Файл потрібно декомпілювати (або deodex не знає, який саме). Але ось ще один спосіб зробити це:

-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]\

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.