Themes im AV7 Android

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?

AV7 mit alternativer Radioapp
AV7 mit alternativer Radioapp (Montage)

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!

APKs dekompilieren
APKs dekompilieren

 

POC: Radioapp geändert
POC: Radioapp geändert