Nimrod
Enthusiast
- 631
Da ich einige Anfragen bekommen habe, wie man die Statusbar transparent bekommt, mache ich hier mal ein HowTo draus, so muss ich es nicht allen per PN erklären.
HowTo: Transparente Statusbar unter Ice Cream Sandwich (Android 4.0.x)
Alles geschieht natürlich auf eingene Gefahr! Weder ich noch irgendjemand anderes ist für irgendwelche Schäden verantwortlich! Ein nandroid Backup vor dem modden ist selbstversändlich.
Hinweis:
Diese Anleitung bezieht sich nur auf Smartphones, wie das ganze bei Tablets funktioniert, weiß ich nicht. Wer es weiß bitte melden. Außerdem gilt die Anleitung nur für AOSP Roms (CM9,AOKP,...), ob und wie das bei anderen ROMs funktioniert kann ich nicht sagen.
Mit Android 4.1 (Jelly Bean) funktioniert diese Anleitung leider nicht mehr, auch hier wäre ich für Hinweise dankbar.
Vorrausetzungen:
Auf den Umgang mit dem apktool und der Kommandozeile werde ich hier nicht genauer eingehen. Da es oft Probleme beim compilen aufgrund eines veralteten apktools gibt, hab ich meins mal zum Download bereit gestellt (Siehe Anhang). Damit muss es klappen.
Für die Übersichtlichkeit werde ich die verschiedenen Eingaben in verschiedenen Farben darstellen:
Okay, los gehts:
1. Benötigte Dateien und decompilen
Weiter gehts im Ordner ...\SystemUI\smali\com\android\systemui\statusbar\phone\, dort öffnet ihr die PhoneStatusBar.smali.
Hier sucht ihr als erstes nach:
Die beiden Zeilen darunter:
mit dem folgenden:
___________________
Immernoch in der PhoneStatusBar.smali sucht ihr jetzt noch nach:
Eine Zeile darüber sollte folgendes zu finden sein:
Das wird nun mit diesem ersetzt:
Damit hätten wir die smali Edits abgeschlossen. Speichert die Datei und schließt sie.
3. xml Edits
4. Compilen und einfügen
So könnte das ganze dann aussehen:
___________________
Die Anleitung basiert auf dieser Anleitung aus dem XDA-Forum:
Transparent Status Bar--Instructions for DIY - xda-developers
Credits gehen somit an pendo. Außerdem Danke an Gazman für den Hinweis.
Schönen guten Tach,
weiß irgendjemand, wie ich unter Android 4.0 die Statusbar transparent bekomme? Ich hab jetzt schon einiges probiert, vorallem an der SystemUI.apk.
- Die status_bar_bg_tile.png transparent gemacht - keine Änderung.
- In der /res/values/drawable.xml den Wertgeändert, dadurch entstand aber ein Choas bei den Icons, die Statusbar war trotzdem nicht transparentCode:<item type="drawable" name="status_bar_background">#ff000000</item>
- Noch etwas in anderen xmls rumgebastelt, hat aber alles nichts gebracht.
Ich komme echt nicht weiter, vielleicht ist eine Änderung in den smali-Dateien nötig? Damit kenne ich mich leider aber nicht aus.
Es handelt sich übrigens um folgende ROM: https://www.android-hilfe.de/forum/...y-beta-4-ice-cream-sandwich-4-0-3.172882.html
Hab mal noch die SystemUI.apk hochgeladen, befindet sich im Anhang.
Vielleicht hat ja jemand einen Tipp oder sogar die Lösung.
HowTo: Transparente Statusbar unter Ice Cream Sandwich (Android 4.0.x)
Alles geschieht natürlich auf eingene Gefahr! Weder ich noch irgendjemand anderes ist für irgendwelche Schäden verantwortlich! Ein nandroid Backup vor dem modden ist selbstversändlich.
Hinweis:
Diese Anleitung bezieht sich nur auf Smartphones, wie das ganze bei Tablets funktioniert, weiß ich nicht. Wer es weiß bitte melden. Außerdem gilt die Anleitung nur für AOSP Roms (CM9,AOKP,...), ob und wie das bei anderen ROMs funktioniert kann ich nicht sagen.
Mit Android 4.1 (Jelly Bean) funktioniert diese Anleitung leider nicht mehr, auch hier wäre ich für Hinweise dankbar.
Vorrausetzungen:
- natürlich root
- apktool (oder ähnliches)
- ein vernünftiger Texteditor (ich empfehle Notepad++)
- 7zip (Winrar sollte auch gehen)
- am besten adb
Auf den Umgang mit dem apktool und der Kommandozeile werde ich hier nicht genauer eingehen. Da es oft Probleme beim compilen aufgrund eines veralteten apktools gibt, hab ich meins mal zum Download bereit gestellt (Siehe Anhang). Damit muss es klappen.
Für die Übersichtlichkeit werde ich die verschiedenen Eingaben in verschiedenen Farben darstellen:
Code:
Schwarz: Normale Kommandozeile (apktool/adb)
[COLOR="RoyalBlue"]Blau: zu suchender Code[/COLOR]
[COLOR="Red"]Rot: zu ersetzender Code[/COLOR]
[COLOR="SeaGreen"]Grün: neuer Code[/COLOR]
Okay, los gehts:
1. Benötigte Dateien und decompilen
Als erstest holt ihr zwei Dateien aus eurer ROM, ob ihr das mit einem Root-Explorer oder per adb, ist egal. Ich beschreib die Variante mit adb, die entsprechenden Ordner lassen sich daran ja wohl erkennen.
Macht euch am besten einen Ordner mit den adb tools und apktool und navigiert mit der Kommandozeile dorthin. Bei den Eingaben Groß- und Kleinschreibung beachten!
Damit sollten sich beide Dateien in eurem Ordner befinden. Jetzt das framework installieren und die SystemUI.apk decompilen.
Beides sollte ohne Fehlermeldungen durchlaufen. Ansonsten stimmt wahrscheinlich was mit dem apktool nicht.
2. Smali EditsMacht euch am besten einen Ordner mit den adb tools und apktool und navigiert mit der Kommandozeile dorthin. Bei den Eingaben Groß- und Kleinschreibung beachten!
Code:
adb pull /system/app/SystemUI.apk
adb pull /system/framework/framework-res.apk
Code:
apktool if framework-res.apk
apktool d SystemUI.apk
Jetzt müssen die smali-Dateien verändert werden, um eine Transparenz zu ermöglichen.
Geht jetzt in den Ordner ...\SystemUI\smali\com\android\systemui\statusbar\ und öffnet die statusbar.smali.
Dort sucht ihr nach der folgenden Zeile:
Eine Zeile darüber sollte folgendes zu finden sein:
Diese ändert ihr in:
Das wars in der Statusbar.smali. Datei speichern und schließen.
___________________Geht jetzt in den Ordner ...\SystemUI\smali\com\android\systemui\statusbar\ und öffnet die statusbar.smali.
Dort sucht ihr nach der folgenden Zeile:
Code:
[COLOR="RoyalBlue"]Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V[/COLOR]
Code:
[COLOR="Red"]const/16 v16, 0x4[/COLOR]
Code:
[COLOR="SeaGreen"]const/16 v16, -0x3[/COLOR]
Weiter gehts im Ordner ...\SystemUI\smali\com\android\systemui\statusbar\phone\, dort öffnet ihr die PhoneStatusBar.smali.
Hier sucht ihr als erstes nach:
Code:
[COLOR="RoyalBlue"]const v4, 0x4800068[/COLOR]
Code:
[COLOR="Red"]move v2, v1
move v5, v1[/COLOR]
Code:
[COLOR="SeaGreen"]const/4 v5, -0x3
move v2, v1[/COLOR]
Immernoch in der PhoneStatusBar.smali sucht ihr jetzt noch nach:
Code:
[COLOR="RoyalBlue"]Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPixelFormat:I[/COLOR]
Code:
[COLOR="Red"]const/4 v8, -0x1[/COLOR]
Code:
[COLOR="SeaGreen"]const/4 v8, -0x3[/COLOR]
3. xml Edits
Das schwierigste ist geschafft.
Geht jetzt in den Ordner \SystemUI\res\values\ und öffnet die drawables.xml
Dort findet ihr den Eintag
Der Wert #ff000000 stellt den Farbwert der Statusbar dar, wobei die ersten beiden stellen für die Transparenz stehen. Dieser muss somit erstetzt werden. Hier mal einige Werte:
Für 60% Transparenz (oder besser gesagt sind das ja 40% transparent, da 0% ja komplett transparent ist... egal ) ersetzt ihr also:
mit
Speichern. Das wars. Jetzt müsst ihr die SystemUI.apk nur wieder compilen.
Geht jetzt in den Ordner \SystemUI\res\values\ und öffnet die drawables.xml
Dort findet ihr den Eintag
Code:
[COLOR="RoyalBlue"]<item type="drawable" name="status_bar_background">#ff000000</item>[/COLOR]
#ff000000 = 100%
#E6000000 = 90%
#CC000000 = 80%
#B3000000 = 70%
#99000000 = 60%
#80000000 = 50%
#66000000 = 40%
#4D000000 = 30%
#33000000 = 20%
#1A000000 = 10%
#00000000 = 0% (= durchsichtig)
#E6000000 = 90%
#CC000000 = 80%
#B3000000 = 70%
#99000000 = 60%
#80000000 = 50%
#66000000 = 40%
#4D000000 = 30%
#33000000 = 20%
#1A000000 = 10%
#00000000 = 0% (= durchsichtig)
Code:
<item type="drawable" name="status_bar_background">[COLOR="Red"]#ff000000[/COLOR]</item>
Code:
<item type="drawable" name="status_bar_background">[COLOR="SeaGreen"]#99000000[/COLOR]</item>
_________________
Ihr könnt anstelle eines Farbwertes auch eine Grafik benutzen. Dafür ersetzt ihr:
mit
Dann kopiert ihr die entsprechende Grafik nach \SystemUI\res\drawable-hdpi\ (falls ihr eine andere Pixeldichte habt, entsprechend dann nach drawable-xhdpi/mdpi/...) und nennt sie status_bar_background.png (natürlich könnt ihr auch einen anderen Dateinamen nutzen, solange er dem in der drawables.xml entspricht).
Die richtige Auflösung findet ihr am besten raus, indem ihr auf einem Screenshot "nachmesst". Bei mir, also qHD, waren es 540x38 px.
_________________
Ihr könnt anstelle eines Farbwertes auch eine Grafik benutzen. Dafür ersetzt ihr:
Code:
<item type="drawable" name="status_bar_background">[COLOR="Red"]#ff000000[/COLOR]</item>
Code:
<item type="drawable" name="status_bar_background">[COLOR="SeaGreen"]@drawable/status_bar_background[/COLOR]</item>
Die richtige Auflösung findet ihr am besten raus, indem ihr auf einem Screenshot "nachmesst". Bei mir, also qHD, waren es 540x38 px.
_________________
Speichern. Das wars. Jetzt müsst ihr die SystemUI.apk nur wieder compilen.
4. Compilen und einfügen
Geht wieder in euren apktool Ordner, und gebt folgendes in die Kommandozeile ein:
Das sollte auch ohne Fehler durchlaufen! Wenn nicht, ist entweder irgendwo ein Fehler oder das apktool zu alt.
Unter /SystemUI/dist/ sollte sich nun die neue apk befinden. Diese öffnet ihr nun mit 7Zip, WinRar etc., Die orginale SystemUI.apk ebenfalls. Jetzt zieht ihr den Ordner META-INF und die AndroidManifest.xml aus der orginalen apk in die modifzierte (Dateien natürlich ersetzen).
Jetzt muss die Datei nur noch zurück ins System, per adb geht das folgendermaßen:
Nach dem Neustart sollte die Statusleiste transparent sein.
Falls ihr die apk manuell mit einem Root Explorer nach /system/app kopiert, achtet auch die richtigen Berechtigungen der SystemUI.apk, sollte 644 (rw-r--r--) sein.
___________________
Code:
apktool b SystemUI
Unter /SystemUI/dist/ sollte sich nun die neue apk befinden. Diese öffnet ihr nun mit 7Zip, WinRar etc., Die orginale SystemUI.apk ebenfalls. Jetzt zieht ihr den Ordner META-INF und die AndroidManifest.xml aus der orginalen apk in die modifzierte (Dateien natürlich ersetzen).
Jetzt muss die Datei nur noch zurück ins System, per adb geht das folgendermaßen:
Code:
adb remount
adb push SystemUI.apk /system/app
adb reboot
Falls ihr die apk manuell mit einem Root Explorer nach /system/app kopiert, achtet auch die richtigen Berechtigungen der SystemUI.apk, sollte 644 (rw-r--r--) sein.
So könnte das ganze dann aussehen:
___________________
Die Anleitung basiert auf dieser Anleitung aus dem XDA-Forum:
Transparent Status Bar--Instructions for DIY - xda-developers
Credits gehen somit an pendo. Außerdem Danke an Gazman für den Hinweis.
Anhänge
Zuletzt bearbeitet: