Как просмотреть AndroidManifest.xml из файла APK?

309

Можно ли просмотреть Androidmanifest.xmlфайл?

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

Как я могу просмотреть Androidmanifest.xmlфайл?

Бхарат
источник
У меня есть один APK-файл. Мне нужно просмотреть файл Androidmanifest.xml. потому что я использовал одну структуру. Этот файл APK также использовал ту же структуру. Поэтому мне нужно посмотреть, как настроить файл Androidmanifest из этого APK-файла.
Бхарат
@ Джейсон Роджерс: 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.

Смотрите снимок экрана ниже для получения дополнительной информации: альтернативный текст

Викас Патидар
источник
15
Это хорошо, но я хотел бы знать, как просто посмотреть на AndroidManifest.xml, не загружая все это. Это зашифровано или сжато?
JohnnyLambada
1
@JohnnyLambada : Да, вы можете открыть и просмотреть его в инструменте архивирования, например: WinRar / WinZip / 7Zip, но это не имеет смысла, потому что оно в зашифрованном виде.
Викас Патидар
9
Apktool устарела. Лучше обратиться к их домашней странице проекта для последней версии.
Deqing
1
Я получаю: Исключение в потоке "main" brut.androlib.AndrolibException: Несколько ресурсов: в 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
Эта функция была добавлена ​​недавно, и я также хотел бы предложить это, если вы не заинтересованы в командной строке и у вас не настроены инструменты платформы на вашем пути.
Антонимонори
8
это должно быть одобрено, чтобы стать лучшим ответом, другие методы теперь излишне сложны.
Себастьян
3
Существует версия командной строки этой встроенной , а также: stackoverflow.com/a/54874783/89818
каркать
46

aapt d xmltree com.package.apk AndroidManifest.xml

выгрузит AndroidManifest.xmlиз указанного APK. Это не в формате XML, но вы все равно можете прочитать его.

aapt (Android Asset Packaging Tool) - это встроенный инструмент, который поставляется с Android SDK.

Geobio Boo
источник
45

В этой теме Дайан Хэкборн говорит нам, что мы можем получить информацию из AndroidManifest с помощью aapt.

Я быстро набрал команду unix, чтобы получить информацию о версии:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"
JohnnyLambada
источник
Возможно ли это сделать даже в приложении для Android? также возможно ли получить весь файл манифеста, а не только имя версии?
Android-разработчик
36

Google только что выпустил кроссплатформенный инструмент с открытым исходным кодом для проверки APK (среди многих других двоичных форматов Android):

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

ClassyShark скриншот

Дан Дакалеску
источник
3
Это в 10000 раз проще, чем Apktool!
Гильерме Кампос Хазан
18

Вы можете использовать apkanalyzerверсию APK Analyzer для командной строки в комплекте с Android SDK. Просто выполните следующую команду в 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
Йоав Фойерштайн
Я получаю сообщение об ошибке: Исключение в потоке "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.
Ахмад Агазаде
LOL, это тот же ответ, сброс файла не имеет значения
Леонардо Сапуй
7

Существует онлайн-инструмент, который позволяет вам загрузить APK. Он декомпилирует его и, наконец, позволяет вам скачать zip со всеми исходными файлами, XML-файлом манифеста и т. Д., Декомпилировать все это без необходимости устанавливать какую-либо программу на свой компьютер: http: / /www.javadecompilers.com/apk

Кроме того, если вы хотите проверить некоторые параметры, вы можете, с помощью их пользовательского интерфейса

user3289695
источник
Работал над АПК в августе, не работал над другим в ноябре
Дан Даскалеску
Похоже, apktools не создал для меня каталог с выводом, а aapt не показал результат в формате XML. Этот сайт работал как шарм.
Крегус
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
BitByteDog
источник
Это не выводит исходный XML, но это удобно, если мне просто нужно посмотреть на значение там без необходимости извлекать APK или записывать во временный файл.
Разиэль
2

Вы также можете использовать мое приложение App Detective для просмотра файла манифеста любого приложения, установленного на вашем устройстве.

zmarties
источник
0

Это старая ветка, но я подумал, что упомянул, что у вашего телефона есть root, вы можете просматривать его прямо на телефоне, используя приложение root explorer. Вам даже не нужно извлекать его, чтобы увидеть.

richbai90
источник
-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]\
Kevin
источник