получить все строки, определенные в АПК

есть ли быстрый способ получить все строки, определенные в apk?

Я делаю что-то вроде этого:

aapt d --values resources app.apk

Я не уверен, что он дает мне все строки.

Если есть более простой способ разбора строки, пожалуйста, дайте мне знать.

4 ответов


вы можете изменить "ресурсы "на" строки", и у вас будет это. Использовать:

aapt d --values strings [APK_FILE]

это сбросит все строки на apk. Дамп включает в себя строковые ресурсы, которые вы ищете.

Это также включает строки, созданные системой, такие как путь к ресурсам (res/drawable-hdpi/icon.пример ПНГ путем).


Я нашел другой, возможно, более простой способ сделать это для конкретного xml-файла.

aapt d xmlstrings app.apk xmlfile

это распакует весь APK, включая превращение файлов обратно в иерархию каталогов, которую вы ожидаете от проекта Android.

http://code.google.com/p/android-apktool/ (deprecated)

http://ibotpeaches.github.io/Apktool/install/

тип

apktool d YourApp.apk

результаты будут отправлены в папку с именем YourApp


вы можете попробовать это в системе Linux:

$ strings yourfile.spk

это разберет все символы ASCII на определенную длину (по умолчанию 4 байта), но вы можете изменить эти длины с параметрами командной строки.

сканирование an .apk, как это даст вам много мусора, хотя, как он найдет любые печатные символы в строке и сбросить его на экран. Пробуя это на APK, я вижу ссылки на GIF-изображения, XML-изображения, в основном, все, что вы ссылка по имени файла в пути/ res / resource. Не упоминает имен функций и т. д., очевидно, так как все это компилируется до машинного языка.

Если вам нужны только ссылки на xml-файл и т. д., вы можете передать свой запрос через grep, например:

$ strings yourfile.spk | grep xml$