Boot / Startsound ICS 4.0 Works / HOWTO

Andeas_hu

Andeas_hu

Erfahrenes Mitglied
154
Hier findet ihr nun die Anleitung zum Einbinden einer eigenen Bootanimation inclusive der Option eines Bootsounds.

Zu Beachten:

1.) Getestet und für gut befunden auf onecosmics 4.0 Release.
2.) Läuft nur durch Wechsel des Kernels ( Devil_15_vc_bln.zip )
3.) Anwendung auf eigene Gefahr, nicht das ich der Depp bin.
4.) Script nur einmal laufen lassen, ansonsten Brick Gefahr !!!!

Vorbereitung:

1.) Ihr benötigt eine Mp3 Datei eurer Wahl, am besten so kurz oder lang, wie euer Bootvorgang dauert oder die Bootanimation.
Diese kopiert ihr unter dem Namen: android_audio.mp3 in das Verzeichnis /system/media.

2.) eine Bootanimation.zip eurer Wahl.
Diese kopiert ihr entweder nach /system/media , da wird der Speicherplatz vom Rom weggenommen.
Oder in das Verzeichnis /data/local, dort wird der Speicherplatz der internen SD belegt, beides geht.
Ich habe mich für /data/local entschieden.

3.) Das Script, bootsnd.sh das ich geändert habe. Dieses kopiert ihr nach /sdcard

4.) SU Rechte.

5.) Einen Root Explorer

6.) Einen Terminal Emulator


Loslegen:

1.) Ihr startet den Terminal Emulator

Eingabe: su ( Enter)
Eingabe: cd /sdcard ( Enter )
Eingabe: sh bootsnd.sh ( Enter )

DAS sCRIPT SOLLTE NUN OHNE FEHLER DURCHLAUFEN !!

Wenn ja, prima, Terminal beenden.
Wenn nein, schade, Terminal beenden.

2.) Überprüfen, ob Dateien erstellt / verändert wurden.

1.) Startet euren Root Explorer.

Begebt euch nach /system/etc . Dort müßte eine Datei neu da sein, eine init.local.rc
Schaut rein, ob was drin steht, wenn ja prima, wieder schließen.

Begebt euch nach /system/bin . Dort müßte eine Datei mit dem Namen bootsound vorhanden sein.
Schaut rein, ob was drin steht, wenn ja prima, wieder schließen.

Begebt euch nach /system . Dort gab es schon eine Datei namens build.prop
Schaut rein, ob am Ende der Datei eine zusätzliche Zeile eingebunden wurde.
Deren Inhalt muss lauten: ro.config.play.bootsound=1
Wenn ja, prima, wieder schließen.

Begebt euch nach /system/etc/init.d . Dort müßte nun eine Datei namens: 99bootsound erstellt worden sein.
Schaut rein, ob was drin steht, wenn ja prima, wieder schließen.

Wenn all diese Dateien vorhanden sind, könnt ihr nun rebooten.
Solltet ihr den onecosmic´s Kernel draufhaben, der bei der 4.0 im Rom dabei war, so wird nach Reboot nur die Animation abgespielt, kein Sound.
Daher bitte in den Recovery Modus rebooten und den Devil Kernel Devil_15_VC_BLN.zip flashen.
Danach Reboot. Alle Einstellungen und apps bleiben erhalten.

Nun solltet ihr Animation und Sound haben, TADA !!!!

Falls etwas schief geht.

Solange während das Script läuft und ein Error kommt und die neuen Dateien nicht erstellt wurden und, gaaaaanz wichtig, in der /system/build.prop der Eintrag fehlt,
könnt ihr ohne bedenken nochmals das script starten. Alle zu erstellenen Dateien können jederzeit wieder gelöscht werden.
Nur die build.prop, die darf in keinem Fall zerstört werden. auch wegsichern und wieder reinkopieren könnt ihr vergessen, nach dem reinkopieren ist die Datei leer und
nach einem Restart ist das System gebrickt. Da hilft nur Recovery Modus und neu flashen.

Last but not least.......

Alles auf eigene Gefahr !!!!! Habe das ganze 3 mal getestet , jedesmal neu geflasht, system auf null und nochmal, jedesmal hats geklappt.

Vielen Dank an meinen Kumpel Steffen Dietz, ohne den hätte ich das nicht geschafft, er ist einfach klasse im programmieren.

Und das soll nun mein Einstand hier im Forum sein, denkt ja nicht ich hätte was drauf, bin nur ehrgeizig.

Vielen Dank fürs Lesen..............

EDIT: Die Dateianlage heißt nun bootsnd.sh.txt
Damit ich sie hier gleich anhängen kann. Bitte das .txt nach Download entfernen !!!
 

Anhänge

  • bootsnd.sh.txt
    3,3 KB · Aufrufe: 1.889
  • Danke
Reaktionen: beicuxhaven und scheichuwe
Ich war mal so frei und hab das etwas überarbeitet (siehe Anhang).
Getestet auf CM9.

