Как создать Flashable Zip для системных модулей Android —

Если вы разработчик Android, который хочет создавать приложения, предназначенные для раздела / system (например, корневые приложения), есть определенные случаи, когда вы захотите создать всплывающий ZIP-файл для своего приложения. Это сделано для того, чтобы файлы приложения могли быть правильно установлены в раздел / system.

Несколько других применений .zips включают в себя:

  • Изменение DPI
  • Применение собственного шрифта
  • Применение пользовательской анимации загрузки
  • Удаление или добавление системных приложений

Инструктаж пользователей по работе с файловой системой и ручному перемещению файлов — это пустая трата времени для всех участников — создание плавающего .zip — гораздо более удобный маршрут. Это руководство Appual покажет вам, как создать молнию на молнии для Android.

Мы также покажем вам скрипт addon.d, чтобы пользовательские изменения системы сохранялись на грязной флэш-памяти — таким образом, пользователям не нужно будет повторно прошивать ваш zip-файл при каждом обновлении.

Требования:

  • Обозреватель корневых файлов (MiXplorer, Solid Explorer)
  • ZipSigner (для подписи почтовых индексов) или плагин MiX Signer, если вы используете MixPlorer
  • Резервное копирование Nandroid настоятельно рекомендуется

Вам также следует подготовить все файлы, которые входят в zip-архивы — APK, конфиги, загрузочные анимации и т. Д. Подготовьте все, прежде чем мы начнем, потому что это деликатный процесс.

Шаблон пользовательского почтового индекса

Если вы хотите скачать zip-шаблон, который вы можете настроить в соответствии со своими потребностями, или использовать его в качестве основы для создания всплывающего zip-файла, вы можете получить его здесь:

  • СЦЕНАРИЙ ШАБЛОНА: СКАЧАТЬ ССЫЛКУ (основные команды / вы должны добавить свои собственные значения: приложения, пути для мелодий звонка, бутанимация …)
  • ШАБЛОН ZIP: СКАЧАТЬ ССЫЛКУ (примеры всегда приветствуются, чтобы лучше понять объяснение. Это может помочь понять, как структурировать ваши файлы).

Шаблон должен быть достаточным, чтобы начать использовать собственный скрипт.

Вам нужно запомнить эти основные пути, потому что в разделе / ​​system есть те вещи, на которые обычно ориентируются ваши плавающие молнии:

addon.d => сценарий резервного копирования, чтобы пережить грязную флэш-память (используется, например, пакетом GApps)
app и priv-app => системные приложения для добавления или удаления
etc => хост-файл
шрифты => ваш шрифт
media => ваш bootanimation.zip
media> audio> alarms => звуки для будильника
медиа> аудио> уведомления => звуки для уведомлений
медиа> аудио> мелодии => звуки для мелодий
media> audio> ui => звуки для разных вещей, таких как низкий заряд батареи, разблокировка, камера, ..
корень / system для файла build.prop

Всегда помните, что файлы, удаленные из этих путей, будут переустановлены после грязной флэш-памяти, а файлы, которые были добавлены вручную, будут удалены. Вот почему необходимо создать скрипт, который создает резервную копию ваших / системных модов.

Пример скрипта обновления

ui_print ( "+ ------------------------------------- +");
ui_print ("| CLEAN FLASH SCRIPT |");
ui_print ("| |");
ui_print ("| by Primokorn |");
ui_print ( "+ ------------------------------------- +");
run_program ("/ sbin / busybox", "umount", "/ system");
run_program ("/ sbin / busybox", "mount", "/ system");
ui_print ("");
ui_print ("*** Удаление вредоносных программ ***");
delete_recursive (
"/System/app/adaway.apk",
"/ Система / приложение / AdAway",
"/ Система / приложение / BasicDreams",
"/ Система / приложение / BookmarkProvider",
"/ Система / приложение / календарь",
"/ Система / приложение / CalendarWidget",
"/ Система / приложение / CMFileManager",
"/ Система / приложение / CMWallpapers",
"/ Система / приложение / DeskClock",
"/ Система / приложение / Одиннадцать",
"/ Система / приложение / электронная почта",
"/ Система / приложение / ExactCalculator",
"/ Система / приложение / Exchange2",
"/ Система / приложение / Гелло",
"/ Система / приложение / HexoLibre",
"/ Система / приложение / желе",
"/ Система / приложение / LiveWallpapersPicker",
"/ Система / приложение / LockClock",
"/ Система / приложение / обмена сообщениями",
"/ Система / приложение / MiXplorer",
"/ Система / приложение / NexusLauncher",
"/ Система / приложение / Фонограф",
"/ Система / приложение / PhotoTable",
"/ Система / приложение / PicoTts",
"/ Система / приложение / PicoTTS",
"/ Система / приложение / ResurrectionStats",
"/ Система / приложение / SoundRecorder",
"/ Система / приложение / Терминал",
"/ Система / приложение / TugaBrowser",
"/ Система / приложение / Обои",
"/ Система / приложение / WallpaperPickerGoogle",
"/ Система / собств-приложение / AudioFX",
"/ Система / собств-приложение / Хром",
"/ Система / собств-приложение / Gallery2",
"/ Система / собств-приложение / MusicFX",
"/ Система / собств-приложение / OnePlusCamera",
"/ Система / собств-приложение / OnePlusGallery",
"/ Система / собств-приложение / OnePlusMusic",
"/ Система / собств-приложение / Recorder",
"/ Система / собств-приложение / Screencast",
"/ Система / собств-приложение / мгновенного",
"/ Система / собств-приложение / SnapdragonCamera",
"/ Система / собств-приложение / SnapdragonGallery",
"/ Система / собств-приложение / WeatherManagerService",
"/ Система / собств-приложение / WeatherProvider",
"/ Система / собств-приложение / Tag"
);
ui_print («Установка приложений, модов и т. д.»);
show_progress (8.800000, 5);
package_extract_dir ("system", "/ system /");
ui_print ("*** Исправление прав доступа ***");
set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh");
set_perm (0, 0, 0644, "/system/etc/gps.conf");
set_perm (0, 0, 0644, "/system/fonts/Roboto-Regular.ttf");
set_perm (0, 0, 0644, "/system/media/audio/ringtones/PlasticRing.ogg");
set_perm (0, 0, 0644, "/system/priv-app/Phonesky.apk");
set_perm (0, 0, 0644, "/system/priv-app/microG.apk");
set_perm (0, 0, 0644, "/system/priv-app/Gsam.apk");
set_perm (0, 0, 0644, "/system/priv-app/BBS.apk");
set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");
run_program ("/ sbin / busybox", "mount", "/ data");
package_extract_dir ("data", "/ data /");
set_perm (0, 0, 0755, "/data/local/afscript.sh");
show_progress (8.800000, 5);
run_program ("/ sbin / busybox", "umount", "/ data");
run_program ("/ sbin / busybox", "umount", "/ system");
ui_print ("");
ui_print ( "Сделанный.");
ui_print («Готов перезагрузиться.»);

