yashsingh1/xdaforums huggingface dataset:
[Android Software/Hacking General [Developers Only]] Kalashnikitty:
Thank you very much Amarullz for this absolut amazing work. I have played a bit with that script and looking through github source... looks very promising. i hope i can release my miui version with AROMA on coming weekend.

Maybe i need some support from you :)

donation incoming!!
[Android Software/Hacking General [Developers Only]] rvdgeer:
Wow, this IS the future of ROM flashing!

:cool:

I'm one of the many running sebastiaan15's RunnyMede AIO ROM for the HTC Desire (Bravo)...

I love the ROM, but love the Aroma installer even more (Bravo) ;)

As sebastiaan is updating his ROM quite frequently I get a lot of play time with the installer. (Which is a good thing!) However, I have to remember my choices (what to install and what not) each time I run it.

Would it be possible to add a feature to save/export the choices/settings for a particular ROM and open/import/load them whenever I reflash the same or an updated version of the same ROM.

Would be kinda cool ;)
[Android Software/Hacking General [Developers Only]] Sebby:
+1 yes whe need that it is a pain in the ass to remember everything what you have installed before

amarullz

this future must be on top of your list to add next
[Android Software/Hacking General [Developers Only]] amarullz:
sure, i will create this feature.. after i successfully fix sensation problem

+ seb: thank for donation.. :)
[Android Software/Hacking General [Developers Only]] Kalashnikitty:
hey,

is it possible to add support for "german umlauts( enhanced vowel )" = Ä,Ö,Ü?
[Android Software/Hacking General [Developers Only]] amarullz:
will try add custom fonts. is it ascii chars? because it dont support unicode yet...

maybe supporting true type will be great. do you had any knowledge about it?
[Android Software/Hacking General [Developers Only]] Kalashnikitty:
if you are using the 7-bit ascii code, its not supported. ISO 8859-1 is fine.

no sorry i dont have any knowledge in true-type :(
[Android Software/Hacking General [Developers Only]] amarullz:
8bit ascii, 256 chars.

the problem was png font order. The current font use ordered ascii from space to ~ key code (32 to 96). if we include all chars 0-255, the png will be huge. the width will be too wide..
[Android Software/Hacking General [Developers Only]] tommytomatoe:
This is a badass concept OP. Great job!

Edit. Looking forward to make this wwork with htc Evo 4g :-)
[Android Software/Hacking General [Developers Only]] amarullz:
for qhd users, try this nightly build :

http://www.amarullz.com/_downloads/aroma-nighly/aroma-nightly-120131-007-test-touch-qhd.zip
[Android Software/Hacking General [Developers Only]] tsubus:
I'm not quite sure I understand how selectbox works. What determines the name of the prop (such as selected.1)?
[Android Software/Hacking General [Developers Only]] benjamingwynn:
It's just called selected
[Android Software/Hacking General [Developers Only]] tsubus:
That's not how it's set up in the default aroma-config file:

###################################################################################################################
#
# STEP 1 - SELECT THEME
#
selectbox(
#-- Title
"Select Theme",

#-- Sub Title
"Please select installer theme that you want to use in this installation test:",

#-- Icon: <AROMA Resource Dir>/icons/personalize.png or <ThemeDir>/icon.personalize.png
"@personalize",

#-- Will be saved in /tmp/aroma/theme.prop
"theme.prop",

#---------------------------------[ Selectbox Without Group ]----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#

"Generic", "Unthemed AROMA Installer", 1, #-- selected.0 = 1
"MIUI Theme", "MIUI Theme by mickey-r & amarullz", 0, #-- selected.0 = 2
"ICS Theme", "Ice Cream Sandwitch by DemonWav & amarullz", 0, #-- selected.0 = 3
"MIUI 4 Theme", "MIUI 4/ICS Theme by amarullz & Lennox", 0, #-- selected.0 = 4
"Sense Theme", "HTC Sense Theme by amarullz", 0 #-- selected.0 = 5

#--------[ Initial Value = 0: Unselected, 1: Selected, 2: Group Item, 3: Not Visible ]---------#
);

