1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Erste Custom ROM - Ziemlich verzweifelt am Updater-Script

Dieses Thema im Forum "Android OS Entwicklung / Customize" wurde erstellt von Fallwrrk, 28.03.2012.

  1. Fallwrrk, 28.03.2012 #1
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Hey,

    ich bin grad dabei meine erste Custom ROM für das HTC Sensation Public zu stellen. Die ROM an sich ist kein Problem, die liegt fertig aufm Desktop. Was mich langsam aber richtig aggressiv macht, ist AROMA und das update-script.

    Erstmal: Damit es auch was werden soll, arbeite ich OHNE Küche. Ich hantier rein mit 7Zip, Signing-Tools und dem APK-Manager.

    Ich hab ne Menge Fragen, die mich inzwischen echt auf die Palme bringen:



    1. Ich abreite mit dem AROMA-Installer, da die Installation einfach schöner ist. Bei den ersten Flashversuchen mit dem Market auf ein formatiertes System musste ich erstmal drei Fehler ausbügeln. Halb so wild. Dann kam endlich der Splash-Screen und das Willkommens-Fenster. Ein Klick auf Next und schon war wieder Hacke. Folgender Fehler wurde von AROMA ausgespuckt:

    Code:
    FUNCTION ERROR!!! aroma-config: viewbox() expects 3 args (title,desc,ico). Got 11
    
    Das hat mich direkt man aufgeregt. Als ich den Textbaustein des Fensters rausgenommen hab, lief er ganz normal weiter. Also liegts an diesem Baustein. Einen Unterschied, außer, dass der Text 11 Zeilen lang ist, konnte ich zu anderen Bausteinen, wie dem ersten Windows nicht erkennen. Die Frage ist nun: Wo liegt der Fehler. Ich weiß, dass er von Etwas 3 erwartet hat, jedoch 11 bekam. 11 ist wahrscheinlich meine Zeilenanzahl. Aber wie löse ich das Problem. Packt AROMA vllt keine 11 Zeilen?



    2. Die Frage ist kürzer: Wenn ich eine Partition formatieren will, beispielsweise den Cache, muss die Partition dann gemountet sein oder nicht? Jeder andere Installern von anderen ROMs sagt was Anderes.



    3. Was zum Teufel sind diese riesigen Textbausteine im Script, die sich Symlinks schimpfen? Sie sind gefühlt unendlich lang, ich weiß nicht, wozu diese gut sind, ich weiß nicht, wozu diese fähig sind und ich weiß nichtmal, wie man sie bildet oder ob man sie überhaupt braucht.



    Das war erstmal alles. Ich hoffe, dass einer von euch klugen Köpfen mir helfen kann. Auf Wunsch häng ich aroma-config und updater-script noch hier an.

    mfg Marcel
     
    Zuletzt von einem Moderator bearbeitet: 28.03.2012
  2. junior2, 29.03.2012 #2
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
    Ein Symlink ist wie eine Verknüpfung:
    Symbolische Verknüpfung

    Ich habe aber auch eine ähnliche Frage hier weiter unten im Forum gestellt...:crying:

    Ich habe keine AHnung was dieses "Aroma ist, aber ich glaube ich kann dir einen Tipp geben:
    FUNCTION ERROR!!! aroma-config: viewbox() expects 3 args (title,desc,ico). Got 11 Wie du gesgt hast erwartet er drei Sachen(args=Argumente)
    Diese wären: title desc icon
    Du hast wahrscheinlich die ?Definition? nicht richtig beendet, oder die Begriffe später erneut neu definiert.
    Kannst du vlt. das .Config anhängen?

    PS: Kann natürlich auch sein, dass es total falsch ist...:p
     
  3. Fallwrrk, 02.04.2012 #3
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Okay, ich hab alle Probleme gelöst, hab jedoch ein komplett Neues:

    Mein Script formatiert erst /system und /cache, mountet daraufhin /system und schreibt dann auf /system. Soweit komm ich aber leider nicht. Formatieren klappt perfekt. Erst wird /system formatiert und dann /cache, was durch den Log von AROMA auch bestätigt wird (außerdem war meine aktuelle ROM weg und ich hatte kein Backup :D ). Jedoch kommt schon vor dem Befehl...

    Code:
    ui_print("Mounte System...");
    
    ...die Meldung...

    Code:
    error: file_write: write: I/O error
    
    Der Fehlercode ist "Status 1". Fehler im Script hab ich nicht gefunden.

    Ich hoffe, mir kann jemand dabei helfen.

    mfg Marcel
     
  4. junior2, 02.04.2012 #4
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
    Kannst du bitte den Script hochladen? Ist zu spät am Abend und ich komme nicht mehr mit...:tongue:
    Und wenn du willst noch die stelle wo der Fehler kommt einfügen, kannst es ja auch als Code posten.
     
  5. Fallwrrk, 02.04.2012 #5
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Spät? Überhaupt nicht. Wie sagt man um 8 Uhr morgend so schön: "Guten Morgen Deutschland, gute Nacht Gamer!" :D

    Bitte sehr. Der dick geschriebene Teil funktioniert perfekt. Der unterstrichene erscheint nichtmal mehr:

    Code:
    [B]ui_print("Formatiere System...");
    	format("ext4", "EMMC", "/dev/block/mmcblk0p22");
    ui_print("Formatiere Cache...");
    	format("ext4", "EMMC", "/dev/block/mmcblk0p24");[/B]
    [U]ui_print("Mounte System...");
    	mount("ext4", "EMMC", "/dev/block/mmcblk0p22", "/system");
    ui_print("Schreibe System...");
    	package_extract_dir("system", "/system");
    ui_print("Installiere Busybox...");
    	set_perm(0, 1000, 0755, "/system/xbin/busybox");
    	run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
    ui_print("Setze Symlinks...");
    	symlink("dumpstate", "/system/bin/dumpcrash");
    	symlink("toolbox", "/system/bin/cat");
    	symlink("toolbox", "/system/bin/chmod");
    	symlink("toolbox", "/system/bin/chown");
    	symlink("toolbox", "/system/bin/cmp");
    	symlink("toolbox", "/system/bin/date");
    	symlink("toolbox", "/system/bin/dd");
    	symlink("toolbox", "/system/bin/df");
    	symlink("toolbox", "/system/bin/dmesg");
    	symlink("toolbox", "/system/bin/getevent");
    	symlink("toolbox", "/system/bin/getprop");
    	symlink("toolbox", "/system/bin/hd");
    	symlink("toolbox", "/system/bin/id");
    	symlink("toolbox", "/system/bin/ifconfig");
    	symlink("toolbox", "/system/bin/iftop");
    	symlink("toolbox", "/system/bin/insmod");
    	symlink("toolbox", "/system/bin/ioctl");
    	symlink("toolbox", "/system/bin/ionice");
    	symlink("toolbox", "/system/bin/kill");
    	symlink("toolbox", "/system/bin/ln");
    	symlink("toolbox", "/system/bin/log");
    	symlink("toolbox", "/system/bin/ls");
    	symlink("toolbox", "/system/bin/lsmod");
    	symlink("toolbox", "/system/bin/lsof");
    	symlink("toolbox", "/system/bin/mkdir");
    	symlink("toolbox", "/system/bin/mount");
    	symlink("toolbox", "/system/bin/mv");
    	symlink("toolbox", "/system/bin/nandread");
    	symlink("toolbox", "/system/bin/netstat");
    	symlink("toolbox", "/system/bin/newfs_msdos");
    	symlink("toolbox", "/system/bin/notify");
    	symlink("toolbox", "/system/bin/printenv");
    	symlink("toolbox", "/system/bin/ps");
    	symlink("toolbox", "/system/bin/reboot");
    	symlink("toolbox", "/system/bin/renice");
    	symlink("toolbox", "/system/bin/rm");
    	symlink("toolbox", "/system/bin/rmdir");
    	symlink("toolbox", "/system/bin/rmmod");
    	symlink("toolbox", "/system/bin/route");
    	symlink("toolbox", "/system/bin/schedtop");
    	symlink("toolbox", "/system/bin/sendevent");
    	symlink("toolbox", "/system/bin/setconsole");
    	symlink("toolbox", "/system/bin/setprop");
    	symlink("toolbox", "/system/bin/sleep");
    	symlink("toolbox", "/system/bin/smd");
    	symlink("toolbox", "/system/bin/start");
    	symlink("toolbox", "/system/bin/stop");
    	symlink("toolbox", "/system/bin/sync");
    	symlink("toolbox", "/system/bin/top");
    	symlink("toolbox", "/system/bin/touch");
    	symlink("toolbox", "/system/bin/umount");
    	symlink("toolbox", "/system/bin/uptime");
    	symlink("toolbox", "/system/bin/vmstat");
    	symlink("toolbox", "/system/bin/watchprops");
    	symlink("toolbox", "/system/bin/wipe");
    	symlink("/system/bin/mksh", "/system/bin/sh");
    	symlink("/system/fonts/Roboto-Regular.ttf","/system/fonts/DroidSans.ttf");
    	symlink("/system/fonts/Roboto-Bold.ttf","/system/fonts/DroidSans-Bold.ttf");
    	symlink("/factory/hdcp.keys", "/system/vendor/firmware/hdcp.keys");
    ui_print("Setze Rechte...");
    	set_perm_recursive(0, 0, 0755, 0644, "/system");
    	set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
    		set_perm(0, 1000, 04750, "/system/bin/iptables");
    		set_perm(0, 3003, 02750, "/system/bin/netcfg");
    		set_perm(0, 3004, 02755, "/system/bin/ping");
    		set_perm(0, 2000, 06755, "/system/bin/reboot");
    		set_perm(0, 2000, 06750, "/system/bin/run-as");
    		set_perm(0, 1000, 04750, "/system/bin/tc");
    	set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
    		set_perm(0, 0, 0755, "/system/etc/bluetooth");
    		set_perm(0, 0, 0644, "/system/etc/bluetooth/a2dp_avrcp.conf");
    		set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
    		set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
    		set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
    		set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
    		set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
    		set_perm(1000, 1000, 0555, "/system/etc/init.qcom.sdio.sh");
    	set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
    	set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/left_eye-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/nose_base-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-r0-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-rn7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.3/right_eye-y0-yi45-p0-pi45-rp7-ri20.2d_n2/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-r0-ri30.4a/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-rn30-ri30.5/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.3/head-y0-yi45-p0-pi45-rp30-ri30.5/full_model.bin");
    		set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin");
    	set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
    	set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
    		set_perm(0, 0, 06755, "/system/xbin/su");
    ui_print("Flashe boot.img...");
    	assert(package_extract_file("boot.img", "/tmp/boot.img"),
    	write_raw_image("/tmp/boot.img", "boot"));
    ui_print("Unmounte System...");
    	unmount("/system");
    ui_print("");
    ui_print("  Folge mir auf Twitter, damit du kein  ");
    ui_print(" Update der Ride The Lightning-ROM mehr ");
    ui_print("               verpasst:                ");
    ui_print("            @bratwurstmobil             ");
    ui_print("");
    ui_print("Klicke auf Next.");[/U]
    
     
  6. junior2, 02.04.2012 #6
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
    Probiere das hier mal:
    format("yaffs2", "MTD", "system", "0");
    mount("yaffs2", "MTD", "system", "/system");

    Cache muss der Benutzer eben selbst löschen...:D
    In dem Rest kann ich keinen Fehler entdecken.
     
  7. Fallwrrk, 02.04.2012 #7
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Klappt nicht. AROMA bzw 4EXT kennt MTD nicht. Das hab ich schonmal versucht und bin kläglich gescheitert. Das Problem liegt dja defintiv nicht am mount(), ansonsten müsste ja zumindest der ui_print()-Text erscheinen. Das tut er aber auch nicht. Also muss der Fehler zwischen dem Text und dem Formatieren des Caches liegen, nur wo und wieso?

    mfg Marcel
     
  8. junior2, 02.04.2012 #8
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
    Probiere es mit dem Tool von XDA:
    Suche noch...(Habe den Link auf nem anderen Rechner)
    Sorry, finde es nicht mehr aber es ist ganz sicher noch da.
    Es hat ein GUI und du kannst z.B. mount system drücken und er erstellt den passenden Code....

    Wenn du das benutzt kannst du sicher sein, dass nichts am Updater Script(z.B. formatieren des Caches) liegt.
    Und es geht viel schneller, aber du bist ja schon (fast) fertig.
     
    Zuletzt bearbeitet: 02.04.2012
  9. junior2, 02.04.2012 #9
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
  10. Fallwrrk, 02.04.2012 #10
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Nen Acc hab ich, danke! Ich werd mal morgen schauen und dort nachfragen. Ich hab nur erst hier nachgefragt, weil mir deutsche Antworten dann doch lieber sind.

    mfg Marcel
     
  11. torxx, 03.04.2012 #11
    torxx

    torxx Android-Ikone

    Beiträge:
    4,079
    Erhaltene Danke:
    1,542
    Registriert seit:
    10.12.2011
    Hast du die recovery.log Datei? Also ich hab da jetzt auch keinen Fehler gesehen..
     
  12. Fallwrrk, 03.04.2012 #12
    Fallwrrk

    Fallwrrk Threadstarter Gast

    Ne Recovery.Log spuckt AROMA nicht aus, aber was Ähnliches:

    Code:
     AROMA INSTALLER version 1.10
      (c) 2011-2012 by amarullz xda-developers
    
    ROM Name    : Ride The Lightning
    ROM Version : BETA1
    ROM Author  : Bratwurstmobil
    Device      : HTC Sensation Z710e/Z715e
    Start at    : Mon Apr  2 19:30:49 2012
    
    
      Formatiere System...
        Creating filesystem with parameters:
        Size: 838859776
        Block size: 4096
        Blocks per group: 32768
        Inodes per group: 7315
        Inode size: 256
        Journal blocks: 3200
        Label:
        Blocks: 204799
        Block groups: 7
        Reserved block group size: 55
        Created filesystem with 11/51205 inodes and 6651/204799 blocks
      Formatiere Cache...
        Creating filesystem with parameters:
        Size: 125787136
        Block size: 4096
        Blocks per group: 32768
        Inodes per group: 7677
        Inode size: 256
        Journal blocks: 1024
        Label:
        Blocks: 30709
        Block groups: 1
        Reserved block group size: 7
        Created filesystem with 11/7677 inodes and 1518/30709 blocks
        error: file_write: write: I/O error
    
    
    Installer Error (Status 1)
    
    
    End at : Mon Apr  2 19:30:55 2012
    

    Gesendet von meinem HTC Sensation XE with Beats Audio mit der Android-Hilfe.de App
     
  13. junior2, 03.04.2012 #13
    junior2

    junior2 Android-Guru

    Beiträge:
    3,082
    Erhaltene Danke:
    341
    Registriert seit:
    17.12.2011
    Phone:
    LG Optimus One
    Scheint beim Formatieren des Caches zu sein.
    Ein I/O Error gibt es normalerweise, wenn etwas nicht beschrieben oder gelesen werden kann.
    Weiß leider immer noch nicht wo der Fehler liegt.

    PS: Das Tool bringt dir leider nichts, weil es für das CWM Recovery ist...
     

Diese Seite empfehlen