Hallo...
Da immer mehr Leute fragen "Wie kann ich eine eigene Miui Version erstellen ?" ,habe Ich mich hier nun mal hingesetzt um das grob zu erklären. Dabei gehe ich mehr auf die Frage ein "Wie kann ich ein MOD von einem Gerät, auf eine anderes übertragen ??"
Gehen Wir also mal von folgendem Beispiel aus :
...Miui-AU MOD vom Nexus One, auf das HTC Desire HD übertragen...
Welche Schritte sind nun nötig, um dieses MOD auf das Desire HD zu übertragen ?
Grob gesagt ,muss man sich den Inhalt vom Desire "klauen" und in eine Stock Version von seinem Gerät einfügen...
Folgende Punkte müssen überarbeitet werden
- "/data" Ordner übertragen
- update-script Datei bearbeiten
- die *apk. Dateien übertragen
- die Framework-res.apk übertragen
- die 06defaulttheme aus "system/etc/init.d/"
- den kompletten "media" Ordner übertragen
- build.prop übertragen und anpassen
Ich denke mal das ich Punkt #1 nicht unbedingt kommentieren muss, da man da wirklich nur den einen Ordner in den anderen "Kopieren/verschieben" muss.
Bei der "update-script" Datei (zu finden unter META-Inf/com/google/android/) wird es schon etwas schwieriger, da man dort ein paar Zeilen austauschen und anpassen muss. Ein Beispiel soll das etwas klarer darstellen :
ZitatAlles anzeigenui_print(" ___ ___ ");
ui_print(" /__/\\ ___ /__/\\ ___ ");
ui_print(" | |::\\ / /\\ \\ \\:\\ / /\\ ");
ui_print(" | |:|:\\ / /:/ \\ \\:\\ / /:/ ");
ui_print(" __|__|:|\\:\\ /__/::\\ ___ \\ \\:\\ /__/::\\ ");
ui_print("/__/::::| \\:\\\\__\\/\\:\\__ /__/\\ \\__\\:\\\\__\\/\\:\\__ ");
ui_print("\\ \\:\\~~\\__\\/ \\ \\:\\/\\\\ \\:\\ / /:/ \\ \\:\\/\\");
ui_print(" \\ \\:\\ \\__\\::/ \\ \\:\\ /:/ \\__\\::/");
ui_print(" \\ \\:\\ /__/:/ \\ \\:\\/:/ /__/:/ ");
ui_print(" \\ \\:\\ \\__\\/ \\ \\::/ \\__\\/ ");
ui_print(" \\__\\/ \\__\\/ ");
ui_print("");
ui_print(" Greetings & Welcome to MIUI_Au 1.2.19 R2");
ui_print(" For the HTC Desire and Nexus One");
ui_print("==================Legend:=====================");
ui_print("B - Beta R - Stable");
ui_print("D - Data2Whatever E - Barebones");
ui_print("=================Credits======================");
ui_print(" Project Pioneer: S-Murphy");
ui_print(" Website hosted By: Talbess");
ui_print(" D Releases By: xavierjohn22");
ui_print(" R Releases By: Josh");
ui_print(" A2SD Guru: PClaren");
ui_print(" Nexus Releases By: dRaCID01");
ui_print(" Nexus Support By: CptCurry");
ui_print(" Website: http://www.miui-au.com");
ui_print("===================Note=======================");
ui_print("First boot is slow, and the boot animation");
ui_print("may appear to freeze or restart.");
ui_print("This is completely normal (most of the time).");
ui_print("=================Progress=====================");
ui_print("[*] Checking to see if you are using a N1");
assert(getprop("ro.product.device") == "passion"
getprop("ro.build.product") == "passion");
assert(getprop("ro.bootloader") == "0.33.2012"
getprop("ro.bootloader") == "0.33.0012"
getprop("ro.bootloader") == "0.35.0017"
getprop("ro.bootloader") == "0.30.2000");
show_progress(0.500000, 0);
ui_print("[*] Formatting System");
format("MTD", "system");
ui_print("[*] Mounting Data");
mount("MTD", "userdata", "/data");
ui_print("[*] Checking /data/app");
package_extract_file("check_data_app","/tmp/check_data_app");
run_program("/sbin/sh", "/tmp/check_data_app");
ui_print("[*] Copying Apps");
package_extract_dir("data", "/data");
ui_print("[*] Setting Permissions");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
show_progress(0.500000, 40);
ui_print("[*] Mounting System");
mount("MTD", "system", "/system");
ui_print("[*] Installing Android");
package_extract_dir("system", "/system");
ui_print("[*] Symlinking");
symlink("/data/data/hosts", "/system/etc/hosts");
symlink("dumpstate", "/system/bin/dumpcrash");
symlink("busybox", "/system/xbin/[");
symlink("busybox", "/system/xbin/[[");
symlink("busybox", "/system/xbin/arp");
....
....
....
....
unmount("/sd-ext");
unmount("/system");
unmount("/data");
ui_print("[*] Completed. Reboot your Desire.");
ui_print(" ");
ui_print("** If you like the work we do, please consider");
ui_print("** donating just $1 at www.miui-au.com to help");
ui_print("** us pay the bills");
ui_print(" ");
ui_print(" +++ Thanks and enjoy - MIUI-Au Team +++");
Das blau markierte zeigt die Geräteinformationen an, mit welchem sich das Gerät identifiziert, bei der installation. Passt die dort hinterlegte Information nicht mit dem Gerät überein, bricht die Installation sofort ab. Der rot makierte Text, zeigt die Installationsrichtlinien an. Hier wird gfestgelegt in welche Ordner, welche Daten installiert werden sollen. Zudem werden dort auch die jeweiligen Pfade "gemountet" (eingebunden) und ganz unten von der Installation wieder "entmounted" (ausgebunden). Diese Zeilen sollte man genaustens vergleichen und bei Bedarf für sich jeweils noch genauer anpassen.
Wenn man soweit die Datei angepasst hat, mit seiner vorhanden "update-script", kann man die gesamten *.apk's rüberschieben. Dazu gehsen wir in den "system" Ordner, wo man alle weiteren Ordner vorfindet. Hat man nun eine komplette stock Version als Arbeitsmittel vor sich, kann man den gesamten "apps" Ordner bei sich selber löschen und ihn gegen den "app"-Ordner austauschen, den man aus dem Custom ROM übernehmen möchte. Will man ein neues Sprachpaket nur einspielen, nimmt man sich lediglich die neuen apk's aus dem Sprachpaket-apps-Ordner und kopiert sie sich in seinen app Ordner rein. Bei dem Miui-AU Rom ist es wichtig danach die Datei "06defaulttheme" aus dem /etc/init.d/ Ordner zu übertragen, da diese Datei bei Miui-AU angepasst wurde.. Bei den meissten anderen ROM's, ist diese Datei unangetastet und kann weggelassen werden. Nun gehen wir zum Framework-Ordner .. dort interessiert uns nur 1. Datei, die "framework-res.apk" ..Diese kopieren wir und übertragen sie in unser ROM. Das ist alles..mehr nicht... Damit alle Grafiken aus dem Custom Rom übertragen werden und die Bootanimation, usw. löschen wir den alten "media" Ordner und ersetzen ihn komplett mit dem "media" Ordner aus dem gewählten Custom ROM.
Der letzte Schritt ist dann nun noch die anpassung von der "build.prop" Datei. In ihr findet man konfigurationen zu dem gesamten ROM. Dort werden anpassungen für Kameraeinstellungen gemacht, Zeitzonen eingestellt, Installationshilfe An/AUS gestellt, usw.
Der wichtigste Punkt ist aber, das auch dort das Gerät genau angegeben wird auf dem man Miui ausführt.
Dazu muss man sich seine alte build.prop öffnen und die neue "build.prop" daneben legen zum vergleichen.
Dabei muss man die Geräteinformationen nun aus den Zeilen raus suchen und sie mit den Gerätedaten aus seiner alten build.prop editieren.
Bsp.
Miui-AU / Nexus One "build.prop"
ZitatAlles anzeigenro.modversion=MIUI_Au
ro.build.id=MIUI
ro.build.display.id=1.2.25
ro.build.version.incremental=1.2.25
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2.1
ro.build.date=Sat Feb 25 16:04:28 CST 2011
ro.build.date.utc=1298106330
ro.build.type=userdebug
ro.build.user=hanzhupeng
ro.build.host=builder
ro.build.tags=test-keys
ro.product.model=Nexus One
ro.product.brand=generic
ro.product.name=libra_passion
ro.product.device=passion
ro.product.board=mahimahi
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=HTC
ro.product.locale.language=de
ro.product.locale.region=DE
ro.wifi.channels=
ro.board.platform=qsd8k
# ro.build.product is obsolete; use ro.product.device
ro.build.product=passion
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=libra_passion-userdebug 2.2.1 MIUI 1.2.19 test-keys
ro.build.fingerprint=generic/libra_passion/passion/mahimahi:2.2.1/MIUI/1.2.19:userdebug/test-keys
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
Bsp. Desire HD standart "build.prop"
ZitatAlles anzeigenro.build.id=MIUI
ro.build.display.id=MIUI.1.2.25
ro.build.version.incremental=1.2.25
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2.1
ro.build.date=Fri Feb 25 15:06:18 CST 2011
ro.build.date.utc=1298617578
ro.build.type=user
ro.build.user=android-build
ro.build.host=miui
ro.build.tags=release-keys
ro.product.model=HTC Vision
ro.product.brand=tmobile
ro.product.name=htc_vision
ro.product.device=vision
ro.product.board=vision
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=HTC
ro.product.locale.language=de
ro.product.locale.region=DE
ro.wifi.channels=
ro.board.platform=msm7x30
# ro.build.product is obsolete; use ro.product.device
ro.build.product=vision
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=1.72.466.4 CL296731 release-keys
ro.build.fingerprint=htc_wwe/htc_vision/vision/vision:2.2/FRF91/273326:user/release-keys
# end build properties
#
Neue Miui-AU "build.prop" auf dem Desire-HD
ZitatAlles anzeigenro.modversion=MIUI_Au
ro.build.id=MIUI
ro.build.display.id=1.2.25
ro.build.version.incremental=1.2.25
ro.build.version.sdk=8
ro.build.version.codename=REL
ro.build.version.release=2.2.1
ro.build.date=Sat Feb 25 16:04:28 CST 2011
ro.build.date.utc=1298106330
ro.build.type=user
ro.build.user=android-build
ro.build.host=miui
ro.build.tags=release-keys
ro.product.model=HTC Vision
ro.product.brand=tmobile
ro.product.name=htc_vision
ro.product.device=vision
ro.product.board=vision
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=HTC
ro.product.locale.language=de
ro.product.locale.region=DE
ro.wifi.channels=
ro.board.platform=msm7x30
# ro.build.product is obsolete; use ro.product.device
ro.build.product=vision
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=1.72.466.4 CL296731 release-keys
ro.build.fingerprint=htc_wwe/htc_vision/vision/vision:2.2/FRF91/273326:user/release-keys
# end build properties
#
# ADDITIONAL_BUILD_PROPERTIES
#
hat man alle Änderungen vorgenommen, kann man die Datei speichern...
so.. nun geht man wieder zurück zu seinem Ausgangspunkt, wo man "data", META"-INF", "system" und "boot.img" liegen hat, markiert sich alles und zippt es am besten mit 7zip zusammen.. die erstellte Zipdatei auf die SD-Karte kopieren und die "signature verfication" im Recoverymenu ausschalten. Wenn alles gut gegangen ist, sollte das ROM nun anfangen zu installieren.
Sollte es nicht der Fall sein, hat man irgendwo "meisst in der update-script" Datei, einen kleinen Fehler.
Es wird sicher nicht direkt beim ersten mal funktionieren, aber ein wenig logisches denken, tüfftelei und rumprobieren, sollte einem einen Erfolg sicher versprechen.
Wenn es noch fragen gibt, einfach hier melden...
Leute die Angst haben ihr Gerät zu beschädigen od. absolut nicht wissen was ich hier beschreibe, sollten die Finger davon lassen...
Ich übernehme keine Haftung für Schäden am Gerät, durch meine recht grobe Anleitung hier.
Grüsse
dRaCID01