Noch ein paar Erklärungen:
Das alles braucht man mit deiner Methode gar nicht
Code:
echo 'Write init.local.rc'
#This is to create the needed scripts in init.local.rc
echo '' >> /system/etc/init.local.rc
echo '' >> /system/etc/init.local.rc
echo '###Bootsound - Safe to Delete: Start ###' >> /system/etc/init.local.rc
echo "" >> /system/etc/init.local.rc
echo 'service bootsound /system/bin/bootsound' >> /system/etc/init.local.rc
echo '        user media' >> /system/etc/init.local.rc
echo '        group audio' >> /system/etc/init.local.rc
echo '        disabled' >> /system/etc/init.local.rc
echo '        oneshot' >> /system/etc/init.local.rc
echo '' >> /system/etc/init.local.rc
echo 'on property:init.svc.bootanim=running   # to correct timin' >> /system/etc/init.local.rc
echo '        start bootsound' >> /system/etc/init.local.rc
echo '' >> /system/etc/init.local.rc
echo 'on property:dev.bootcomplete=1' >> /system/etc/init.local.rc
echo '        stop bootsound' >> /system/etc/init.local.rc
echo '### Bootsound - Safe to Delete: End ###' >> /system/etc/init.local.rc
chmod 777 /system/etc/init.local.rc

echo 'Write bootsound'
#Now creating the bootsound script
touch /system/bin/bootsound
echo '#!/system/bin/sh' >> /system/bin/bootsound
echo '' >> /system/bin/bootsound
echo 'bprop=/system/build.prop' >> /system/bin/bootsound
echo '' >> /system/bin/bootsound
echo 'play=$(cat $bprop | egrep -c -i -o ro.config.play.bootsound=1)' >> /system/bin/bootsound
echo 'if [ "$play" = "1" ]; then' >> /system/bin/bootsound
echo '        stagefright -a -o /system/media/android_audio.mp3' >> /system/bin/bootsound
echo 'fi' >> /system/bin/bootsound
echo 'exit 0' >> /system/bin/bootsound


echo 'Write build.prop'
#Changing some permissions
chmod 777 /system/bin/bootsound
chown root.shell /system/bin/bootsound
Damit wird ja die init.local.rc erweitert (die aber beim Start, zumindest bisher, gar nicht berücksichtigt wird). Außerdem wird eine Datei "bootsound" erstellt.
So wie du das jetzt machst (über init.d), braucht man weder die Datei bootsound in /system/bin noch die Erweiterung der init.local.rc.
Daher kann das eben alles raus aus deinem script.

Was dann noch übrig bleibt hab ich etwas erweitert, damit es auch bei CM9 (und hoffentlich allen anderen ROMs auch) überhaupt läuft.

Code:
#!/system/bin/sh
#Setting up the system for read/write access

busybox echo 'RW remount'    
busybox mount -o remount,rw /system

#Edit build.prop 
busybox echo 'Write build.prop'
busybox echo '' >> /system/build.prop
busybox echo 'ro.config.play.bootsound=1' >> /system/build.prop

#Create new file in /system/etc/init.d and change permissions
busybox echo 'Write 99bootsound'
busybox touch /system/etc/init.d/99bootsound
busybox chmod 777 /system/etc/init.d/99bootsound
busybox echo '#!/system/bin/sh' >> /system/etc/init.d/99bootsound
busybox echo '' >> /system/etc/init.d/99bootsound
busybox echo 'bprop=/system/build.prop' >> /system/etc/init.d/99bootsound
busybox echo 'play=$(cat $bprop | egrep -c -i -o ro.config.play.bootsound=1)' >> /system/etc/init.d/99bootsound
busybox echo 'if [ "$play" = "1" ]; then' >> /system/etc/init.d/99bootsound
busybox echo '        stagefright -a -o /system/media/android_audio.mp3' >> /system/etc/init.d/99bootsound
busybox echo 'fi' >> /system/etc/init.d/99bootsound
busybox echo 'exit 0' >> /system/etc/init.d/99bootsound

#Mount /system read-only
busybox echo 'RO remount'
busybox mount -o remount,ro /system

busybox echo 'Finish'
exit
Man muss also nur noch Folgendes machen:

  • Die Datei runterladen, in bootsnd.sh umbenennen und auf die interne SD-Karte kopieren
  • Irgendeine mp3 als android_audio.mp3 nach /system/media kopieren, Rechte anpassen (644)
  • Die Befehle von oben in ein Terminal eintippen
  • optional: in /system/etc/init.d gucken, ob die Datei 99bootsound existiert
  • neu starten
Der Hinweis, dass alles auf auf eigene Gefahr ausgeführt wird, bleibt natürlich bestehen :)
 

Anhänge

  • bootsnd.sh.txt
    1,7 KB · Aufrufe: 832
  • Danke
