Frage an Modder: Wie framework-res.apk am besten modifizieren?

H

herrlado

Erfahrenes Mitglied
26
Hallo Modder,
Ich wollte ein Paar Sachen in framework-res.apk ändern, bzw. neue locale hinzufügen. Wie spiele ich es wieder sauber ein?

Gruß,
Lado
 
was sind "neue locale" ???

einfach nach system/framework/ kopieren und überschreiben...

die Rechte VORHER!!! setzen, weil dein Stein schmiert direkt nach dem kopieren ab.
 
nutz die SuFu, es gibt einen thread, wo das genau erklärt wird, wie genau er heißt weis ich gerade nicht.... aber da steht alles drin, irgendwo auf den ersten 6 bis 10 seiten wird der hier sein
 
  • Danke
Reaktionen: herrlado
Hi. Das ist im Prinzip nicht relevant. Also die Texte möchte ich modifizieren.
Aber danach wenn ich es wieder kopiere und die Rechte setze, zwar bootet der Stein aber die Anwednungen starten nicht alle, es kommt dauernd force close, etc.

gmadzl schrieb:
was sind "neue locale" ???

einfach nach system/framework/ kopieren und überschreiben...

die Rechte VORHER!!! setzen, weil dein Stein schmiert direkt nach dem kopieren ab.

-FuFu-
Danke, ich suche mal.


Gruß,
Lado
 
Naja, modifizieren habe ich bereits AlarmClock.apk. Ich musste es sogar neu signieren.
Wenn ich framework-res.apk nicht neu signiren, gerate ich in eine Reboot Schleife.
Wenn ich es signieren starte zwar das Gerät aber alles wird gecrashed. Ich kriege nicht mit weswegen. Ich habe das hier noch gefunden:
[SOLVED] Modifying layout xmls in framework-res.apk, fails, have questions. - xda-developers

Also die Frage ist, ob man was Spezielles bei framework-res.apk tun muss.

Gruß,
Lado

P.S.
Muss man da nichts löschen, ähnlich /data/data/<some app> cache löschen?
 
Zuletzt bearbeitet:
Also mein Problem ist, ohne was zu modifizieren.

Ich packe die Datei framework-res.apk
so aus
Code:
lado@genlap ~/fra $ apktool d -s framework-res.apk diss/
dann packe ich es so ein
Code:
lado@genlap ~/fra $ apktool b diss/
dann
Code:
lado@genlap ~/fra $ jarsigner -storepass <pass> -keystore ../../../development/android/workspace/AnySoftKeyboardLanguagePackGeorgian/keystore  out.apk  anygeo

dann

Code:
lado@genlap ~/fra $ zipalign -v 4 out.apk framework-res.apk
dann


Code:
lado@genlap ~/fra $ adb push framework-res.apk /sdcard/
adb shell
su
<hier mounte rw mit root explorer>
cp /sdcard/framework-res.apk /system/framework/
chmod 644 /system/framework/framework-res.apk 
reboot
Aber com.process.android.* Prozess crashen. Telefon is unbrauchbar, da continuerlich
das Popup mit force close im FG ist :(

Was mache ich falsch?

Diesmal habe ich wirklich nichts modifiziert. Ausgepackt, eingepackt, kopiert...

Gruß,
Lado
 
Du sollst weder aus- noch einpacken. Einfach die framework-res als zip öffnen, Dateien reinladen und zip schliessen. In keinem Fall neu packen.
 
Gut, mein Problem ist, dass ich unbedingt apktool benuzen muss.
Ich will ja keine Bilder modifizieren, sondern die Texte. Da diese binär kodiert werden,
muss ich diese Datei zerlegen, die Texte modifizieren und wieder rein.

Genau das ist das Problem. Hat jemand vielleicht framework-res.apk mit apktool zerlegt und eingepackt, so dass es dann problemlos lief?


Mein nächster Schritt ist, die modifizierte Datei auf der /sdcard/ Partition zu lagern und
mit update-script zu verschieben. Vielleicht wird es dann als OK angesehen.
Siehe der Beitrag hierzu
[SOLVED] Modifying layout xmls in framework-res.apk, fails, have questions. - xda-developers
 
Bin da zufällig drüber gestolpert, ist die Frage noch aktuell?
 
Hi. Ich bin immer gescheitert. Also die Frage ist noch aktuell.


Gruß,
Lado
 
Mal schauen ob ichs hinbekomme.. die texte sind in den resources.arsc enthalten. Mit apktool das ganze decompilen, dann siehst du die folder mit den texten in dem jeweiligen folder res/...(de, en etc). Danach aendern, recompilen mit apktool und die resources.arsc wieder in die ursprungliche apk schieben :)
 
Beinahe Thyrus -es kommt immer darauf an, welche Schriftfarben er ändern will. Die Text Farben in der Framework für die Hauptschriften befinden sich nicht in der resources.arsc, sondern in res/colors.

Die wichtigsten dort sind:

primary_text_dark und primary_text_light
search_url_text
secondary_text_dark und secondary_text_light
tab_indicator_text (braucht man aber fast nie ändern)
tertiary_text_dark und tertiary_text_light

