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.