Slideshow

[Hacking][slideshow]

O que é init.d

O termo 'suporte a init.d' se tornou conhecido para quem usa custom roms, kernels e quem usa pacotes de scripts. Saiba o que é e como usa-lo nesse artigo.




O que é INIT
Em sistemas operacionais de computadores baseados em Unix, init (abreviação de inicialização) é o primeiro processo iniciado durante a inicialização do sistema de computador. Init é um processo de daemon (Processo em segundo plano, oculto para o usuário) que continua em execução até que o sistema seja encerrado. É o antepassado direto ou indireto de todos os outros processos e adota automaticamente todos os processos órfãos. O Init é iniciado pelo kernel usando um nome de arquivo codificado. Os scripts executados pelo Kernel são escritos na "linguagem de programação" shell script. Para facilitar o entendimento, veja o diagrama abaixo.

Clique na foto para expandi-la

Init.d no Linux e no Android
Linux: Em distros de Linux, o diretório do init pode ser encontrado no diretório "/etc/"
Os scripts tem uma grande importância nesses sistemas, já que boa parte da configuração do sistema pode ser encontrada nele. O mais comum é encontrar estrutura baseada em níveis (RunLevel) "RC*" (rc1.d, rc2.d, rc3.d, etc) onde cada um é uma etapa do sistema, ou um estado de boot, novamente, varia de inits. Clique aqui para saber mais e clique aqui para conhecer mais alguns init's.


*Nota: Dependendo da distro usada, o nome do diretório do init pode variar.


Android: No Android, o suporte à leitura e execução de scripts no diretório init.d é desativado no kernel por padrão e sua ativação só é possível se usado um Kernel modificado. Em muitos casos, a ROM nem ao menos tem a pasta init.d em seu diretório (/system/etc/init.d)



Vantagens
Existem diversos scripts prontos que otimizam a forma que o Android executa processos. Scripts que otimizam sua internet, bateria e velocidade de processamento. Ao instalar um pacote de scripts como "TweakZV6", você terá diversos scripts executando e otimizando seu celular. Você também pode fazer seus próprios scripts se preferir.

Para meu sistema, eu fiz um shell script que forçava o reboot ao terminar etapas de inicialização (como gerar/ validar Dalvik Cache). Isso otimizou a velocidade do primeiro boot em 70% e do boot geral em 20%.

*Nota: Muitos scripts e técnicas usadas em scripts de init.d para ajustar o Android já foram roubadas implementadas pelo Google no Android nativo. Logo, é possível que a inserção dos scripts não seja tão efetivo. Também é valido informar que o script continuará executando, logo, se ele for mal programado ou malicioso, você perceberá lentidão ou problemas de execução.

Verificando se seu celular executa os scripts.
Caso você esteja usando uma custom rom, é provável que seu celular já esteja com o suporte ao  init.d. recomendo que verifique antes de fazer qualquer procedimento de instalação

Podemos testar se seu init.d está funcionando da seguinte maneira
1. Baixe o arquivo test_initd.zip <-- clique no nome
2. Extraindo o arquivo, você terá o nome do arquivo "00test". NÃO TENTE FLASHEAR O ZIP!
3. Cole o arquivo 00test no diretório /system/etc/init.d. Se não houver a pasta init.d é provável que seu Android não tenha compatibilidade. Caso queira, crie a pasta init.d
4. Mude as permissões da pasta init e do arquivo 00test para rwxrwxrwx
5. Reinicie
6. Se você ver um arquivo chamado Test.log no diretório /data, seu init.d está ativo e funcionando. Caso não veja, você deve testar o procedimento abaixo.

Ativando o init.d do seu celular

Atenção
1. Para seguir para o tutorial, o seu celular precisa de Root.
Se não sabe o que é Root, clique aqui
Se sabe o que é e quer fazer root, clique aqui

2. Os itens listados nesses tutorial podem brickar seu celular. Nós não nos responsabilizamos por danos. 

3. Talvez seja necessária a instalação do busybox.

A forma mais simples e eficaz é baixando o app Universal Init.d. Ele emula o comportamento do init.d em seu android. Para a mesma tarefa, você também pode usar o Kernel Adiutor e o Init.d Scripts support Vou listar outras formas nos tutoriais de edição de kernel 😈


Conclusão
É impossível falar de Linux sem saber que a explicação está superficial. Existem milhares de distros de Linux e ROMs de Android. Muitas distros utilizam outros inits (Systemd, Upstart, etc) e algumas empresas ativam o init.d de fábrica há anos (como é o caso da Samsung e da HTC). A intenção desse artigo é passar a base. Fique à vontade para usar os comentários, caso tenha dúvidas.e

Post original:Android HyperUser

*Cópia permitida apenas citando a fonte

Dúvidas nos comentários

Nenhum comentário:

Todos os comentários são monitorados. Comentários ofensivos serão removidos e os respectivos usuários banidos.