##
# SET THEME
#
#-- Change Info:
# file_getprop : should use absolute path "/tmp/aroma/theme.prop"
# prop : just use relative path "theme.prop" will automatically read the "/tmp/aroma/theme.prop"
#
if prop("theme.prop","selected.0")=="2" then
theme("miui");
endif;
[Android Software/Hacking General [Developers Only]] benjamingwynn:
Try 2 if commands one for that way and one for selected. Can't hurt
[Android Software/Hacking General [Developers Only]] tsubus:
I think I've got it, thanks.
[Android Software/Hacking General [Developers Only]] amarullz:
Selectbox, checkbox and menubox do the same behaviour when it come into saving the result. all this function will saving the result in prop file.

Selectbox prop key naming:

selected.[groupid] = [selected_id]

If there no defined group, the groupid will be 0, the first group will be 1, next group 2, next group 3. and so on...

selected.0 = 2

It mean the selected item id in Group 0 is 2 (item number 2).

Menubox prop key naming:

Because menubox doesn't support any grouping, the prop key name was:

selected = selected_id

Checkbox prop key naming:

in checkbox, all items can be selected or not-selected, and it support group, so the prop key naming was:

item.[groupid].[itemid] = [state]

while state was numeric. 1 = checked, 0 = unchecked.
[Android Software/Hacking General [Developers Only]] benjamingwynn:
Somebody quickly give me an example of writetmpfile. It's urgent.
[Android Software/Hacking General [Developers Only]] amarullz:
Download attachment:

I add this in step 7:

###################################################################################################################
#
# STEP 7 - SELECT MAIN MODS
#
if prop("type.prop","selected")=="1" then

# Do not know how to write, seek help,Here to call Inside Updater-script:
# if file_getprop("/tmp/aroma-data/type.prop","selected.1") == "1"
# After the end, jump directly to step 9
# What should we do here?

##-- YOU MEAN LIKE THIS??
[COLOR="Green"]writetmpfile(
#-- Prop file will write to /tmp/aroma/mods.prop
"mods.prop",

#-- Default Values
"selected.1=1\n"+ #-- Group 1, default: 1
"selected.2=2\n"+ #-- Group 2, default: 2
"selected.3=1\n" #-- Group 3, default: 1
);[/COLOR]

endif;

#--
if prop("type.prop","selected")=="2" then
...

It also answer your question..
[Android Software/Hacking General [Developers Only]] mdfaisal:
MAAAN... You Rock !!!

I will try your work...

kumaha damang kang?
[Android Software/Hacking General [Developers Only]] amarullz:
Do you mean you want to directly jump to step 9 if type.prop=="1" ?, so you don't need the step 7&8 if type.prop was "1" ?? am i right?
[Android Software/Hacking General [Developers Only]] kinghunki:
yes，Is what I mean.

You look at the way my updater script whether or not there is a problem
[Android Software/Hacking General [Developers Only]] amarullz:
Like this:

if prop("type.prop","selected")=="1" then
# Do not know how to write, seek help,Here to call Inside Updater-script:
# if file_getprop("/tmp/aroma-data/type.prop","selected.1") == "1"
# After the end, jump directly to step 9
# What should we do here?£¿£¿£¿£¿£¿£¿

##-- YOU MEAN LIKE THIS??
writetmpfile(
#-- Prop file will write to /tmp/aroma/mods.prop
"mods.prop",

#-- Default Values
"selected.1=1\n"+ #-- Group 1, default: 1
"selected.2=2\n"+ #-- Group 2, default: 2
"selected.3=1\n" #-- Group 3, default: 1
);

endif;

#-- ÊÖ¶¯Ä£Ê½
if prop("type.prop","selected")=="2" then

selectbox(
"Ë¢»úÄ£Ê½Ñ¡Ôñ",
"Çë´ÓÏÂÃæÁÐ±íÑ¡ÔñÊÊºÏÄúµÄÄ£Ê½:",
"icons/apps",
"mods.prop",

"Ñ¡Ôñ»úÐÍ£ºHTC&T","",2,
"°²×°T°æ»úÐÍROM",
"T°æ²»ÐèÒª·ÖÇø", 1,
"°²×°HTC°æ»úÐÍROM",
"HTC°æÐèÒªTF¿¨ÓÐ1GÒÔÉÏEXT·ÖÇø",0,

"¿ªÆôSwap·ÖÇø","",2,
"¿ªÆôSwap",
"¿ªÆôSwap,»á¼Ó¿ìÒ»Ð©´óÐÍÈí¼þ¡¢ÓÎÏ·µÄËÙ¶È,Ç°ÌáÄãµÄ¿¨ÓÐswap·ÖÇø", 0,
"²»¿ªÆôSwap",
"²»¿ªÆô", 1,

"Ñ¡ÔñÒýµ¼·½Ê½ £ºMAGLDR Óë Clk","",2,
"Clk·½Ê½",
"ÇëÊ¹ÓÃ Clk-1.65ÓëRecovery-v5.0.2.7",1,
"MAGLDR·½Ê½",
"ÇëÊ¹ÓÃ MAGLDR-1.13_DAFÓëRecovery-v5.0.2.7", 0
);

##
# Next Screen is Installation UI, So change the next button text to "Install Now"
#
ini_set("text_next", "¿ªÊ¼°²×°");

###################################################################################################################
#
# STEP 8 - MAKE SURE USER KNOW THAT NEXT STEP WAS INSTALLATION PROCESS
#
viewbox(
#-- Title
"×¼±¸°²×°",

#-- Text
"×¼±¸¿ªÊ¼°²×°.\n\n"+
"Ñ¡Ôñ <b>¿ªÊ¼°²×°</b> ½øÐÐROM°²×°¹ý³Ì.\n\n"+
"Èç¹ûÄúÒª²é¿´»ò¸ü¸Ä°²×°ÉèÖÃ£¬Çë°´<b>·µ»Ø</b>¼ü£¬·µ»Ø²é¿´.Ò²¿ÉÒÔ°´¡°Menu¡±¼ü£¬Ñ¡ÔñÍË³ö°²×°Ïòµ¼.",

#-- Icon
"@install"
);

endif;

##
#
# Next Button in successfull installation should be back to "Next >"
#
ini_set("text_next", "ÏÂÒ»²½ >");

###--> STEP 9
[Android Software/Hacking General [Developers Only]] kinghunki:
You may not know what I mean, I may not be clear, my English is bad. .:mad:

Translation

1：The corresponding script in the updater-script is the automatic recognition models, and guide the way, can not do the default selection.

Translation

2：updater Script - The script is fully automatic identification model, how to boot, it is not possible to make the default choice.
[Android Software/Hacking General [Developers Only]] tsubus:
How would I go about creating a directory on the SD card?

run_program("mkdir /sdcard/directory");

exec("mkdir /sdcard/directory");

Would either of these work?
[Android Software/Hacking General [Developers Only]] RolluS:
I think it would be:

in the updater-script.

If you want to create more than 1 directory level, please try:

in the updater-script.

If you have not the mkdir applet/program install in your path, you may use

instead of just mkdir

;)
[Android Software/Hacking General [Developers Only]] tsubus:
I need it created in aroma-config, before the updater-script runs.
[Android Software/Hacking General [Developers Only]] RolluS:
If I've correctly understood the following, you can't :(:

Why does it need to be created before runing updater-script?
[Android Software/Hacking General [Developers Only]] tantrums:
Hi,

I'm compiling my ROM for Optimus Black, but i'm experiencing syntax error at the end of the line. It says:

SYNTAX ERROR!!! aroma-config on line 724 col 1

but the line 724 col 1 is the end of the config file.

Any idea?

Another question, when modifying the aroma-config and the updater script, do I have to sign again after every edit?
[Android Software/Hacking General [Developers Only]] benjamingwynn:
Sounds like an if command hasn't ended with endif;
[Android Software/Hacking General [Developers Only]] dima_sk8er:
I've replaced it. But it still doesn't work.
[Android Software/Hacking General [Developers Only]] fonix232:
It solved Error 0 for me (it refers to the updater-binary non-working on the given device).

@amarullz:

Would it be possible to create a combined selectbox/checkbox, with grouping?

Basically, this:

installbox(
"Title","Text","@icon","propfile",

"group1","@group1icon",4,"group.propname", // < n for the number. 0 radio button unchecked (selectbox function), 1 radio checked, 2 checkbox unchecked, 3 checkbox checked, 4 group, 5 hidden
"item1","item1text","@itemicon",1,"item1.propname",
"item2","item2text","@itemicon",0,"item2.propname",
"item3","item3text","@itemicon",2,"item3.propname" // Like, select option of kernels, plus check this for 3G function, on tablets
);

Of course this would need some modification of the output prop file. Maybe include a prop name for every item, like this:

propfile's content:

group1.item1.propname=1 (for checked)

group1.item2.propname=0 (for unchecked)

group1.item3.propname=1

This way a more convenient naming scheme would be in use, and one screen would be enough for the whole customization of the ROM (like, selecting additional apps without making tons of groups, or more views).
[Android Software/Hacking General [Developers Only]] tsubus:
When creating a file on SD card, you can only place it in a pre-existing folder. I managed to get around it by creating it on the root of the SD card, and then from updater-script create the folder and move the file in it. It would be nice if it could be done directly from aroma-config.
[Android Software/Hacking General [Developers Only]] thedawn2009:
Try including it in the Rom zip in a folder "sdcard" then add this to your updater-script"

package_extract_dir("sdcard", "/sdcard");

Don't forget to mount the sdcard
[Android Software/Hacking General [Developers Only]] AndyFox2011:
Any restrictions on the devices it can be used on? Or will it work on any device?
[Android Software/Hacking General [Developers Only]] RolluS:
This trick can be used only in updater script.

Yesterday while playing with Aroma Installer 2.0, I've seen the shell exec thing, it is the way to go.

I will provide a solution with this method in a couple of hours (I'm going to my office right now)

By the way, I still can't understand why is it needed to write a file while in UI...
[Android Software/Hacking General [Developers Only]] liamstears:
Can anyone help with a graphic glitch I get?

It seems that the top of the statusbar gets cut off and I get a weird line go across the top instead.

I have attached a quick paint mockup to show the problem, this is with sense theme but the error is there without theme just looks slightly different

This is running on a htc sensation
[Android Software/Hacking General [Developers Only]] erlucky:
Hi Amarullz

You can add in your list my custom rom with yout Aroma Installer????

Huawei u8650 Sonic

Here

Huawei u8160 Smart

Here

Bye and thank you
[Android Software/Hacking General [Developers Only]] tsubus:
ILWT CM7 now uses AROMA UI ;)

One question: I already had a "customization procedure" in place (before using AROMA), through a .txt file located on the SD card. Some users do not want to go through AROMA UI at all, so I was wondering if there is a way to skip the AROMA UI completely and send the user to the original updater-script installation with the original recovery GUI (some users have modded GUI's and would like to see that, instead of the theme in AROMA).
[Android Software/Hacking General [Developers Only]] Pietrone94:
A-W-E-S-O-M-E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! thank you so much!!!!!!!!!!!!! this thing is amazing and genious :eek:
[Android Software/Hacking General [Developers Only]] damastah:
I cant believe what I just saw. Im absolutely amazed. Just installed OrDroid and the instant I saw a UI I knew it was you. EXCELLENT work on something so unprecedented.
[Android Software/Hacking General [Developers Only]] kylon:
Amarullz if you don t want to help me,just say i don t want to help

....

Anyway i don t think i ll use aroma in the next update of my rom
[Android Software/Hacking General [Developers Only]] amarullz:
Oh man, please if you want to make it work for your device please join the chat (in my work time), its not something i can fix with just seeing the screen.. I still dont know the real problem of your device. :(.

I recommended you try other recovery first, is the problem found in any recovery?

Ok my work time is 7:30am to 16:00pm gmt+7.
[Android Software/Hacking General [Developers Only]] kylon:
My phone only have clockwork

5.0.2.7

Pages back i already writed a few informations from display capture,but you didn t read them

I told you all the info,but seems that you didn t read them

The only new thing is that aroma is working only with alpharevx hboot.i have revolutionary and it doesn t work.

I think noone will flash a new hboot for aroma,and it could break their phones

your display capture can t save the log on my phone(don t know why)

Which is this chat you are speaking about?

My time is 9:00 am - 22:00 pm gm+1
[Android Software/Hacking General [Developers Only]] amarullz:
I already read your result, but none of the result was usefull, I need more intensive communication to know what the problem is, i look at your photo shoot of your screen, and I think it may and I am sure the framebuffer problem (unaligment), and I need some value that may cause the problem.

If on the chat, i can ask you to runs the program or use adb and communicate + testing directly..

Gmt+1, maybe start around 11am there?
[Android Software/Hacking General [Developers Only]] kylon:
your 16:00 pm = 11:00 am

so we have only 2 hrs

your 14 = 9

your 15 = 10

your 16 = 11
[Android Software/Hacking General [Developers Only]] DjSound:
Hi to all,

I'm trying to implement the aroma 2.0 installer on my Rom (for I9000 GalaxyS) but no data/app or system/app are installed...

can someone help me solve to the problem?

This are aroma-config and updater-script: http://d-h.st/G7H

Thanks to everyone who help me :)
[Android Software/Hacking General [Developers Only]] mickey-r:
@lulu86

I saw several errors like this (may be you can find others that bellow) :

package_extract_file("boot/Tiramisu/bootanimation.zip", "/system/media");
package_extract_file("ime/Android/LatinIME.apk", "/system/app");
package_extract_file("ime/TiramisuInv/LatinIME.apk", "/system/app");
package_extract_file("data/app/com.facebook.katana-1.apk", "/data/app");
package_extract_file("data/app/com.facebook.orca-1.apk", "/data/app");

must be replace :

package_extract_file("boot/Tiramisu/bootanimation.zip", "/system/media[B][COLOR="Red"]/bootanimation.zip[/COLOR][/B]");
package_extract_file("ime/Android/LatinIME.apk", "/system/app[B][COLOR="Red"]/LatinIME.apk[/COLOR][/B]");
package_extract_file("ime/TiramisuInv/LatinIME.apk", "/system/app[B][COLOR="Red"]/LatinIME.apk[/COLOR][/B]");
package_extract_file("data/app/com.facebook.katana-1.apk", "/data/app[B][COLOR="Red"]/com.facebook.katana-1.apk[/COLOR][/B]");
package_extract_file("data/app/com.facebook.orca-1.apk", "/data/app[B][COLOR="Red"]/com.facebook.orca-1.apk[/COLOR][/B]");
[Android Software/Hacking General [Developers Only]] DjSound:
Thank you very much mickey,

I tried both, as you say and that without (just to test) and the result is the same ...

It is as if the package_extract_file or dir not to be read (not even install the selected kernel or modem), practically everything that comes after the install of the system ( set_progress(0.65) ecc...) :confused: :confused: :confused:
[Android Software/Hacking General [Developers Only]] mickey-r:
ok, an other one just after progress 0.65 :

file_getprop("/tmp/aroma/type.prop","default") == "1"

must be :

file_getprop("/tmp/aroma/type.prop","selected") == "2"

according to your aroma config

###################################################################################################################
#
# STEP 6 - SHOW MENUBOX - INSTALLATION TYPE
#
menubox(
#-- Title
"Tipo di Installazione",

#-- Sub Title
"Scegli il metodo di installazione che preferisci in base alle tue esigenze.",

#-- Icon
"@install",

#-- Will be saved in /tmp/aroma/type.prop
"type.prop",

#-------------------------+-----------------[ Menubox Items ]-------------------------+---------------#
# TITLE | SUBTITLE | Item Icons #
#-------------------------+-----------------------------------------------------------+---------------#

"Default", "Installazione di Default. ", "@install", #-- selected = 1
"Personalizzata", "Scegli una Installazione Personalizzata in base a cosa ti piace o non ti piace. "+
"Raccomandata ad utenti avanzati", "@customize" #-- selected = 2
);
[Android Software/Hacking General [Developers Only]] DjSound:
well i fixed the installation of bootanimation, and the modem but app and kernel remain the same :( (p.s.

package_extract_dir("kernels/Semaphore0.9.7/system", "/system");
set_perm(0, 0, 0644, "/system/app/Semaphore.apk");

now works but the kernel is the same as default...)

Maybe a problem with customize.prop? :confused:

Edit: Everytime that installation process is complete, when he ask if reboot device or not in the upper it say: Status 0
[Android Software/Hacking General [Developers Only]] RolluS:
Hi,

For your kernel problem, do you flash boot.img?
[Android Software/Hacking General [Developers Only]] DjSound:
Yes with extract_file command if you want you can read my updater-script to the previous page

Inviato dalla mia Tiramisu+ con Tapatalk 2.0 Beta 3
[Android Software/Hacking General [Developers Only]] DjSound:
News:

Seem that i have fixed all problem and all is flashed correctly :D

Thank to all that helped me with patience and courtesy :D

I love you all :D :D :D

Sorry for double post but it was necessary for great news :D
[Android Software/Hacking General [Developers Only]] amarullz:
Ok, sorry I am will away for one or couple weeks, so cant answer your questions for now, hope other can help each others..

I have an idea for new project, but too busy right now..
[Android Software/Hacking General [Developers Only]] jullman:
if you want just one hboot(just for cm7/r2) and, if is another, you make a message and exit intall.

how you do that ?

pleasewait("Inspection du HBOOT ...");
setvar("systemsize",getdisksize("/system","m"));
setvar("sdextsize", getdisksize("/sd-ext","m"));

if
getvar("systemsize") == "-1"
then
##-- If It can't mounted, show menu:
menubox(
"HBOOT Type",
"Installer can't find out your HBOOT. Please select your HBOOT below:",
"icons/install",
"hboot_type.prop",
"CM7/r2 HBOOT", "130/145 MB /system", "icons/apps"
);

#-- Check Selected Menu
#-- Check Selected Menu
if
file_getprop("/tmp/aroma-data/hboot_type.prop","selected") == "1"
then
#- 1 = Cm7/r2 HBOOT
setvar("hboot","CM7/r2");
writetmpfile("hboot.prop", "hboot=cm7\n");
setvar("ad2sdx_support","yes");
endif;

else

##-- If We Can Found Size
#-- Check Selected Menu
if
file_getprop("/tmp/aroma-data/hboot_type.prop","selected") == "1"
then
#- 1 = Cm7/r2 HBOOT
setvar("hboot","CM7/r2");
writetmpfile("hboot.prop", "hboot=cm7\n");
setvar("ad2sdx_support","yes");
endif;

else

##-- If We Can Found Size
if
cmp(getvar("systemsize"),">","110") == "1"
then
setvar("hboot","CM7/r2");
writetmpfile("hboot.prop", "hboot=cm7\n");
setvar("ad2sdx_support","yes");
endif;

endif;
[Android Software/Hacking General [Developers Only]] benjamingwynn:
Hi guys. I've contacted op but no luck. I have a ROM with aroma already but when updating it and changing some stuff it wont install correctly. It either doesn't copy anything and stops half way through libs or puts xbin up to 200mb and fails to boot...

Any ideas guys?

Edit: its all on github https://github.com/wfsdev/dotsense
[Android Software/Hacking General [Developers Only]] DjSound:
amarullz can you add my Rom to the List of Rom with aroma installer?

This is the link to the thread: http://xdaforums.com/showthread.php?p=23843986#post23843986

Thanks very much :D
[Android Software/Hacking General [Developers Only]] The Archangel:
If anyone can help me, please pm. Just having a few issue understanding something

If I helped, give thanks, if you please.

........Death before dishonor........

Team inferno

Leader
[Android Software/Hacking General [Developers Only]] anryl:
Thanks it is working perfect on EVO3dGsm on my not released Rom :) with 4exttouchrecovery

Did sense/de-sense Rom with apps choosing and language installer on. Latest v2.
[Android Software/Hacking General [Developers Only]] DjSound:
Hi to all,

i need help again :p.

This time the problem is that i cannot be able to install app on /data/app...

The log says:

about to run program [/sbin/mount] with 3 args
mount: mounting /dev/block/mmcblk0p2 on /data failed: Device or resource busy
run_program: child exited with status 255

and so when installing some apps says:

Installing Facebook:
package_extract_file: can't open /data/app/com.facebook.katana-1.apk for write: No such file or directory

For mount partion data using:

run_program("/sbin/mount", "/dev/block/mmcblk0p2", "/data");

Can anyone help me? :confused:

Thanks to all!

EDIT: I attached full log with updater-script and aroma config
[Android Software/Hacking General [Developers Only]] anryl:
"/sbin/busybox ","mount",
[Android Software/Hacking General [Developers Only]] DjSound:
Thank you anryl for the answer :)

So the right command is:

run_program("/sbin/busybox", "mount", "/dev/block/mmcblk0p2", "/data" ) ?

Inviato dalla mia Tiramisu+ con Tapatalk 2.0 Beta 3
[Android Software/Hacking General [Developers Only]] anryl:
Yep just don't forget

;

on end of the command