Reaktionen: beicuxhaven, Hans Dampf und Andeas_hu
Ja vielen Dank dafür, das Ergebnis meines Scripts war letztendlich eine Mischung
aus den verschiedenen Methoden, die , stellenweise von anderen Handys her rührten, Sony, HTC, etc.

Es war mehr oder weniger ein rumprobieren, bis es dann lief.

Ist denn deine Anpasung nun auch so, das andere Kernels funktionieren ?
Ich mußte ja auf den Teufel Kernel ausweichen, mit dem onecosmic´s Kernel
aus der 4.03 Release ging ja kein Sound.

Oder hat das gar nix mit dem Kernel zu tun ??

Ich habe im Anhang mal meine Bootanimation.zip mit dem dazugehörigen Sound hochgeladen. Die Zip ist aus dem Netz, die Mp3 habe ich erweitert mit Sounds und habe es pasend zur Dauer der Animation, bzw. der Bootdauer des SGS angepasst.

Läuft nun syncron.

Es handelt sich um die Animation, wo dasAndroidmännchen zusammengeschraubt wird, dann das Apple Symbol weg lasert und zum Ende
Das Wort Android gesprochen wird.
 

Anhänge

  • bootanimation.zip
    5 MB · Aufrufe: 153
  • android_audio.mp3.txt
    617,1 KB · Aufrufe: 213
Andeas_hu schrieb:
...
Ist denn deine Anpasung nun auch so, das andere Kernels funktionieren ?
Ich mußte ja auf den Teufel Kernel ausweichen, mit dem onecosmic´s Kernel
aus der 4.03 Release ging ja kein Sound.

Oder hat das gar nix mit dem Kernel zu tun ??

....

Der Kernel muss init.d unterstützen. Das ist alles. Daher sollte das mit alles Kernels laufen, die das unterstützen.
Onecosmic's kann das scheinbar (noch) nicht.

Schöner wäre es ja, wenn der Teil, der bei uns gar nicht läuft (die init.local.rc-Geschichte) und den ich deshalb rausgenommen habe, funktionieren würde.
Dann würde nämlich der Sound zeitgleich mit der Animation starten können, so ist immer eine, wenn auch kurze, Verzögerung da.
 
Wohl wissend, dass ich mich vielleicht zu weit aus dem Fenster lehne, aber das Problem dürfte doch noch an einer anderen Stelle als nur bei der init.d-Unterstützung zu suchen sein. Ich denke, ich darf annehmen, dass wenn cm9 und dessen Kernel Skripte im init.d-Verzeichnis platzieren, diese auch Verwendung finden und somit die erforderliche Unterstützung der Startskripte vorhanden sein sollte.
Leider hat keine der beiden vorgestellten Varianten bei Booten einen Ton hervor gebracht. Auch ein paar leichte Modifikationen brachten keinen Erfolg. Ich nehme an, dass der Kernel hierbei eine nicht ganz unwichtige Rolle spielen dürfte. Zu einem so frühen Zeitpunkt sind sicher noch nicht alle Funktionen des ROM initialisiert und einsatzbereit, so dass der Kernel wohl eine gewisse Audio-Unterstützung mitbringen muss.

Führt man die Befehle der Skripte in einem Terminalfenster aus, tun diese genau das, wozu sie da sind. Auch der Sound wird an der entsprechenden Stelle abgespielt. Aber das passiert ja auch alles in einer vollständig hoch gefahrenen Runtime-Umgebung.

Ich vermute daher ganz stark, dass es dem Kernel an entsprechenden Fähigkeiten fehlt. Man mag mich korrigieren, wenn ich damit falsch liege...
 
Zuletzt bearbeitet:
Bei AOKP kann man das in den Rom Settings einstellen ;)

Gesendet von meinem GT-I9000 mit Tapatalk 2
 
Zum Abschluss noch ein bemerkenswerter Seiteneffekt:

Nachdem ich den CM9-Standard-Kernel durch Semaphore ersetzt habe, klappt's auch mit dem Bootsound. Der Kernel spielt dabei wohl tatsächlich eine essentielle Rolle. Da ich sicher noch ein paar Fragmente der vorangegangenen Tests in meinem System habe, dudelt das Handy jetzt auch den Bootsound, wenn ich das USB-Debugging einschalte! :lol:

Mal sehen, ob ich mir irgendwann mal die Zeit nehme, auch dahinter zu steigen...

Gruß
TS
 
funzt das auch unter helly bean??
und wie entferne ich das .txt
 
1. Sofern der Kernel (nicht so der Standard-Kernel) Sound unterstützt, ja.
2. Das fragst Du jetzt nicht wirklich, oder? Schon mal mit umbenennen versucht?
 
  • Danke
Reaktionen: Zwerkel

Ähnliche Themen

1
Antworten
0
Aufrufe
1.695
1udo1
1
Andeas_hu
  • Gesperrt
  • Andeas_hu
Antworten
9
Aufrufe
2.263
DrMole
DrMole
olex.
  • olex.
2 3
Antworten
40
Aufrufe
3.850
olex.
olex.
Zurück
Oben Unten