получить все строки, определенные в apk - PullRequest
11 голосов
/ 30 апреля 2011

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

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

aapt d --values resources app.apk

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

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

Ответы [ 4 ]

13 голосов
/ 25 сентября 2014

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

aapt d --values strings [APK_FILE]

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

Сюда также входят строки, сгенерированные системой, например путь к ресурсам (например, res / drawable-hdpi / icon.png).

3 голосов
/ 30 апреля 2011

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

http://code.google.com/p/android-apktool/ (устарело)

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

Для использования типа

apktool d YourApp.apk

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

2 голосов
/ 30 апреля 2011

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

aapt d xmlstrings app.apk xmlfile
0 голосов
/ 30 апреля 2011

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

$ strings yourfile.spk

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

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

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

$ strings yourfile.spk | grep xml$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...