Welche Komponenten machen das Erscheindungsbild des Androidsystems am AV7 aus?
Grundsätzlich stechen hier 3 große Teilbereiche ins Auge: Speziell angepasste Systemapps, der Launcher und die SystemUI.
1. System UI + Co.
Die Informationen wie die Informationsleiste oben samt seinen Symbolen auszusehen hat, ist im File /system/systemui.apk verbaut. Entweder man tauscht diese komplett gegen eine andere (passende!) Datei aus – oder man verändert sie manuell mit dem apktool.
apktool d SystemUI.apk
Nach dem dekompilen erhält man einen Ordner mit einem Haufen interessanter Files die man verändern kann… beispielsweise /res/layout/status_bar.xml. Wenn die SystemUI.apk verändert wird, dann sollte man auch an die /system/framework/framework-res.apk denken – denn das ist die dazugehörende Library (Zipdatei) mit Bildern, Tönen etc.
Nach getaner Arbeit wird die Geschichte wieder gepackt mittels:
apktool b SystemUI
Noch lässt sich die App nicht installieren – daher ist es vorher noch wichtig, dass man die apk Datei signiert und zipaligned:
1. Key erstellen mit keytool
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
2. Apk signieren mit jarsigner
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore meineapp-unaligned.apk alias_name
3. Apk mit zipalign optimieren
zipalign -v 4 meineapp-unaligned.apk alias_name
Hinweis: die originale App kann nicht einfach upgedated werden, da die veränderte Datei eine andere Signatur hat. Also: deinstallieren und neu installieren!
Nachtrag: in der Datei /system/app/SettingsProvider.apk finden sich die Voreinstellungen der Systemsettings wie beispielsweise „Erlaube Installation von fremden Quellen“:
<bool name="def_install_non_market_apps">false</bool>
2. Systemapps
Am meisten machen sich beim AV7 die Systemapps bemerkbar: Carhome (dazu gleich), Radioapp, CD/DVD App etc. Gottseidank lassen auch diese sich recht einfach im Ordner /system/apps finden und austauschen bzw. gglfs. per apktool dekompilieren und modden.
Was natürlich auch gehen sollte, ist das Austauschen der Apps von anderen Androidgeräten mit ähnlichen bis identischen Spezifikationen!
Anbei eine kleine Liste der interessanten Files:
CarAux_In.apk -- AUX IN CarBackupRestore.apk CarBT.apk -- Bluetooth App CarCalendar.apk -- Kalenderapp CarCan.apk -- CANbus Anzeige (Klima etc.) CarDimenCode.apk -- App für den 3d Strichcode CarDisc.apk -- DVD Player CarEQ.apk -- Equalizer CarEQManage.apk -- Teil des Equalizers CarFM.apk -- Radioapp CarHome.apk -- Launcher / Desktop CarImage.apk -- Bildbetrachter App CarIPod.apk -- Ipod Input App CarMediaLinkServer.apk -- Handy-Fernsteuerungsapp CarMediaLinkServerAssistant.apk -- Handy-Fernsteuerungsapp CarMediaManagerService.apk CarMediaPlayer.apk -- SD-Kartenplayer CarMultiNavi.apk -- App zur Auswahl der Navisoftware nach der Installation CarPinPu.apk CarPreInstall.apk -- Hilfsapp, die bei der Installation Apps nachinstallieren soll CarSource.apk CarSWC.apk -- Lenkradtasten - Konfigurationsapp CarTirePressure.apk -- Reifendruckkontrollanzeige CarVoiceAssistant.apk -- Spracheingabe CarVoiceIconWindow.apk -- Spracheingabe CarVoiceService.apk -- Spracheingabe CarWidget.apk com.cardroid.framework-res.apk -- einige Bilder com.cardroid.voice.update.apk
Ein paar dieser Apps benötigen Libraries um zu funktionieren… diese sind im Manifest notiert, Beispielsweise benötigt RadioFM laut Manifest:
<uses-library android:name="com.cardroid.media" /> <uses-library android:name="com.cardroid.radiobase" />
Diese Libraries finden sich entsprechend im Ordner /system/framework
3. Launcher „Carhome“
Diese App (/system/app/carhome.apk) bildet die „Oberfläche“ bzw. Desktop des Systems – mehr noch: sie kümmert sich auch um wichtige Dinge wie den Audiofokus weshalb der Launcher nicht ohne weiteres durch andere Launcher ersetzt werden kann. Was ersetzen und apktool angeht, gilt dasselbe wie oben.
Was geht, was geht schwer/nicht?
Bei der Rumbastelei mit dem apktool gilt: Solange es nur um Kleinigkeiten wie ausblenden von Symbolen oder das Austauschen von Bildern geht ist die Sache machbar. Neue Funktionen einbauen, oder grundlegendere Änderungen (wie die oft gewünschte größere Anzeige des Sendernamens) sind ohne die Quelltexte der App Murks.
Was ohne größere Probleme funktionieren muss, ist das Austauschen der oben genannten Dateien des AV7 durch Files z.b. der UI2 Skin. Falls sich ein Opfer findet, dann stelle ich die Files zusammen!