Tag Archives: init.rc

Automatické spouštění scriptů po bootu

0
Filed under Android
Tagged as , , , , ,

Pořád mě vrtalo hlavou, jak u mého tabletu zavést mnou dodané moduly po startu zcela automaticky bez přeflashování kernelu. Jelikož není android jako android nelze napsat jeden obecný návod.
Co ale lze předpokládat u všech je to že při nabíhání androida spustí příkaz init skripty init.rc init.goldfish.rc a podobné umístěné v rootu. U některých androidů stačí umístit svůj skript do adresáře /system/etc/init.d a je hotovo, ale na mém kernelu tato vlastnost chyběla. Existují postupy jak ji zprovoznit na každém kernelu viz. zde, ale já se vydal trochu jinou cestou.

Otevřete postupně všechny init.rc soubory a najděte všechny příkazy které spouštějí shellovský skript. Typicky to bude vypadat nějak takto:

/system/bin/sh /system/etc/install-recovery.sh

U mě init.rc spouští za 1. /system/etc/install-recovery.sh a za 2. /system/bin/preinstall.sh. Přičemž 1. soubor na mém tabletu neexistuje 2. ano. Pokud 1. soubor vytvoříte bude se po každém startu spouštět také. Takže je na Vás který použijete. Důležité je, že se tyto skripty nepřepisují s každým restartem a Vámi udělané změny tak zůstanou zachovány.

Je nutné si, ale uvědomit že ve chvíli kdy se skript provádí není ještě namountovaná sd karta(y) a tak ji nelze použít jako úložiště pro případné použití.

V mém případě stačilo přidat nakonec souboru preinstall.sh řádek /system/bin/sh /system/vendor/modules/myscript.sh, kde jsou všechny nutné úkony pro zavedení modulů.