android:isSplitRequired, android:debuggable,
android:testOnly
.
Для работы рекомпиляции требуется наличие бинарников aapt's. Запрос об установке появляется при первом запуске приложения. Если вы этого не сделали, загрузка осуществляется в "Настройки » Сборка и декомпиляция » Замена инструментов » Загрузить для ... »
Базовый путь: /system/framework/..
Они также могут находиться в /system/vendor/framework и т.д. смежных директориях. Если эти директории существуют (редкое явление).После декомпилировать и компилировать как обычный apk. Для сохранения оригинальных META-INF и манифеста – в настройках декомпиляции включить переключатель "Соответствие оригиналу".
При сборке в файлах Smali сохраняются отладочные данные, такие как .line, .param
и т.д.
<application />
аттрибут android:debuggable
значением true
.
Объявляет системе, что это debug-приложение. Позволяет расширить доступ к логгированию этого
приложения. Взаимодействие с работоспособностью этой функции возможно лишь с помощью специальных
инструментов (такие есть в Android Studio, а также отладки на уровне ADB, т.д.). Эта не
относится к журналу Logcat – количество отладки в системный журнал не изменятся при изменении
этого параметра.
Для указания такого приложения как текущего для отладки – выбрать его в "Системные настройки » Для разработчиков » Приложение для отладки" (пути могут отличаться).
Вопрос требует уточнения.
По умолчанию, ID ресурсов внутри resources.arsc выставляются по арифметической прогрессии. В некоторых случаях она может быть нарушена – некоторые места внутри типов значений могут быть не заполнены (являются незанятыми).
На эти места устанавливются с заглушки APKTOOL_DUMMY для восстановления целостности прогрессии. Эти строки никем не используются и ни на что не влияют.
Небольшое примечание:Если удалить объект ресурса из res/values/public.xml, то при сборке он попытается найти такое свободное место и установить в нём свой ID. Если свободных мест нет, он добавится в конце списка объектов из своей категории. Не рекомендуется это делать с ID объектов, которые указаны в Smali – это вызовет падение, т.к. указанный по ID ресурс был перемещён (его больше не существует как такового).
Удаление public.xml целиком заставит Apktool создать прогрессию с нуля – тогда APKTOOL_DUMMY не будет нигде установлен, т.к нет свободных мест между начинающим и замыкающим ID.
Нужда в APKTOOL_DUMMY определяется исключительно самим пользователем. Также это может потребоваться, если декомпилированный проект имеет специф. структуру среди ID (в частности из-за кастомных аттрибутов и/или обфускации).
Во время сборки, файлы DEX и ARSC кэшируются в папку build. Если вы не изменяли ресурсы после предыдущей сборки и вновь собрали apk – .arsc не будет создан вновь, а подхватится из кэшированного экземпляра, потому что его хэш идентичен (не модифицирован). Это также касается Smali (файлов DEX). Ускоряет сборку apk за счёт пропуска повторной компиляции.
Удаление папки сопровождается лишь освобождением пространства. После чего в процессе следующей сборки, .dex и .arsc будут вновь созданы "с нуля" и папка воссоздастся. Активирование пункта позволяет автоматически удалять папку после успешной сборки. Активировать при желании.
true, false, %1$d/%2$d
, теперь ещё и
векторную графику,
референсы и прочее, а так же исправляет немного строки после автоперевода.
Перейти в "Настройки" → "Подпись", выбрать пункт "Создать ключ".
Алгоритм подписи:
Разница в длине хэша сертификата (после подписи apk).
Оптимальным является SHA256withRSA.
Оставляем по умолчанию.
MD5 считается небезопасным.
Детальные отличия можно найти в Интернете.
Тип:
Указывает тип хранилища.
По умолчанию JKS (также может быть известен как .keystore).
Детальные отличия можно найти в Интернете.
Путь к ключу:
Выходное местоположение хранилища для ключа.
Имя файла подставляется автоматически, в конце можно изменить при желании.
Алиас:
Псевдоним для ключа.
Указывается при импортировании/эксплуатации.
Пароль хранилища и ключа:
Пароль для защиты хранилища и самого ключа перед импортом/эксплуатацией.
Для удобства можно сделать идентичными.
Размер ключа:
Определяет количество битов (длины) сигнатуры ключа для его считывания. По умолчанию 2048.
Увеличение размера увеличивает его криптостойкость, но при этом его сложнее анализировать
(медленее).
Задаётся по информативной геометрической прогрессии (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048,
4096, и так далее)
Срок действия:
Время от даты создания, по которому истекает подлинность ключа. Указывается в годах.
Следующие данные нужны для информирования о владельце подписи. Указывать по желанию:
Имя, должность, организация, город, область/штат, страна.
Кнопка "Сохранить" завершает создание и помещает хранилище ключа по указанному ранее пути.
Кнопка "Создать и использовать" дополнительно импортирует конечный файл на место пользовательской подписи.
Т.е. важно сохранять структуру каталогов!
После необходимых действий, обратно заархивируем файл с расширением apk.Да.
Обратите внимание!
Все шифрования имеющие обратную совместимость - можно конвертировать обратно. Делаеться это в нижнем окне ввода.Главный экран → Троеточее в верхнем правом углу → "Настройки" → "О приложении" → "Отключить проверку обновлений".
Для выбора целевого проекта – выше «Собрать» есть выпадающее меню, там пункт MPatcher.