[HowTo] Transparente Statusbar unter ICS

Nimrod

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. :)
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 Wert
Code:
<item type="drawable" name="status_bar_background">#ff000000</item>
geändert, dadurch entstand aber ein Choas bei den Icons, die Statusbar war trotzdem nicht transparent
- 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!
Code:
adb pull /system/app/SystemUI.apk
adb pull /system/framework/framework-res.apk
Damit sollten sich beide Dateien in eurem Ordner befinden. Jetzt das framework installieren und die SystemUI.apk decompilen.
Code:
apktool if framework-res.apk
apktool d SystemUI.apk
Beides sollte ohne Fehlermeldungen durchlaufen. Ansonsten stimmt wahrscheinlich was mit dem apktool nicht.
2. Smali Edits
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:
Code:
[COLOR="RoyalBlue"]Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V[/COLOR]
Eine Zeile darüber sollte folgendes zu finden sein:
Code:
[COLOR="Red"]const/16 v16, 0x4[/COLOR]
Diese ändert ihr in:
Code:
[COLOR="SeaGreen"]const/16 v16, -0x3[/COLOR]
Das wars in der Statusbar.smali. Datei speichern und schließen.
___________________


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]
Die beiden Zeilen darunter:
Code:
[COLOR="Red"]move v2, v1

move v5, v1[/COLOR]
mit dem folgenden:
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]
Eine Zeile darüber sollte folgendes zu finden sein:
Code:
[COLOR="Red"]const/4 v8, -0x1[/COLOR]
Das wird nun mit diesem ersetzt:
Code:
[COLOR="SeaGreen"]const/4 v8, -0x3[/COLOR]
Damit hätten wir die smali Edits abgeschlossen. Speichert die Datei und schließt sie.​

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
Code:
[COLOR="RoyalBlue"]<item type="drawable" name="status_bar_background">#ff000000</item>[/COLOR]
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:
#ff000000 = 100%
#E6000000 = 90%
#CC000000 = 80%
#B3000000 = 70%
#99000000 = 60%
#80000000 = 50%
#66000000 = 40%
#4D000000 = 30%
#33000000 = 20%
#1A000000 = 10%
#00000000 = 0% (= durchsichtig)
Für 60% Transparenz (oder besser gesagt sind das ja 40% transparent, da 0% ja komplett transparent ist... egal :D) ersetzt ihr also:
Code:
<item type="drawable" name="status_bar_background">[COLOR="Red"]#ff000000[/COLOR]</item>
mit
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:
Code:
<item type="drawable" name="status_bar_background">[COLOR="Red"]#ff000000[/COLOR]</item>
mit
Code:
<item type="drawable" name="status_bar_background">[COLOR="SeaGreen"]@drawable/status_bar_background[/COLOR]</item>
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.
_________________​

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:
Code:
apktool b SystemUI
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:
Code:
adb remount
adb push SystemUI.apk /system/app
adb reboot
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.
___________________

So könnte das ganze dann aussehen:
Screenshot_2012-05-29-14-39-09.jpg

___________________

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

  • apktool_ics.zip
    3,1 MB · Aufrufe: 263
Zuletzt bearbeitet:
  • Danke
Reaktionen: BanB
So bin jetzt endlich auch mal zum probieren gekommen.
Hat einwandfrei geklappt. Zwar war der zu ändernde Wert in der StatusBar.smali nicht -0x1 (wie in der Anleitung beschrieben) sondern 0x4 , aber das war kein Problem. Hier das Ergebnis:

Screenshot_2012-05-29-14-39-09.jpg


Falls jemand auch Interesse hat (und mit smali edits nichts anfangen kann oder nicht klarkommt), kann sich gerne bei mir melden.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: uniQueSTAR
Nimrod schrieb:
Falls jemand auch Interesse hat (und mit smali edits nichts anfangen kann oder nicht klarkommt), kann sich gerne bei mir melden.


Danke dir nochmal für deine Hilfe ;)

Hier mal mein Ergebnis, zwar bin ich noch nicht ganz zufrieden da die Icons in der Statusbar zu nah aneinander sitzen und die Position + Farbe der Uhr gefällt mir nicht, würde die Uhr gern in der Mitte und in weiß haben, falls wer weiß wo ich das ändern kann - bitte bescheid sagen :)

screenxq.jpg


Lg
uni :thumbup:

EDIT:

Sooo.. nun bin ich zufrieden :D

screeneub.jpg


Dank dieser Seite http://mobility.forumsee.com/a/m/s/p12-9751-067375---guide-cm9-mods-transparent-statusbar-center-clock-carrier-logo.html und der tollen Erklärung von Nimrod hab ich (als anfänger) alles so hinbekommen wie ich es haben wollte :D
 
