Como criar um Zip lavável para Android System Mods

Se você é um desenvolvedor Android que deseja criar aplicativos destinados a / partição do sistema (como aplicativos raiz), há certas instâncias em que você deseja criar um arquivo .zip para o seu aplicativo. Isso é para que os arquivos do aplicativo possam ser instalados corretamente na partição / system.

Alguns outros usos de .zips flashable incluem:

  • Modificando o DPI
  • Aplicando uma fonte customizada
  • Aplicando uma animação de inicialização customizada
  • Removendo ou adicionando aplicativos do sistema

Instruir seus usuários a mexer no sistema de arquivos e mover arquivos manualmente é uma perda de tempo para todos os envolvidos - criar um .zip fácil de usar é uma rota muito mais conveniente. Este guia do Appual mostrará como criar um zip expansível para Android.

Também mostraremos um script addon.d, para que as alterações do sistema personalizadas sobrevivam a um flash ROM sujo - assim, os usuários não precisarão recapitular seu zip para cada atualização.

Requisitos:

  • Um explorador de arquivos raiz (MiXplorer, Solid Explorer)
  • ZipSigner (para assinar zips) ou o plug-in MiX Signer se você usar o MixPlorer
  • Um backup Nandroid é altamente recomendado

Você também deve preparar todos os arquivos que estão indo para o zip - APKs, configurações, animações de inicialização, etc. Ter tudo organizado antes de começar, porque este é um processo delicado.

Modelo de um CEP personalizado

Se você quiser fazer o download de um modelo de zip que você pode personalizar para suas próprias necessidades, ou usá-lo como base para criar um zip expansível, você pode pegá-los aqui:

  • SCRIPT DO MOLDE: DOWNLOAD LINK (comandos básicos / você tem que adicionar seus valores personalizados: aplicativos, caminhos de toques, bootanimation ...)
  • ZIP DO MODELO: DOWNLOAD LINK (exemplos são sempre bem vindos para entender melhor uma explicação. Pode ajudar a entender como estruturar seus arquivos).

O modelo deve ser suficiente para começar a usar um script personalizado.

Você precisará lembrar desses caminhos principais, porque estas são as coisas na partição / system que os seus fechos deflocáveis ​​normalmente terão:

 addon.d => script de backup para sobreviver a um flash sujo (usado pelo pacote GApps, por exemplo) app e priv-app => aplicativos do sistema para adicionar ou remover etc => host file fonts => sua mídia de fonte => seu bootanimation.zip mídia> áudio> alarmes => sons para alarmes mídia> áudio> notificações => sons para notificações mídia> áudio> toques => sons para ringtones mídia> áudio> ui => sons para várias coisas como bateria fraca, desbloqueio, câmera, .. raiz de / system para o arquivo build.prop 

Lembre-se sempre de que os arquivos removidos desses caminhos serão reinstalados após um flash sujo, e os arquivos que foram adicionados manualmente serão removidos. É por isso que é necessário criar um script que faça um backup dos seus / mods do sistema.