Wie Thyrus aber richtig gesagt hat - dekompilieren in apktool mit java -jar apktool.jar d framework-res.apk framework-res decoded

Dann Editieren und mit

java -jar apktool.jar b framework-res decoded

wieder kompilieren. Dann die xmls aus res/color entnehmen und in deine framework packen. Bei Firmware 2.1 ist auch signen bei system/app nicht mehr nötig.

Es gibt natürlich auch noch Tonnen an Schriften in den resources.arsc, aber dann fein runtergebrochen für einzelne Elemente. Die würdest Du dann u.a. in res/values/color.xml und res/values/styles.xml finden. Im Gegensatz zu den apps musst Du hier auch nicht mehr die smalis (classes.dex) bearbeiten, da die framework keine hat - die hasse ich nämlich wie die Pest.
 
Zuletzt bearbeitet:
@Thyrus
@he_stheone64

So einfach ist das nicht ->

https://www.android-hilfe.de/forum/...am-besten-modifizieren.28254.html#post-319694

So kann ich booten und die Oberfläche ist da, aber ich gerate in die Force Clsoe Schleife von irgendwelchen System Prozessen. Ich kann nur noch close Buttons klicken.

Die Lösung soll angeblich das hier darstellen
https://www.android-hilfe.de/forum/...am-besten-modifizieren.28254.html#post-319586

Da wir aber keine große Dateien ins update.zip packen können, sollte man ausprobieren,
ob man framework-res.apk nicht auf die /sdcard packt und mit dem update-script dann verschieben bzw. quasi "updatet"

Gruß,
Lado
 
Wad Genau willst du denn Moden Schriftart Farbe oder Texte ??mir ist nicht klar was du eigentlich machen willst
 
Thyrus

Ganz einfach, ich will eine neue Locale hinzufügen. Also
so was wie values-de, in meinem Fall values-ka
Das hinzufügen funktioniert bei den anderen Apps wunderbar. Auch framework-res.apk
kann ich im Grunde genommen modifizieren. Ich sehe, dass die Änderungen da sind. Eben diese Buttons (Force Close) sind übersetzt :D. Komme aber, wie gesagt, nicht aus der Force Close Scheife :(

Mal nebenbei gefragt. Vielleicht hast du Ahnung, wie die Aufnahme einer Neuer Sprache (Locale) in das Android OS funktioniert, so dass es offiziell ein Teil des OS wird?
Ich habe ein Paar Android Entwickler angeschrieben, leider antwortet da keiner :(
 
Du hast deine Infos offensichtlich aus der falschen XDA Abteilung, du musst NIX signieren, was in system/app kommt. Das war bei den arme G1 Jungs noch so vor 2.0, aber jetzt nicht mehr. Im Gegenteil - Du schaffst Dir dadurch nur Probleme. Ich habe mit dem oben beschriebenen Verfahren jetzt über 10 Themes mit ca. 200 modifizierten apks hier gelauncht - also scheint es doch so einfach zu sein ;)

Updaten der framework ist am sichersten ohnehin immer entweder via update script oder adb. Daher packe ich ja auch immer scripts für adb und OR in meine Themes.
 
Zuletzt bearbeitet:
@he_stheone64

Aber bestimmt keien framework-res.apk, welches mit apktool zerlegt und wieder eingepackt wurde ;)

Wenn ich es nicht signiere, bootet der Stein nicht mehr :(

Die meinten nicht signieren, aber per update.zip installieren, was aber ihrerseits signiert sein soll. Wir können ja aber bekanntlich keine update.zip singieren.
Einzige Möglichkeit zum ausprobieren bleibt das update.zip nehmen und das Skript so modifizieren, dass die Datei einfach geschoben wird.
 
Hääteste das mal gleich gesagt, Du sprachst immer von Text. Bei den strings musst Du auf folgendes achten.

1. Für jeden eingefügten Ordner z.b: values-de musst Du einen anderen Sprachordner löschen z.B. values-es
2. Du musst auch genauso bei den mcc Ordnern vorgehen (z.B. 204, 230 etc)

herrlado schrieb:
Thyrus

Ganz einfach, ich will eine neue Locale hinzufügen. Also
so was wie values-de, in meinem Fall values-ka
 
Ich mach das ja nun wirklich fast täglich ohne Probleme mit apktool - trust me. Du musst aber generell nach dem Kompilieren die Original Meta-INF und das Android Manifest aus der Original apk importieren, sonst bekommst Du natürlich Probleme (und die sind nun mal bereits signiert).

P.S. Alternativ kannst Du bei Änderungen an den values auch einfach die resources aus der kompilierten in deine Original framework schieben, auch so geht es.

herrlado schrieb:
@he_stheone64

Aber bestimmt keien framework-res.apk, welches mit apktool zerlegt und wieder eingepackt wurde ;)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: herrlado

Ähnliche Themen

X5-599
Antworten
5
Aufrufe
1.104
TheSpiritof69
TheSpiritof69
M
  • Gesperrt
  • milestone123
Antworten
1
Aufrufe
799
-FuFu-
-FuFu-
4
Antworten
1
Aufrufe
1.029
the solitaire
T
Zurück
Oben Unten