M
MaxMustermann2.0
Fortgeschrittenes Mitglied
- 46
Hier mal ein kleines Tutorial, wie man ein eigenes CyanogenMod-Theme erstellt.
Diese Anleitung ist für den alten CM-Theme-Chooser. Für die neue Theme-Engine (seit CM11, Snapshot M6) gibt es hier eine Beschreibung (auf Englisch)
Hinweise:
Ich habe auf diese Art erstellte Themes bisher nur auf CyanogenMod getestet, es müsste aber mit allen Roms funktionieren, die den gleichen Theme-Chooser wie CM benutzen.
Was man braucht:
-apktool
-Notepad++
-EmptyTheme.apk (im Anhang)
-Gehirn
-ein paar Grundkenntnisse, was das Programmieren des res/-Teils einer Android-App angeht
Los geht's
1. Decompiliere die EmptyTheme.apk
2. Erstmal den Package-Name in der AndroidManifest.xml ändern
3. Im Ordner res/xml findet man folgende Dateien:
redirections.xml - gibt an, welchem Package welche Datei zugeordnet wird
z.B.
Ordnet dem Package com.android.systemui die Datei com_android_systemui.xml (auch im XML-Ordner) zu.
android.xml - gibt an, welche Ressourcen im Package android welcher Resource im Theme zugeordnet wird.
z.B.
ordnet dem drawable "btn_check_on_holo_dark" die Resource "@drawable/btn_check_on_holo_dark des Themes" zu, d.h. die Original-Resource wird durch die des Themes ersetzt. Dazu muss im jeweiligen Drawable-Ordner natürlich noch das entsprechende Drawable hinzugefügt werden. Das
steht für die Original-Resource,
das
steht für die Resource des Themes, die die Original-Resource ersetzen soll.
Nach diesem Muster kann man jetzt alle Resourcen auflisten, die im Package "android" ersetzt werden sollen. Man kann auch style, xml, layout, color, string,... ersetzen. Dazu ist es hilfreich, sich auch die Original-Datei zu decompilieren.
com_android_systemui.xml - das Gleiche wie android.xml aber für das Package "com.android.systemui"
Für die Packages "android" (framework-res.apk) und "com.android.systemui" (SystemUI.apk) sind die Dateien schon vorbereitet, jede dieser Dateien muss aus folgendem Code bestehen:
die Items werden dann zwischen den <resource-redirection>-Tags gesetzt.
Man kann jetzt in diesen beiden Packages alle Resourcen ändern wie man möchte.
Will man in weiteren Packages Resourcen tauschen, muss man in der redirections.xml folgende Zeile hinzufügen
und dann unter xml eine Datei fileName.xml mit diesem Code anlegen:
also z.B. für den Browser
und dann eine Datei namens "com_android_browser.xml" anlegen.
Hier kann man dann wieder die Resourcen auflisten, die man in diesem Package ändern will (nicht vergessen, die neuen Resourcen hinzuzufügen).
4. Wieder kompilieren
5. Signieren (das geht zum Beispiel mit der App ZipSigner aus dem Playstore)
6. Installieren
7. Theme unter Einstellungen>Designs> aktivieren.
Weiteres:
-für den Anfang empfehle ich erstmal nicht so viel zu ändern, um zu testen ob es funktioniert, und dann immer wieder zwischendurch testen.
-die Datei "preview.png" im Ordner "drawable" ist die Vorschau, die im Theme Chooser angezeigt wird
-in der Datei res/values/strings.xml kann der Theme-Name geändert werden
Diese Anleitung ist für den alten CM-Theme-Chooser. Für die neue Theme-Engine (seit CM11, Snapshot M6) gibt es hier eine Beschreibung (auf Englisch)
Hinweise:
Ich habe auf diese Art erstellte Themes bisher nur auf CyanogenMod getestet, es müsste aber mit allen Roms funktionieren, die den gleichen Theme-Chooser wie CM benutzen.
Was man braucht:
-apktool
-Notepad++
-EmptyTheme.apk (im Anhang)
-Gehirn
-ein paar Grundkenntnisse, was das Programmieren des res/-Teils einer Android-App angeht
Los geht's
1. Decompiliere die EmptyTheme.apk
2. Erstmal den Package-Name in der AndroidManifest.xml ändern
3. Im Ordner res/xml findet man folgende Dateien:
redirections.xml - gibt an, welchem Package welche Datei zugeordnet wird
z.B.
Code:
<package-redirections android:name="com.android.systemui" android:resource="@xml/com_android_systemui" android:minSdkVersion="7" />
android.xml - gibt an, welche Ressourcen im Package android welcher Resource im Theme zugeordnet wird.
z.B.
Code:
<item name="drawable/btn_check_on_holo_dark">@drawable/btn_check_on_holo_dark</item>
Code:
name="drawable/btn_check_on_holo_dark"
das
Code:
@drawable/btn_check_on_holo_dark
Nach diesem Muster kann man jetzt alle Resourcen auflisten, die im Package "android" ersetzt werden sollen. Man kann auch style, xml, layout, color, string,... ersetzen. Dazu ist es hilfreich, sich auch die Original-Datei zu decompilieren.
com_android_systemui.xml - das Gleiche wie android.xml aber für das Package "com.android.systemui"
Für die Packages "android" (framework-res.apk) und "com.android.systemui" (SystemUI.apk) sind die Dateien schon vorbereitet, jede dieser Dateien muss aus folgendem Code bestehen:
Code:
<?xml version="1.0" encoding="utf-8"?>
<resource-redirections>
</resource-redirections>
Man kann jetzt in diesen beiden Packages alle Resourcen ändern wie man möchte.
Will man in weiteren Packages Resourcen tauschen, muss man in der redirections.xml folgende Zeile hinzufügen
Code:
<package-redirections android:name="packageName" android:resource="@xml/fileName" android:minSdkVersion="7" />
Code:
<?xml version="1.0" encoding="utf-8"?>
<resource-redirections>
</resource-redirections>
Code:
<package-redirections android:name="com.android.browser" android:resource="@xml/com_android_browser" android:minSdkVersion="7" />
Hier kann man dann wieder die Resourcen auflisten, die man in diesem Package ändern will (nicht vergessen, die neuen Resourcen hinzuzufügen).
4. Wieder kompilieren
5. Signieren (das geht zum Beispiel mit der App ZipSigner aus dem Playstore)
6. Installieren
7. Theme unter Einstellungen>Designs> aktivieren.
Weiteres:
-für den Anfang empfehle ich erstmal nicht so viel zu ändern, um zu testen ob es funktioniert, und dann immer wieder zwischendurch testen.
-die Datei "preview.png" im Ordner "drawable" ist die Vorschau, die im Theme Chooser angezeigt wird
-in der Datei res/values/strings.xml kann der Theme-Name geändert werden
Anhänge
Zuletzt bearbeitet: