Search code examples
androidshelledify

Aroma Installer Issues


I apologize if this is not the right place to post this... let me know where is, and I can move it.

Can someone help me figure out what I am doing wrong here.

I am trying to buuild a rom (and the normal install works just fine), with an Aroma installer for some config options.

Right now, all I want to do is to show the values of the options checked on the screen, but nothing is happenning. The Aroma config works just fine, but when I get to the install now, nothing is showing...

Aroma Config

# FORCE COLOR
ini_set("force_colorspace","rgba");

# ROM/Mod INFORMATION
ini_set("rom_name",             "o7th S5 Edition");
ini_set("rom_version",          "1.4");
ini_set("rom_author",           "kevp75");
ini_set("rom_device",           "Galaxy s4 I337");
ini_set("rom_date",             "8-22-14");

# THEME
theme("franzyroy");

splash(7000, "o7th");

# FONT
fontresload( "0", "ttf/Roboto-Regular.ttf;ttf/DroidSansFallback.ttf;", "10" );
fontresload( "1", "ttf/Roboto-Regular.ttf;ttf/DroidSansFallback.ttf;", "12" );

# LANGUAGE
loadlang("langs/en.lang");

# SHOW ROM/Mod INFORMATION

viewbox(
    #-- Title
    "<~welcome.title>",  
    #-- Text
    "<~welcome.text1> <b>"+
    #-- Get Config Value
    ini_get("rom_name")+
    "</b> <~common.for> <b>"+ini_get("rom_device")+"</b>.\n\n"+    
    "<~welcome.text2>\n\n"+ 
    "  <~welcome.version>\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
    "  <~welcome.updated>\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+
    "<~welcome.next>",  
    #-- Icon
    "@welcome"
);

# LICENSE
agreebox(
    #-- Title
    "o7th S5 Edition",  
    #-- Subtitle / Description
    "Read Carefully",  
    #-- Icon:
    "@license",  
    #-- Text Content 
    resread("license.txt"),  
    #-- Checkbox Text
    "Do you agree??",  
    #-- Unchecked Alert Message
    "You've to agree!!"
);

menubox(
    "o7th S5 Edition",  
    "Install or Not, it's your choice!",  
    "@apps",    
    "menu.prop",    
    "Install", "Install This Rom", "@install",
    "QUIT", "I'm a quitter... get me outta here", "@install"
);

if prop("menu.prop", "selected") == "1" then

    # Tweak Selection
    checkbox(
        "Tweaker",
        "Choose Tweaks to Apply:",
        "@personalize",
        "tweaks.prop",  
        "Zip-Align Data", "Select to zip-align your installed apps every 3 days", 1,
        "Modify Mounts", "Select to speed up your main partitions", 1,
        "Move Dalvik Cache", "This will move your dalvik-cache to your /cache partition freeing up space for apps", 0,
        "Kevs Tweaks", "Clean Logs, Vaccuum Databases, Tweak Network Speeds, etc...", 1
    );

    # App Selection
    checkbox(
        "App Selection",
        "Please note, that if you do not select an S5 app, the S4 counterpart if any, will be installed instead. And as always, any 3rd party launcher can and probably will make some widgets go haywire",
        "@personalize",
        "apps.prop",    
        "S5 AccuWeather Widget", "", 1,
        "S5 Activity Zone", "", 1,
        "S5 Browser", "", 1,
        "S5 Calculator", "", 1,
        "S5 Gallery", "", 1,
        "S5 Group Play", "", 1,
        "S5 Memo", "", 1,
        "S5 Music Player", "", 1,
        "S5 S Note", "", 1,
        "S5 S Planner", "", 1,
        "S5 S Health", "", 1,
        "S5 Smart Remote", "", 1,
        "S5 Translator", "", 1,
        "S5 Video Player", "", 1,
        "S5 Camera", "", 1,
        "ViPER4Android", "Best audio effects out there", 0,
        "XPosed & Wanam", "XPosed Framework installer and Wanam", 0
    );

    # De-Bloater
    menubox(
        "De-Bload This Sucka!",  
        "De-Bloating will not remove any apps you have chosen to include.\nBut will get rid of the rest.",  
        "@apps",    
        "debloat.prop",    
        #-------------------------+-----------------[ Menubox Items ]-------------------------+---------------#
        # TITLE                   |  SUBTITLE                                                 |   Item Icons  #
        #-------------------------+-----------------------------------------------------------+---------------#     
        "De-Bloat", "Make me slim",      "@install",      #-- selected = 1
        "Don't De-Bloat",  "Keep me a piggy",                        "@install"       #-- selected = 2
    );

    # Launcher Selection
    selectbox(
        "o7th S5 Edition",  
        "Select your default launcher",
        "icons/install",
        "launcher.prop",
        "Select One", "", 2,       #-- Group 1. key = "selected.1"
        "Touchwiz", "Default Samsung launcher", 1,       #-- selected.1 = 1
        "Nova", "Highly customizable, performance driven launcher", 0,       #-- selected.1 = 2
        "Smart Launcher", "Lightweight intuitive launcher", 0,        #-- selected.1 = 3
        "Go Launcher EX", "Themable feature packed launcher", 0,        #-- selected.1 = 4
        "Google Now", "Google's launcher", 0,        #-- selected.1 = 5
        "Themer", "Highly themable launcher", 0        #-- selected.1 = 6
    );

    # Installation UI
    ini_set("text_next", "Install Now");
    ini_set("icon_next", "@installbutton"); 
    viewbox(
      #-- Title
        "Ready to Install",
      #-- Text
        "Ready to install.\n\n"+
        "Press <b>Install ROM</b> to begin the installation.\n\n"+
        "To review or change any of your installation settings, press <b>Back</b>.\n\n"+
        "Press Menu -> Quit Installation to quit.",
      #-- Icon
        "@install"
    );
    alert( "Alert", "Installation will begin now...");
endif;

# INSTALLATION PROCESS
if prop("menu.prop","selected")== "1" then

    ini_set("text_next", "Next");
    ini_set("icon_next", "@next");

    install(
        "o7th S5 Edition Installing",
        getvar("rom_name") + "\n" +
        "Go grab a coffee... this may take awhile." +
        "",
        "icons/install"
    );

    ini_set("text_next", "Finish");
    ini_set("icon_next", "@finish");

    checkviewbox(
        #-- Title
        "Installation Completed",   
        #-- Text
        "<#selectbg_g><b>Congrats...</b></#>\n\n"+
        "<b>"+ini_get("rom_name")+"</b> has been installed.\n\n",    
        #-- Icon
        "@welcome",
        #-- Checkbox Text
        "Reboot your device now.",
        #-- Initial Checkbox value ( 0=unchecked, 1=checked ) -  (Optional, default:0)
        "1",
        #-- Save checked value in variable "reboot_it" (Optional)
        "reboot_it"
    );
endif;

# Check if reboot checkbox was checked
if getvar("reboot_it")=="1" then
    reboot("onfinish");
endif;

Updater-Script

ui_print("Just Testing the Installer...");
sleep(1);
ui_print("-- Tweaks");
sleep(1);
ui_print("Zip-Align: ");
ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.1") == "1");
ui_print("Modify Mounts: ");
ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.2") == "1");
ui_print("Move Dalvik: ");
ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.3") == "1");
ui_print("Kevs Tweaks: ");
ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.4") == "1");
sleep(1);
ui_print("-- Apps");
sleep(1);
ui_print("S5 AccuWeather Widget: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.1") == "1");
ui_print("S5 Activity Zone: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.2") == "1");
ui_print("S5 Browser: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.3") == "1");
ui_print("S5 Calculator: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.4") == "1");
ui_print("S5 Gallery: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.5") == "1");
ui_print("S5 Group Play: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.6") == "1");
ui_print("S5 Memo: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.7") == "1");
ui_print("S5 Music Player: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.8") == "1");
ui_print("S5 S Note: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.9") == "1");
ui_print("S5 S Planner: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.10") == "1");
ui_print("S5 Shealth: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.11") == "1");
ui_print("S5 Smart Remote: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.12") == "1");
ui_print("S5 Translator: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.13") == "1");
ui_print("S5 Video Player: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.14") == "1");
ui_print("S5 Camera: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.15") == "1");
ui_print("ViPER4Android: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.16") == "1");
ui_print("XPosed & Wanam: ");
ui_print(file_getprop("/tmp/aroma/apps.prop", "item.1.17") == "1");
sleep(1);
ui_print("-- De-Bloater");
sleep(1);
ui_print("De-Bloat or Not: ");
ui_print(file_getprop("/tmp/aroma/debloat.prop", "selected") == "1");
sleep(1);
ui_print("-- Launcher");
sleep(1);
ui_print("S5 Touchwiz: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.1") == "1");
ui_print("Nova: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.2") == "1");
ui_print("Smart: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.3") == "1");
ui_print("Go: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.4") == "1");
ui_print("Google: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.5") == "1");
ui_print("Themer: ");
ui_print(file_getprop("/tmp/aroma/launcher.prop", "selected.6") == "1");

So far, everything I've read shows that this should be correct... but it's obviously not...

True updater-script

ifelse(file_getprop("/tmp/aroma/menu.prop","selected") == "1",
(
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    ui_print("~                                       ~");
    ui_print("~     Galaxy i337 S5 Edition v.1.1.5    ~");
    ui_print("~         Safestrap KitKat 4.4.2        ~");
    ui_print("~               By kevp75               ~");
    ui_print("~                                       ~");
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    unmount("/system");
    unmount("/cache");
    unmount("/data");
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    ui_print("~ Prepping Your System                  ~");
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p18", "/cache");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p29", "/data");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/system");
    sleep(1);
    show_progress(0.1, 0);
),
(
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    ui_print("~                                       ~");
    ui_print("~     Galaxy i337 S5 Edition v.1.1.5    ~");
    ui_print("~         Safestrap KitKat 4.4.2        ~");
    ui_print("~               By kevp75               ~");
    ui_print("~                                       ~");
    ui_print("~                QUITTER                ~");
    ui_print("~                                       ~");
    ui_print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    unmount("/system");
    unmount("/cache");
    unmount("/data");
)
);

Error Message In Log

Finally have a log file getting written, but here is the message: line 1 col 8:syntax error, unexpected BAD 1 parse errors


Solution

  • Here is one thing you didnt notice. If you are familiar with Google's Edify Recovery Scripts you should know that the syntax for ui_print is with ("sampletext");

    When you have this code:

    ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.3") == "1");
    

    There is a double pair of quotations. That breaks the syntax on so many levels.You are actually supposed to do this:

    ui_print("file_getprop(/tmp/aroma/tweaks.prop, item.1.3) == 1");
    

    Notice where I put my double quotation. Again to rewrite, ui_print only prints within the parenthesis and also within the quotes. You can't have double pairs or more in one ui_print command. Your command above will theoretically print /tmp/aroma/tweaks.prop then print out item.1.3 and then 1. In this order:

    /tmp/aroma/tweaks.prop
    item.1.3
    1
    

    That is not how the Syntax works and will just return an error. The aroma installer doesn't do that and just proceeds to the next do-able action. However if you do:

    ui_print("file_getprop /tmp/aroma/tweaks.prop, item.1.3 ==1");
    

    it will print out exactly what you want.

    Also you cant have parenthesis of any kind or quotations of any of the sorts inside the (" ") The interpreter built into Edify will just treat the second parenthesis as the start of a new command. But with wrong syntax will return error status 1.

    /////////////////////////////////////////////////////////////////////////////////////////////////////

    Big Time to Rephrase everything I said into simple terms.

    Your code has a big problem. The problem is the extra symbols you use inside the ui_print command.

    ui_print(file_getprop("/tmp/aroma/tweaks.prop", "item.1.3") == "1");
    

    The 3 major problems with this code is the extra parenthesis inside the first original pair. The system will get confused with the extra ones and assume a new command from them. The extra quotes inside the first pair also make it even more confusing for the system because it now thinks this is a new command. Rule of Thumb: Never do multiple quotes,parenthesis,slashes,periods within the command because the machines don't think like you. They by their written language get a different idea than what you have in mind. Which results in errors.

    The reason why you don't see anything is because all the commands gave an error. I hope from 2 versions of explanations you have known what I'm talking about :P