Zuletzt bearbeitet:
Kann mir das auch jemand für Tablets (statusbar unten) erklären?
 
Hab leider auch nichts richtiges dazu gefunden, würde mich aber auch interessieren.
Ich probier mal bissl, vielleicht bekomm ichs hin.

Edit: Leider ohne Erfolg. Allerdings auch unter JB und nicht ICS, da sind auch die Dateien ganz anders...
Falls sich jemand damit auskennt, kann sich ja mal melden...
 
Zuletzt bearbeitet:
Hab hier mal ein HowTo draus gemacht. Ich hoffe es ist einigermaßen verständlich. :)
 
  • Danke
Reaktionen: frankie78 und BanB
Vote for sticky, bitte mehr davon!

Sent from my SK17i
 
  • Danke
Reaktionen: Nimrod
uniQueSTAR schrieb:

Hey, uniQueSTAR !
Kannst du mir vielleicht bitte verraten, wo du die Icons her hast und das Wetter/Uhr Widget ? :blushing::biggrin:
... falls es wer anders weiß, ich bin für Idee Hilfe dankbar ! :biggrin:
 
Zuletzt bearbeitet:
phizy schrieb:
Hey, uniQueSTAR !
Kannst du mir vielleicht bitte verraten, wo du die Icons her hast und das Wetter/Uhr Widget ? :blushing::biggrin:
... falls es wer anders weiß, ich bin für Idee Hilfe dankbar ! :biggrin:


PS: Danke für die Gute Anleitung, hat mir sehr geholfen ! :)

Schau mal hier :)

https://www.android-hilfe.de/showthread.php?p=3775610

Lg
Uni

Gesendet von meinem HTC Sensation mit Tapatalk 2
 
  • Danke
Reaktionen: phizy
Cool, Dankeschön erstmal :thumbsup:


hab aber noch mal 'ne Frage zum Thema,

ich hab alles so wie oben geschrieben gemacht, erst mit adb die Dateien runter vom System geholt und danach auch die beiden Dateien installiert bzw. decompilen (schreibt man das so ?).
Hat alles super geklappt, .. dachte ich zumindest, denn als ich zum zweiten Schritt übergehen wollte, gab's bei mir keinen 'smali'-Ordner, somit konnte ich da natürlich auch nichts editieren :thumbdn: ..
Schritt 3 ging wieder, da ich den 'res'-Ordner habe und Schritt 4, Compilen und einfügen, ging auch wieder nicht, da bei mir keine neue apk erstellt wird.
Ich hab jetzt schon einen anderen originalen smali Ordner gezogen, und damit weitergemacht, aber hat auch alles nicht funktioniert.
ohne den Ordner hab ich's auch schon probiert und nur die xml Sachen gemacht, aber ist dann auch wohl wieder bei Schritt vier gescheitert ..
Durch mehrere Online Foren hab ich mich auch durchgelesen, aber meist steht ja das selbe überall und deswegen find' ich den Fehler bei dem was ich da grad mach auch nicht ^^

Bin dankbar für Hilfen und Tipps ! :smile:
 
Ich würde sagen das liegt am apktool, hast du mal das probiert, was ich angehängt habe?

Gesendet von meinem Evo 3D GSM
 
...oder - Virtuous Ten Studio, das Programm ist fast schon göttlich meiner Meinung nach :)
 
TzGuf schrieb:
...oder - Virtuous Ten Studio, das Programm ist fast schon göttlich meiner Meinung nach :)
guter tip, Danke!
 
hab mich heute noch mal rangesetzt und es endlich auch mal geschafft :thumbsup:

'META-INF und die AndroidManifest.xml' sollte man auch wohl mal in die neue SystemUI.apk packen, dann klappt es auch ! :rolleyes2::biggrin:
 
Klappt aber auch mit den Jkay deluxe Settings + Custom Rom :thumbup:

cmx//i9100//tapatalked
 
Das is geil. Wo is das Bild her?

Gesendet von meinem HTC EVO 3D X515m
 
Und verrätst du uns auch, wie du das gemacht hast? :)
Und ist das JB oder ICS?

Gesendet von meinem HTC EVO 3D X515m
 

Ähnliche Themen

O
Antworten
10
Aufrufe
2.742
BOotnoOB
BOotnoOB
miustone
Antworten
2
Aufrufe
1.701
miustone
miustone
S
Antworten
5
Aufrufe
1.684
Johan
J
Zurück
Oben Unten