Примечание: ui_print (»«); для текстового сообщения. Эти строки ничего не делают.

Вы должны всегда размонтировать и заново смонтировать раздел, прежде чем работать над ним.

run_program ("/ sbin / busybox", "umount", "/ system");
run_program ("/ sbin / busybox", "mount", "/ system");

Чтобы удалить системные компоненты / приложения, ставьте запятую в конце каждой строки, кроме последней.

delete_recursive (
"/System/app/adaway.apk",
"/ Система / приложение / AdAway",
........................
"/ Система / собств-приложение / WeatherProvider",
"/ Система / собств-приложение / Tag"
);

Извлеките системные файлы, которые вы хотите установить.

package_extract_dir ("system", "/ system /");
Установите права доступа к файлу.
set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh");
..............
set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk");

Сделайте то же самое, но для папки / data. Таким образом, вы будете монтировать раздел, извлекать данные, которые хотите добавить, и устанавливать разрешения.

run_program ("/ sbin / busybox", "mount", "/ data");
package_extract_dir ("data", "/ data /");
set_perm (0, 0, 0755, "/data/local/afscript.sh");

Далее вы размонтируете измененные разделы.

run_program ("/ sbin / busybox", "umount", "/ data");
run_program ("/ sbin / busybox", "umount", "/ system");

Пример сценария Addon.D

#! / SBIN / ш
#
# /system/addon.d/99-dirty.sh
# / system отформатирована и переустановлена, затем файлы восстановлены.
#
, /tmp/backuptool.functions
list_files () {
кошка <

Создайте список файлов, которые вы хотите сохранить после грязной вспышки.

list_files () {
кошка <

RM -RF файлы, которые вы не хотите устанавливать после «грязной» флэш-памяти (системные файлы, которые вы удалили в вашей модификации и которые будут переустановлены с «грязной» флэш-памяти)

rm -rf /system/app/adaway.apk
rm -rf / system / app / AdAway
rm -rf / system / app / BasicDreams
rm -rf / system / app / BookmarkProvider
................................................
rm -rf / system / priv-app / WeatherProvider
rm -rf / system / priv-app / Tag
;;

Как создать Flashable Android Zip

 

Мы будем использовать MiXplorer для этого, так как это лучший рутовый обозреватель и файловый менеджер для Android.

  1. Сначала выберите все ваши папки, которые будут включены в zip, и выберите Архив.
  2. Подтвердите создание вашего архивного файла, дайте ему имя и выберите Store.
  3. Будет создан ваш прошиваемый zip-файл, поэтому выберите zip-файл и затем подпишите его (используя плагин MiX signer)
  4. Теперь выберите TestKey, чтобы просто проверить его на наличие ошибок подписи.
  5. Теперь вы можете прошить zip - рекомендуем перенести его на / SDcard, чтобы легко найти его из пользовательского рекавери.

Заключительные заметки

Ваш флеш-архив должен быть установлен после чистой флешки или после очистки раздела / system и грязной флешки вашего ПЗУ. Сценарий обновления удалит и добавит системные файлы, указанные вами в вашем скрипте, но оставит скрипт addon.d в покое, потому что он будет выполнять свою работу без какого-либо вмешательства с вашей стороны.

После первой установки тщательно проверьте раздел / system, чтобы убедиться, что все правильно - файлы удалены и т. Д. Возможно, у вас была опечатка в имени файла, и она не была удалена, это происходит.

Ссылка на основную публикацию