Exemplo de um script de atualização

 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 ("*** Excluindo bloatwares ***"); delete_recursive ("/system/app/adaway.apk", "/ system / app / AdAway", "/ sistema / aplicativo / BasicDreams", "/ system / app / BookmarkProvider", "/ system / app / Calendar", " / system / app / CalendarWidget ", " / sistema / aplicativo / CMFileManager ", " / system / app / CMWallpapers ", " / system / app / DeskClock ", " / sistema / app / Eleven ", " / system / app / E-mail ", " / system / app / ExactCalculator ", " / sistema / app / Exchange2 ", " / sistema / app / Gello ", " / sistema / aplicativo / HexoLibre ", " / system / app / Jelly ", " / sistema / aplicativo / LiveWallpapersPicker ", " / system / app / LockClock ", " / sistema / aplicativo / sistema de mensagens ", " / system / app / MiXplorer ", " / sistema / aplicativo / NexusLauncher ", " / system / app / Phonograph ", " / system / app / PhotoTable ", " / sistema / aplicativo / PicoTts ", " / system / app / PicoTTS ", " / sistema / app / ResurrectionStats ", " / system / app / SoundRecorder ", " / system / app / Terminal ", " / sistema / aplicativo / TugaBrowser ", " / system / app / Wallpaper ", " / sistema / aplicativo / WallpaperPickerGoogle ", " / system / priv-app / AudioFX ", " / system / priv- aplicativo / Chrome ", " / system / priv-app / Galeria2 ", " / system / priv-app / MusicFX ", " / sistema / priv-app / OnePlusCamera ", " / system / priv- app / OnePlusGallery ", " / sistema / aplicativo privado / OnePlusMusic ", " / system / priv-app / Gravador ", " / system / priv-app / Screencast ", " / sistema / priv-app / Snap ", " / system / priv-app / SnapdragonCamera ", " / sistema / aplicativo privado / SnapdragonGallery ", " / system / priv-app / WeatherManagerService ", " / sistema / priv-app / WeatherProvider ", " / system / priv-app / Tag "); ui_print ("Instalando aplicativos e mods, etc"); show_progress (8, 800000, 5); package_extract_dir ("system", "/ system /"); ui_print ("*** Permissões de correção ***"); 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 ("Concluído"). ui_print ("pronto para reiniciar"); 

Nota: ui_print ("" "); é para mensagem de texto. Essas linhas não fazem nada.

Você deve sempre desmontar e montar novamente a partição antes de trabalhar nela.

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

Para remover componentes / aplicativos do sistema, coloque uma vírgula no final de cada linha, exceto a última.

 delete_recursive ("/system/app/adaway.apk", "/ system / app / AdAway", ........................ "/ system / app priv / WeatherProvider ", " / system / priv-app / Tag "); 

Extraia os arquivos do sistema que você deseja instalar.

 package_extract_dir ("system", "/ system /"); Defina as permissões do arquivo. set_perm (0, 0, 0755, "/system/addon.d/99-dirty.sh"); .............. set_perm (0, 0, 0644, "/system/priv-app/V4A-Magisk.apk"); 

Faça o mesmo, mas para a pasta / data. Então você montará a partição, extrairá os dados que deseja adicionar e definirá as permissões.

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

Em seguida, você desmontará as partições modificadas.

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

Exemplo de script Addon.D

 #! / sbin / sh # # /system/addon.d/99-dirty.sh # / system é formatado e reinstalado, então esses arquivos são restaurados. #. /tmp/backuptool.functions list_files () {cat < 

Crie uma lista de arquivos que você deseja manter após um flash sujo.

 list_files () {cat < 

RM -RF os arquivos que você não quer que sejam instalados após um flash sujo (arquivos de sistema removidos na sua modificação que serão reinstalados a partir de um flash sujo)

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

Como criar um Zip Android Flashable

Usaremos o MiXplorer para isso, pois é o melhor explorador de raiz e gerenciador de arquivos para Android, sem dúvida.

  1. Primeiro, selecione todas as pastas que serão incluídas no zip e escolha Arquivar.

  2. Confirme a criação do seu arquivo, dê-lhe um nome e escolha Loja.

  3. Seu zip flashable será criado, portanto, selecione o arquivo zip e, em seguida, Assine-o (usando o plug-in do signatário do MiX)
  4. Agora selecione TestKey para verificar apenas erros de assinatura.
  5. Agora você pode atualizar o zip - recomendamos movê-lo para / SDcard para encontrá-lo facilmente a partir da recuperação personalizada.

Notas Finais

Seu zip flashable precisa ser instalado após um flash limpo, ou após limpar a partição / system e fazer um flash sujo da sua ROM. O script atualizador removerá e adicionará os arquivos de sistema que você especificou em seu script - mas deixará o script addon.d sozinho, porque ele fará o seu trabalho sem qualquer interferência sua.

Após sua primeira instalação, verifique cuidadosamente a partição / system para ter certeza de que tudo está correto - os arquivos foram removidos, etc. Talvez você tenha cometido um erro de digitação em um nome de arquivo e não tenha sido removido.

Artigos Interessantes