{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The World's First ANDROID Touch And Customizable ROM Installer
DEVELOPMENT AND UPDATE NOW ON XDA-DEVDB
AROMA INSTALLER THREAD
Don't Forget To Donate To Me:
When you install Linux, Windows, Mac or applications on the PC
You can always customize your installation as you want.
WHY CAN'T WE DO THE SAME INSTALLING AN ANDROID ROM?
BECAUSE NOW
AROMA Installer
GIVES YOU THIS POSSIBILITY!
For Questions and Answer about scripting and customizing your Installer, please post your problems in Q&A Thread below:
AROMA Installer & Edify
Q & A THREAD
Need stunning AROMA Installer Package Creator in GUI:
Aroma App Package Creator
by commandersafiYOU DON'T NEED TO USE TOUCH RECOVERY TO MAKE THE TOUCH SCREEN WORKS
If your Recovery Kernel include Touch Screen Driver, even if the recovery not supported touch screen, it will works.
And Almost any recovery included touch screen driver in its kernel (Except some trimmed versions)
-------------------------A-R-O-M-A---I-n-s-t-a-l-l-e-r-------------------------
Benefits For Users
AROMA Installer gives users the possibility to choose which mods and applications they want to Install on to their device. Sometimes we want the clean install, without bloatware; and sometimes we want the full set of applications on our device. With AROMA Installer, you are your phone's master!
Benefits For Chefs/Developers
AROMA Installer gives chefs many benefits:
You don't ever again have to hear someone ask to remove or include something they like into your ROM, just for you to yell "Hey, that is only your opinion! Only you and some other people like it; most people don't! Go remove the apps on your own with WINRAR, you ^$#&*&#$", remember they are still a customer , and with AROMA Installer, this problem can be solved.
If you are good at customizing the AROMA Installer it was possible to make your ROM compatible with many devices using just one ROM File. You save your time, bandwith and hosting maintanance.
With the great user interface in your ROM installation, users will be very happy with it.
With AROMA Installer, You Are The Greatest ROM Developer
-------------------------A-R-O-M-A---I-n-s-t-a-l-l-e-r-------------------------
NEED DIRECT SUPPORT? - JOIN #aroma CHANNEL AT FREENODE.NET
-------------------------A-R-O-M-A---I-n-s-t-a-l-l-e-r-------------------------
Videos
Watch this video to learn about AROMA Installer. Thanks to XsMagical for creating this awesome video...
Screen Shoots
more at amarullz.com [+]
FROM INDONESIAN DEVELOPERS TO PEOPLE AROUND THE WORLD
Downloads & Resources
FOR ROM CHEFS ONLY
ROM CHEF? WHAT IS THAT? ... HERE IS A VIDEO
DON'T ASK ABOUT HOW TO INSTALL IT, BECAUSE IT MEANS YOU DON'T KNOW WHAT IT IS FOR
IT ISN'T AN APPLICATION YOU CAN USE OR INSTALL ON TO YOUR PHONE LIKE ANGRY BIRDS OR FACEBOOK
IF YOU JUST A USER, THEN FIND A ROM THAT ALREADY USES THIS INSTALLER
MOST IMPORTANT THING BEFORE CUSTOMIZING IT
Make sure You took an update-binary from a working ROM,
renamed it to update-binary-installer and overwrote the one in my AROMA Installer zip
Download Binary
Version 3.00b1 - MELATI
BUILD:15022833
NOTE WILL ONLY WORKS ON DEVICE WITH ARM NEON SUPPORT
Recent Changelogs:
FLAMBOYAN MELATI- 3.00b1
new engine fb & input driver
support msmfb overlay
more neon improve
tweaks some ui
graphics processing
Download Binary
Version 2.70 RC2 - FLAMBOYAN
BUILD:130903
NOTE WILL ONLY WORKS ON DEVICE WITH ARM NEON SUPPORT
Recent Changelogs (FLAMBOYAN BETA):
FLAMBOYAN BETA - 2.70B1-B6
-
BETA-6
Fix some back sequence (thanks Electronic Punk) - Small but Important fix aparse_current_position++ to ++aparse_current_position. ( https://github.com/amarullz/AROMA-In...1bba2d02988c60 )
-
BETA-5
Fix Commented NEON - Now Fast Again
New Themes
New Stack Transition, and smoother dialog transitions
Add ini_set("transition","stack");
Add Screenshoot (Volume Down+Power Button) - Image Format BMP-565 16 bit
fix ini_get function
Whole new input driver
Optimize alphablend processes
Optimize and Add Drawing Scale Nearest Neighbor
Add drawing functions for alphablend
Dialog In & Out Transition
Cache recovery display for exit transition
Add Exit transition
fix force_colorspace issue
add colorspace change demo
remove unneeded sleep for faster start and exit
-
BETA-4
Fix Icon Themes Error
Change Transition Animation - Slides for next/back - Smoother than alpha blend animation
Remove any transition effect for Dialog Window
Use Bold Text for Navigation Button
Fix Installer UI for text log position
Add ini_set/ini_get for Vibrate Intensity (0-10). ini_set("vibrate","5") = Half Intensity, ini_set("vibrate","0") = No Vibrate At All
Add ini_set/ini_get for icon_back and icon_next. ini_set("icon_next","@install"), ini_set("icon_back","icons/back")
Fix Installer Freeze on (pthread_detach) - Compileable for Android Build Environment
BUILD WITH ANDROID BUILD ENVIRONMENT - Binary Size Reduce By ~60% - BUILD COMMAND: make aroma_installer; make aroma_installer.zip
Add zip build command in building the source
Rewrite building script for windows and linux with Android Build Environment
Modify aroma-config in demo zip to includes some new features
Change update-binary-installer from Galaxy Nexus binary. Sensation user should replace it binary with sensation binary
Beautifier Source Code. Add beautifier tools in source code tree
-
BETA-3
Fix Include Back Error
Improve Back Sequence Capability
ADD EVAL Function to execute the script inline from string
ADD GOTO Function to jump back into GOTO Label. gotolabel(), goto().
Update More Demo in Example Zip
Improving Efficiency processes when loading and reloading themes
-
BETA-2
Fix color handling on themes
Using bilinear scaling in png.9p
Re-add hebrew support
Add Italic Support with tag \<i>Italic\</i>
ADD include function, to include script from different file. look at new aroma-config file and language_select.edify file
-
BETA-1
reboot("now","recovery"); and reboot("now","fastbot");
Refresh look and feel
Remove RTL and Arabic Support (For faster and freeing resource, because the features still unusable)
Subpixel rendering for Fonts (Clear Type Like)
Improve performance with NEON here and there.
Tweaks some input driver
May fix some colorspace issue
Bilinear scaling for png icons, Now it look smooth even if it resized
FIX MANY BACK SEQUENCE BUGS
Font will only loaded if the font is really changed - Faster-faster performance improvement
Change Navigation Bar Buttons. Now next and back can be using Icons
Add Menu Button for buttonless devices.
Version 2.56 - EDELWEIS
BUILD:121004-031 - New Touch Handler + Fix Capacitive Button
WITH TRUETYPE, MULTILANGUAGE, UTF8
Recent Changelogs:
EDELWEIS - 2.56 - BUILD 121004-031
Fix capacitive button
Remove calibration tools
EDELWEIS - 2.55 - BUILD 121003-030
Completely new Input/Touchscreen Handler - Thanks to agrabren from TWRP
Remove all calibration need. calibtool(), calibrate() and calibrate_matrix() won't do anything now.
EDELWEIS - 2.51 - BUILD 120810-026
Supported Galaxy Nexus Touch Screen - And maybe other devices now supported
EDELWEIS - 2.50 - BUILD 120716-025
Add Calibration Matrix for More Accurate Touch screen calibration
Set ROBOTO as Default True Type Font
DAHLIA - 2.00 - BUILD 120425-020
Fix Installation Save Logs
Fix framebuffer mmap size
Fix status 0 error
Add Multilanguage functions
Change list bullet drawing method
Add support for kerning font when use TrueType/OpenType
Add AROMA Memory management and memory debuging build (COMPILE FROM SOURCE ONLY)
Add more limit size for AROMA texts
Add font glyph cache for faster freetype drawing & processing
Add support for Modern Standard Arabic
Add support for RTL
Add support for TrueType and OpenType fonts
Add support for UTF8 encoding in aroma-config and all AMS text. For updater-script use NO-BOM UTF8
Fix Memory leaks
Add ini_set("force_colorspace","rgba");
Add support for atmel_maxtouch - Asus Transformer Touch Screen
CEMPAKA- 1.64 - BUILD 120414-040
Fix framebuffer mmap size
Fix status 0 error
Previous Changelogs:
Code:
[LEFT]
* [B]CEMPAKA- 1.63 - BUILD 120306-032[/B]
* Add support for atmel_maxtouch (Down Event SYN) - Asus Transformer Prime Touch Screen
* [B]CEMPAKA- 1.62 - BUILD 120303-030[/B]
* Fix some memory leaks ([COLOR="Red"]Important[/COLOR]).
* Add ini_set("[COLOR="Green"]force_colorspace[/COLOR]","rgba");
* [B]CEMPAKA- 1.60 - BUILD 120227-026[/B]
* Add msb_right check for Endianess video memory
* Fix Installer text log drawing
* Add ini_get
* Add rom_date in ini_get
* Fix reboot and back function
* Add more and recreate Icons for themes and generic
* Rewrite text handler
* Add alignment, indentation and list in AROMA Markup String
* Change temp directory to /tmp/aroma, /tmp/aroma-data stil works
* Add Theme Support
* Add AROMA Markup for <b> Bold
* Add More Colorset
* Add More Text to Customize
* Add PNG Icon Load From Theme (Default Icons)
* Add Tab support in AROMA Markup String
* Change int to long for partition info, now support big storage information
* Config Init All/Theme Only
* Recreate new example (release) for binary release
* Customizable Font Runtime
* Reformat About Dialog
* Add show progress per time in installer (now support by files and by time).
* Themeable Progressbar
* Enhance Exec Functions to return exit status and autosave buffer into variable
* Fix glibc error in ag_close - Need workaround
* Move ai_trim to system libs
* Add Stretch function for png
* Add 9 Patch drawing function for png
* Fix Reboot Function
* Add Alternative Touch Method
* Add ziptotmp & restotmp
* Add support for mxt224 touch screen (SYN_MT_REPORT event)
* [B]BOUGENVILLE - 1.10 - BUILD 120208-13[/B]
* Add Alternative Touch Method
* Added New Functions
- anisplash - ANIMATED SPLASH SCREEN
- prop - GET PROP FROM AROMA TMP
- zipprop - GET PROP FROM ZIP
- resprop - GET PROP FROM AROMA RESOURCE ZIP
- sysprop - GET RECOVERY PROP
- property_get - GET RECOVERY PROP
- write - WRITE STRING INTO FILESYSTEM
- readtmpfile - READ TEMPORARY FILE AS STRINF
- read - READ FILESYSTEM AS STRING
- zipread - Read String From Zip
- resread - Read Strinf From Resource
- zipexec - Exec Program From Zip
- resexec - Exec Program From Resource
- run_program - Run Program/Exec
- exec - Run Prohram/Exec
- back - BACK TO PREVIOUS WIZARD
- reboot - REBOOT DEVICE
* Deprecated Funcrions
- readfile - Will Renamed to zipread
- readfile_aroma - Will Renamed to resread
* Add Some Fix in Touch Up Handler
* Prop parsing, File Handling & Zip Handling has been managed in efficient functions
* Remove CERT.SA - Not Needed
* Add Licence Headers in all aroma source code Apache 2.0
* Add More Comments & Documentation in Souce Code
* Renamed functions for fit needs
* [B]ANGGREK -1.00 - BUILD:120204-011[/B]
* Fix calibrating function not working when set in aroma-config
* Update and fix firmware command from update-binary-installer into recovery.
* [B]ANGGREK -1.00 - BUILD:120202-10[/B]
* Improve touch handler compatibility. Now more accurate in every devices
* Add more chars into ROM Infos from only 31 to 63max
* Detail changelog from commit: [URL="https://github.com/amarullz/AROMA-Installer/commit/f49e2969e3b3514e180dcb15bed5a48298b19046"]10[/URL]
* [B]ANGGREK -1.00 - BUILD:120201-009[/B]
* Stride/Pitch/Padding Framebuffer support for non multiply 8 screen size like qhd on sensation and evo3d
* Rewrite input handler, better keys & touch screen compatibility.
* Change calibration division data from integer to float, more accurate calibrating
* Improve fling and scrolling engine
* Add support for all possible screen bit depth 32/24/16bit. ARGB, ABGR, RGBA, BGRA. No problem now.
* Detail changelog from commit: [URL="https://github.com/amarullz/AROMA-Installer/commit/b9daae9151e6ec4e1054725722b6f507f621f065"]006[/URL], [URL="https://github.com/amarullz/AROMA-Installer/commit/65fdbb9a2f7c12a799f320b3759ab60d6b00d3b1"]007[/URL], [URL="https://github.com/amarullz/AROMA-Installer/commit/f49e2969e3b3514e180dcb15bed5a48298b19046"]009[/URL]
[B]ANGGREK -1.00 - BUILD:120129-005[/B]
* Remove Signature Check - Now You don't need to sign aroma-config and updater-script
* Calibration Tool now show before anything, so you can directly do calibration. you can disabled it in aroma-config by deleting [B]calibtool("");[/B] command.
* Fix some touch screen input handler
* Add 229 in menu keycode (F2 used in emulator as menu key)
[B]ANGGREK -1.00 - BUILD:120128-004[/B]
* Open Source - Binary No Released
[B]ANGGREK -1.00 - BUILD:120126-003[/B]
* Refer to defy recovery source code found [URL="https://github.com/CyanogenDefy/android_device_motorola_jordan/blob/gingerbread/recovery_ui.c"]HERE[/URL] (Thanks [URL="http://forum.xda-developers.com/showthread.php?t=1356767"]walter79[/URL] for github source code) I add some keycode into input reader : [URL="http://forum.xda-developers.com/showpost.php?p=21826756&postcount=32"]Read Here[/URL]
* Add confirmation if calibrated data will be used in current process (After Calibrating) - So you can try touchscreen without editing [COLOR="Green"]aroma-config[/COLOR] after you calibrate it.
* Remove precision calculation in scrolling thread (Natural calculation but less fluid)... Feel faster now.
* Add function for [COLOR="Green"]aroma-config[/COLOR] to define custom key code for up/down/select/back/menu, just like [COLOR="Green"]calibrate()[/COLOR] function. with format like this: [COLOR="DarkRed"]ini_set("customkeycode_up",130);[/COLOR] or [COLOR="DarkRed"]ini_set("customkeycode_select",13);[/COLOR], the keycode can be capture by [URL="http://forum.xda-developers.com/attachment.php?attachmentid=872892&d=1327550395"]aroma-keycapture-flashable.zip[/URL]
[B]ANGGREK -1.00 - BUILD:120125-002[/B]
* Add Home & Power Button To Select Items
* Unsigned Script Now Not Terminated Installer, but just show Alert That the script should be signed to pass install ui
* Add More Documentation in aroma-config
[B]ANGGREK -1.00 - BUILD:120124-001[/B]
* Initial Release ( AROMA UI, AROMA Touch Handler, AROMA Markup String )
* Customizable ( Custom Theme Colors, Customizable Fonts and Images )
* Optimized Build ( Static, -o2, remove unused functions, remove png-write and zlib deflate functions )
[/LEFT]
Open Source?
There may be some people who will ask if the project is Open Source, and the quick answer is YES. It is an Open Source Project Now.
Why Release The Source?
I used some other work (modified) from the Open Source Community, especially Koush's recovery source code for getting the input mode, PNG, ZLIB, and some Framebuffer programming samples.
I want to make all chefs feel safe, so I guarantee that I won't make this into a money making program.
I got something from the community, and I want to give something back to it.
What Benefits?
Rapid development
I can get code review & patches - Not just bug reports
There are many innovations that I wrote in the program that may be useful for other needs, like the AROMA Graphic Framebuffer, the AROMA UI, the Amarullz Dithering Method, and the AROMA Simple PNG Fonts. It may be used in recovery, so recovery can use the AROMA Installer Interface
I can learn more about Open Sourcing programs (especially the CVS and licensing things - that always drive me to the question - what is it?)
I Need Help
As I said before, I am just a newbie at Android Development, or even as a user. I need someone who has a lot of knowledge about Open Sourcing the software, and a lot of knowledge about licencing (I don't know much, I just tried to make my software compatible with them: GPL, Apache, etc.)...
Thanks.Source Code
https://github.com/amarullz/AROMA-Installer
TOOLS: AROMA Key Capture
I also created "aroma-keycapture-flashable.zip" to capture the keycodes of your device (flashable in recovery - won't flash anything ). And in case the keys don't work, report the keycodes in this thread, with information like this example:
DOWNLOAD IT HERE
Code:
Prev Item/Up Key = 120
Next Item/Up Key = 110
Select Item/Enter/Select Key = 13
Back Key = 200
Menu Key = 193
To customize keycodes, open aroma-config and modify this code:
Code:
##
# Custom Key Code - Usefull For Some Device which not used
# Standard key code for up/down/select/back/menu
#
# You can capture the keycode in
# recovery using "aroma-keycapture-flashable.zip" Available in
# AROMA Installer Thread.
#
# Press some key when it run, it will return key code,
# that key can override up/down/select/back/menu actions in
# AROMA Installer, you can even set your home key for up, or
# volume down for select item
#
#-------- Uncomment & Modify this Code:
#
# ini_set("customkeycode_up", "115");
# ini_set("customkeycode_down", "114");
# ini_set("customkeycode_select", "116");
# ini_set("customkeycode_menu", "139");
# ini_set("customkeycode_back", "158");
#
AROMA Installer Resources
The Codenames
AROMA Installer codename based on Alphabetical Indonesian Flower Names. Here the list of already used codename:
ANGGREK - 1.00
BOUGENVILLE - 1.10
CEMPAKA - 1.60 - 1.64
DAHLIA - 2.00
EDELWEIS - 2.50
FLAMBOYAN - 2.70
Programming Language
It was application which runs on Android device but not on Android OS Environment that the native applications usually use Java. AROMA Installer use C (Pure C, not C++), so it may run on another platform like x86 with small modifications ofcourse.
Used Libraries
ZLIB - ofcourse, it was the most awesome thing in computer world :good:
PNG
MinZIP
Freetype
All library need to compiled as static to make sure it runs without any dependency issue in any devices.
Official Binary
I Only support ARM device, but it was opensourced, so anyone can play with the source and compiled it for they own devices.
ROM That Already Uses AROMA Installer
HTC Desire (BRAVO):
RunnyMede AIO Special Edition | ICS MIUI_Au v4 2.2.17 Beta | ICS for Desire | MIUI v4 ICS Rom (PORT) | Aurora v6 | Cibernodo Mod2Bravo | miui-france Unifée
HTC Sensation:
Sense-o-Maniac | InsertCoin Ice Cream Sandwich | ELEGANCIA™ Rom Series-ICS
HTC Inspire 4G:
BHS Roms RC9 | hylz MIUI
HTC Supersonic: EVO 4G:
LiGux for Supersonic
Samsung Galaxy S I9000:
Tiramisu+
HTC EVO 3D:
KingCobra3D
Incredible S:
Nik_IncredibleS_TriNiTy
HTC Incredible S:
Valhalla | BlackEdition
Asus Eee Pad Transformer Prime:
Virtuous Prime
Motorola Defy / Defy+:
MIUI-Pikachu | WhiteRabbit Edition
LG Optimus Black:
Marvel Special Edition
LG Optimus 2x:
Nova HD Plus
LG Optimus 3D:
Vengeance O3D Edition
Wildfire S:
[WFSDEV] .sense
Samsung Galaxy Gio GT-S5660:
CyanogenMod 7.2-GIO-KANG
MOD/THEMES Uses AROMA Installer
MetallicBlue Theme and app-deleter for Samsung Galaxy S2
3rd Party AROMA Installer Resources
SGS4G CWM ROM Installer - an AROMA based Touch UI CWM Installer As seen on Valhalla Black Final
If you release the ROM with AROMA Installer, please inform me here, I will add your ROM in this post.
Thanks for Donators
Steve0007 ( ****** )
TweetyPeety ( *** )
Riza Nugroho (**)
Midian666 ( ** )
lenny_kano ( ** )
Turge ( * )
baadnwz ( * )
Dev / zen ( * )
blk_jack ( * )
Patrics83 ( * )
T Roach ( * )
eladavron ( * )
Yoed Stavi ( * )
roy tampubolon ( * )
Sebastiaan15 ( * )
Lars Kuno Michaelsen ( * )
V6-Maniac ( * )
FBis251 ( * )
avss ( * )
Jonathon Fitch ( * )
Gerrett ( * )
Matthew Flack ( * )
RaymondY88 ( * )
D Wood ( * )
Kaskade ( * )
dorimanx ( * )
mickey-r ( * )
Thanks To
Sebastiaan15 - For using and test it for the first time
avss - For helping me to make it works in sgs2 and many samsung devices
DemonWav - For helping grammar in the thread, Testing and give many great ideas.
-viperboy- - For intensively testing & feedback the touch screen in EVO3D CDMA
baadnwz - For Testing the touch input in sensation
capychimp - For Testing Display
Prof Peach - For helping and testing
V6-Maniac - Creating Video
About AROMA Installer
BackgroundAndroid has an advanced system for installing the OS and updates, unlike other mobile OS's that distribute the contents of the OS in static ROM image(s), Android distributes the OS and updates in a plain .zip file that contains all of the packages, files, and the updater for processing the installation.
The updater splits in 2 types, the binary (update-binary) and script (updater-script), while the binary is an executable file, and the script was a configuration script that tells the binary executable what to do.
But this advanced technology never expanded into its highest potential ability. The update-binary was simply the linux executable wrote in C that runs in root mode, and can do anything to your system; including accessing the Display FrameBuffer, accessing keys and the touch screen, set vibrate, run programs, parse files, load png(s) and .zip's, and read and write to the filesystem.
The old update-binary only supported a few functions that can controlled only by the updater-script to instal the files. It didn't have a single function that allowed the installer to interact with the user. There is a program called "yesno" that shows a "Yes" or "No" interface, but it wasn't enough to create a more customizable updater.
Now with AROMA Installer update-binary, all of this limitation is gone, and this advanced technology is expanded to the highest level of its pontential.Read More at amarullz.com [+]
What is AROMA Installer"AROMA" was taken from Bahasa Indonesia (Indonesian Language) and it means "Scent", but it is also an abbreviation of "AMARULLZ ANDROID ROM MANIFESTATION". It is an advanced update-binary for Android that contains many features like Wizard Installation, Touch User Interface (AROMA UI), Customizable Packages, System Inspecting, Themeable, and User Interactive. All release versions will have "flower" codenames, for example, the 1st version is codenamed "Anggrek", which mean "Orchid".
How AROMA Installer WorksHow can it work in recovery mode, and how can it so smooth when it scrolls? It works because I hired Chuck Norris to force the recovery to run the installer, and the phone is too afraid to show any lag .
No, seriously, when the user selects the .zip file to install it, the recovery will extract the update-binary and run it with a few arguments. All processes are handled by the update-binary, and the recovery will only show the information passed by update-binary via a custom pipe. The great thing is that the update-binary can do anything if we can code it in C/C++, but not all people can easily play with C/C++. Its also not very effective or fun to compile it every time we need to change the process. That's why the custom script is used in AROMA Installer, it is simply edify scripting that is used as the normal updater-script, but with expanded functions available.
It wasn't a simple thing to archive something like this, because the update-binary is simply the "linux executable" that doesn't even support dynamic links of libraries, basic drawing functions like drawrect, drawline, and I don't think it OpenGL can be included in it's binary. It runs on it's own. Even User Interface was wrote from scratch to manipulate directly into the display framebuffer, user input was read directly from the raw kernel input device, png and .zip was read with a static link library, and the configuration was parsed in it's own program. It is the result of one full month of developing, but you can learn it instantly, without any need to know how to manage memory usage and pointers.
The AROMA Installer will read, parse, and run the script commands to show it's UI, calculate partition sizes, create, read, and write temporary prop files, set & get variables, do simple integer comparisons and math sequences, do the if else or inline if conditions, configure the UI color scheme, configure rom information, and much more.
Because it was very complicated and needed a lot of time to develope, did I earn some reason to get donations?.Donate To Me [+]
Flowchart How It Works
more at amarullz.com [+]
Customizing AROMA Installer
Best Practice to learn about Customizing AROMA Installer was read and edit the aroma-config and updater-script directly from downloaded files, or for the completed features (but not well documented) was read aroma-config and updater-script from RunnyMede AIO,
Download RunnyMede AIO AROMA Installer Scripts!
And Some Interesting Answered Questions from TweetyPeety by me Here
Customizing Your Script
AROMA Installer can be configured and customized as you like, there is so many features and functions you can used to implemented many things. In this manual, we will learn all the features and functions in technical ways and can be implemented directly in configuration for practice, or production.
AROMA Installer Zip Directory Structures
AROMA Installer use standard ClockWorkMod zip Installer structures. All configurations will be placed in META-INF Folder in zip contents. Here the example directory structure for AROMA Installer:
All AROMA Installer files, should be placed in META-INF/com/google/android/. There is 2 Binary files, and 2 Script/configuration files, and 1 resources folder.
aroma – Aroma Assets/Resource folder, It contains custom files, like png fonts, png icons, png splash images, text file for changelogs or agreement/license.
aroma-config – It was main AROMA Installer configuration script. This configuration was the one that supported AROMA Installer functions like Wizard UI's, Installer UI, Dialog UI, get and set variables, etc. This script wrote on Edify Script Sintax (See next chapter). This script not supported functions to manipulate system files/extract files and other installing method. It's only configuration to prepared all needed data for updater-script.
update-binary – It was AROMA Installer Executable, the compiled program wrote by me in C, and it was the program that show User Interface.
update-binary-installer – It was old update-binary (renamed to update-binary-installer), will be runs on Installer UI when the installer need to flash/install/extract files from zip to the phone.
updater-script – It was old edify format to start copying/install/extract files from zip to the phone. It will only support old functions that supported by update-binary-installer, but can read prop files created by AROMA Installer.
AROMA Installer Assets Directory
AROMA Installer use others files to show the interfaces, The Interfaces like windows, dialog, title, rounded rectangle and simple drawing was implemented by executable used compositing colors configurations, but for others drawing like text and icons, AROMA Installer will read zip contents in this asset directory.
The minimum requirements in this assets directory was png fonts files (big and small). It placed in fonts directory, an Icons can be placed in any directory of aroma assets, but for cleaner locations, it recommended to placed all icons in icons directory, And there is some default icons like alert.png, install.png and info.png that should be placed in this directory, because the installer executable was hardcoded icons locations like icons/alert.png for confirmation, icons/install.png for about dialog.
All splash and text files can be placed in anywhere but inside this assets directory. Example when you want to read text file into variable, use:
Code:
setvar("changelogs",readfile_aroma("changelogs.txt"));
It will find META-INF/com/google/android/aroma/changelogs.txt.
Link Between aroma-config and updater-script
It was main section to be knowing by anyone that how can the aroma-config communicated with updater-script, so please read it carefully.
aroma-config and updater-script runs in different process, and can't share it's memory resource, so the only possible way to communicate is with temporary files. updater-script was original updater-script commonly used in old installer (without AROMA Installer), it's only supported bunch of functions to be used for manipulating system files, like delete_recursive, set_perm, format, mount, package_extract_dir, etc. But it's also support 1 function for read prop file, it was file_getprop.
That's why the AROMA Installer UI always save the result in prop files ( checkbox, optionbox, menubox ). Other than the UI, aroma-config has the feature to create temporary file in plain text (writetmpfile) which able easily create prop files.Prop File FormatThe prop file format was simple plain text format with (=) token as delimiter between key and values, and newline as delimiter between one key=values with another key=values.
Code:
key1=value1
key2=value2
key_3=value3
last.name=amarullz
It can be easily accessed with file_getprop in updater-script like this:
Code:
file_getprop("example.prop","key1");
With above code, the file_getprop function will return the value of key1, it will returned "value1". We can use it for our needs in if/if else statement. We can use others characters in keys, like dot (.) and underscore, but please be careful, that you don't add some quotes in the values. Here the wrong prop file format:
Code:
key1="value1" [COLOR="Red"]# add quotes[/COLOR]
key2="value2" [COLOR="Red"]# add quotes[/COLOR]
first name=james [COLOR="Red"]# Key name with space[/COLOR]
AROMA Installer Default Prop Temporary Locations
When playing with AROMA Installer aroma-config files, almost all things that manipulated prop files will be saved relatively on AROMA temporary directory located in /tmp/aroma-data/, so if we pass the prop filename like this: writetmpfile("test.prop","key1=ok");, the test.prop will be located at /tmp/aroma-data/test.prop.
Quick Example
In this example case, the aroma-config will create temporary prop file that will be readed by updater-script:
aroma-config:
Code:
writetmpfile(
"kernel.prop",
"snq =yes\n"+
"call.2way=no\n"
);
updater-script:
Code:
if
file_getprop("/tmp/aroma-data/kernel.prop","snq") == "yes"
then
# Install Kernel
write_raw_image("/tmp/boot.img", "boot");
endif;
if
file_getprop("/tmp/aroma-data/kernel.prop","call.2way") == "yes"
then
# Do Something here
else
# Do Something here
endif;
With this feature, it's enough to archive customizable installation, and the aroma-config will be able to communicate with updater-script.
EDIFY SCRIPT
Edify Script was simple script sintax to configure the behavior of binaries executable. In AROMA Installer, there is 2 edify script in the META-INF/com/google/android folder. The aroma-config and updater-script. Both files has it own use, and accessed by different binary executable, but use the same sintax, It's called edify.
The aroma-config used to configuring the UI in AROMA Installer, it will accessed directly by AROMA Binary Executable ( update-binary ), and updater-script will be used to configuring commands for installations (extract files, create symlinks, change permissions, format, mount, etc), and will be accessed directly by update-binary-installer. This couple script use the same sintax but have different functions that can be used.Basic Edify SintaxEdify Script was function base script, similar to C language, but without any supported statement except if else. You also can't create function, only bundled functions available for the script. All commands will call functions name with some arguments, and ends by semicolon, like this:
Code:
function_name( argument1, argument2, argument3 );
Edify also supporting simple concat-ing string, just like some other languages like Javascript or Java. Using plus (+).
Code:
function_name("Concat this " + "Strings" + " as one argument");
All Edify function's arguments was in type string. Edify doesn't support others data type, however, we can insert some integer values into arguments, but it in the fact it will be treated as string.
Code:
function_name( 50, 20, "55" );
We can't do any math calculation in edify script, so the script below is invalid:
Code:
function_name( 50 + 50 );
If you use the string with plus operator, it will only concat the strings just like the 2nd example:
Code:
function_name( "50" + "50" ); [COLOR="Green"]# Result = "5050"[/COLOR]
For commenting the code, we can use the sign character (#), only line comment was supported, just like an unix shell comment sintax:
Code:
[B]# This is comments[/B]
function_name("Lorem ipsum dolore…");
Code writing isn't strict, so we can safely use space or new line between function and arguments:
Code:
function_name(
"First Argument",
getvar("config"),
"Third Argument"
);
The functions in Edify Script can returned values. But just like an arguments, it's only supported string type data. The good thing is this String can be converted into Boolean for conditions need. The string with contents will have true Boolean, and the empty string will have false Boolean.
"" = false
"1" = true
"yes" = true
"no" = true
"0" = true
Control StructuresEdify only supported limited control structure. Only if, and if else supported. But this control structures is enough to make an interactive installer. The basic sintax of if structure is:
Code:
if
"comparison"=="comparison"
then
.. commands ..
endif;
And for if else structure is:
Code:
if
"comparison"=="comparison"
then
.. true commands ..
else
.. false commands ..
endif;
We don't have any looping control structure, the Next and Back features in Wizard UI was handled by program automatically.Comparison & Logical OperatorsEdify script doesn't supporting arithmetic operators, but it supported simple comparison and logical operators, Just like other programming languages base on C (java, php, javascript). It use simple operator sintax:
Code:
# Equal
val1 == val2
# Not Equal
val1 != val2
# Or
val1 || val2
# And
val1 && val2
# Not
!val1
# Logical & Comparison
(val1 == val2)||(val3 != val4)
(val1 == val2)&&(val3 != val4)
!((val1 == val2)&&(val3 != val4))
Yes, it doesn't support less than and greater than comparison, because it's only supported with string and Boolean string only. For Integer comparison use cmp function, but it's only supported in aroma-config script.String and Escape CharactersFortunately Edify support common string sintax. It's also supported escape characters for newline. The string in Edify defined with double quoted (") and ended with double quoted. Here the basic manipulation of string in Edify:
Code:
# Newline use \n:
"Hi, AROMA Installer is\nAWSOME!!!"
# Concat multiple lines:
"Lorem Ipsum Dolore sit\n"+
"Amet, lorem ipsum dolore\n"+
"sit amet, lorem ipsum\n"+
"dolore sit amet."
# Escape Characters:
"You can add\tTabs, \" Quote, \\ Backslash…"
# Hex Characters:
"It was character A : \x41"
Not Supported Operators in EdifyThere is a lot of operator features in common programming languages that not supported by edify, like assignment operator for inserting something into variable, bitwise operator for manipulating bits within integer, and arithmetic operators for doing simple math calculations.
All this limited has been added via functions (except bitwise), but only available for aroma-config script, and only simple operations supported.
What UI's AROMA Installer Supported
AROMA Installer had 4 main type of Customizable User Interfaces, the Wizard UI, Dialog UI, Splash UI and Installer UI. And un-customizable Menu UI for selecting About, Help, Tools and Quit Installer.Wizard UI
The Wizard UI was the main User Interface in AROMA Installer, it's contain Back and Next button in navigation bar just like Computer common Installer programs (Windows Installer, NSIS Install System, InstallShield). Users can navigate trough the screens, or back to previous screens if something not right in configurations. Users can select Typical or Customize installations, and Users can customize what packages to install.
AROMA Installer support many Wizard UI, and here the completed list of it's UI:
checkbox – UI to show checkboxes in groupable list, the selected items will be saved in prop format, and can be accessed with file_getprop.
selectbox – It's like checkbox, but it's only able to check 1 items per group.
textbox – It will show the textbox, you can read text file to show it into the textbox
viewbox – It's like Textbox, but not scrollable, and only supported limited text length
agreebox – It's like Textbox, but with agree checkbox, user can't step to next page if the checkbox not already checked. Useful to show License or Terms of Use Interface.
menubox – This UI will show list of menu to select, there is no Next button, because when User select the item, it will automatically step into next page. And The selected menu will be saved in temporary prop file.
Dialog UIWhile Wizard UI will shown it's interface in Fullscreen, the Dialog UI will shown it's interface in Popup Window, It was useful for some needs, like show confirmation for "Are You Sure want to format the partitions?", or show Alert Dialog for "Thanks for using my ROM". Here the complete list of Dialog UI in AROMA Installer:
alert – Show popup dialog, with limited text length and Only the OK button.
confirm – Show popup dialog, with limited text length and contains 2 customizable Button "Yes" and "No", with return value true for "Yes" and false for "No".
textdialog – Show scrollable text popup dialog, with long text length support and Only OK Button.
Splash UIThis UI Simply show the Splash Screen from png files with custom delay before it show next page. The image will automatically position in center of screen depended from it's image size. The background will be blended in blur and darkest color.Installer UIWhen configuration invoke the install UI, it will start an installation, and show the installer UI with description text on top window, textbox for installer information in middle, and progress text and bar in bottom of screen. The installation will not cancelable, and there is no buttons or menu to select before installation finished, The Next and Save Logs button will be shown after installation finished. And next Wizard UI can't do Back command beyond this installer UI, so the Installer UI will only shown once time only in flash process.
What Functions AROMA Installer SupportedThere is so many functions that you can used for your needs, The available functions was the common functions that may be usable for installations, but not supported very complex things. AROMA Installer support simple comparison, math, system partition information, and simple set and get variables.
Here the list of functions that you can used:
setcolor – Set UI Color Scheme
ini_set – Set Aroma Configuration settings
calibrate – Calibrating Touch Screen
getvar – Get Variable
setvar – Set Variable
appendvar – Append string into variable
prependvar – Prepend string into variable
file_getprop – Get prop value of some key from prop file.
readfile – Read text file from zip content
readfile_aroma – Read text file from zip content relatively from aroma META-INF folder.
getdisksize – Get partition total size
getdiskfree – Get partition free size
getdiskusedpercent – Get partition used size in percentage
cmp – Simple integer comparison ( >, <, ==, >=, <=, != )
cal – Simple math calculator ( +, -, /, * )
iif – Inline if
if else – If and Else Statement
pleasewait – Show please wait/loading progress when calculating/doing hard process that took a lot of time.
writetmpfile – Write/create temporary file with text contents
exit – terminate installation.
Custom Fonts
You can customize your AROMA Installer Fonts. The AROMA Installer use 2 type of fonts "Big" and "Small", the Big font used in Title and the Small Font used in almost any controls. To use the custom fonts, copy the big.png or small.png into META-INF/com/google/android/aroma/fonts.
List of Custom Fonts Currently Available to Download - by amarullz
Download Custom Fonts ( 5 Fonts ) [+]Create Your Own Font
You can also create your own fonts, it was plain png (32 bit color depth). All letter was arranged in ASCII order Start from ASCII 32 (space) to ASCII 95 ( ~ char) then ( © - Copyright ) character.
Here the letter list:
Code:
!”#$%&’()*+,-./0123456789:;<=>[email protected] JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~©
In the first row picture, there is pixel to seperate one letter to next letter, because AROMA Installer didn't use fixed size fonts ( console fonts like courier ). The fonts will rendering from 2nd row into end of rows. Here the example:
NOTE: AROMA Installer only need alpha channel for this, the color of fonts will using the AROMA color scheme defined in aroma-config. The width separator (in first row pixel) should be full opaque (alpha=100% or 255).
If you make your own fonts, please fell free to post here...Other Custom Fonts
You can also use third party custom fonts created by other xda-developers users. Here some custom font list:
Monospace Font - by mickey-r
Functions Reference
CONFIGURATION FUNCTIONS
setcolor
Descriptions:
Set AROMA Installer Color Scheme. It can also defined in themes with theme.prop file
Sintax:
void setcolor(colorname, hexcolor);
Parameters:
colorname - Name of color to be set. colorname with "_g" for gradient color.
winbg, winbg_g : Main/Top Most Window Backgroud
winfg : Main/Top Most Window Text Foreground
winfg_gray : Main/Top Most Window Gray Text Foreground
dialogbg, dialogbg_g : Popup Window Backgroud (Alert, Confirm, About)
dialogfg : Popup Window Text Foreground
textbg, textbg_g : Textbox, Checkbox, and any scrollable UI Background
textfg : Textbox, Checkbox, and any scrollable UI Text Foreground
textfg_gray : Gray Text ( on Optionbox/Checkbox Item Description )
controlbg, controlbg_g : Control / Button / Checkbox border - Background Color
controlfg : Button Text Color
selectbg, selectbg_g : Selected Element Background ( Pushed/focused Button/items, etc )
selectfg : Selected Element Text/Foreground Color
titlebg, titlebg_g : Window Title Background
titlefg : Window Title Text Foreground Color
navbg, navbg_g : Bottom Bar (Navigation Bar) Background. Next-Previous Area
scrollbar : Scrollbar indicator color
border, border_g : Common Border Color
progressglow : Progress Animation Color
hexcolor - Hexadecimal Color in RGB. it support 3 and 6 characters hexadecimal started with #. example: "#a8e" or "#ff5599".
Return Value: none
Examples:
Code:
# Set Color with 3 chars hexcolor
setcolor("winbg", "#444");
setcolor("winbg_g", "#222");
setcolor("textbg", "#333");
setcolor("textfg", "#fff");
# Set Color with 6 chars hexcolor
setcolor("textfg_gray", "#bbbbbb");
setcolor("controlbg", "#446699");
setcolor("controlbg_g", "#223355");
ini_set
Descriptions:
Sets the value of a AROMA Installer configuration option
Sintax:
void setcolor(configname, newvalue);
Parameters:
configname - Configuration name to be set.
roundsize : Set Corner size of rounded rectangle for common controls (default:"3")
button_roundsize: Set Corner size of rounded rectangle for button controls (default:"2")
window_roundsize : Set Corner size of rounded rectangle for main window (default:"4")
transition_frame : Set number of frames for transition (default:"5")
text_ok : Set text for common OK text (default:"OK")
text_next : Set text for wizard next button (default:"Next >")
text_back : Set text for wizard back button (default:"< Back")
text_yes : Set text for default yes button (default:"Yes")
text_no : Set text for default no button (default:"No")
text_about : Set text for About menu (default:"About & Informations")
text_calibrating : Set text for Calibration Menu (default:"Calibrating Tools")
text_quit : Set text for Quit Menu (default:"Quit Installation")
text_quit_msg : Set text for Quit Confirmation Message (default:"Are you sure to quit the Installer?")
rom_name : Set ROM Name Information
rom_version : Set ROM Version Information
rom_author : Set ROM Author Information
rom_device : Set ROM Device Information
customkeycode_up : Set Alternative keycode for up key (navigate up)
customkeycode_down : Set Alternative keycode for down key (navigate down)
customkeycode_select : Set Alternative keycode for select key (select an item)
customkeycode_back : Set Alternative keycode for back key
customkeycode_menu : Set Alternative keycode for menu key
newvalue - New value to be set for configname
Return Value: none
Examples:
Code:
# Set ROM Informations
ini_set("rom_name", "AROMA ROM");
ini_set("rom_version", "1.0");
ini_set("rom_author", "amarullz");
ini_set("rom_device", "HTC Desire (bravo)");
# Set Custom Text
ini_set("text_ok", "OK Man");
ini_set("text_next", ">>");
ini_set("text_back", "<<");
# Set Alternative Key Code - You can use keycapture tool
# to capture your device keycode
ini_set("customkeycode_up", "115");
ini_set("customkeycode_down", "114");
ini_set("customkeycode_select", "116");
ini_set("customkeycode_menu", "229");
ini_set("customkeycode_back", "158");
calibrate
Descriptions:
Set Touch Screen Calibration Data. Different device may had different touch screen calibration data. To get calibration data, press menu, select calibration tools then follow the intructions.
Sintax:
void calibrate(divx, addx, divy, addy [, alternative_method]);
Parameters:
divx - Division value for horizontal touchscreen to display resolution.
addx - Add value for horizontal alignment.
divy - Division value for vertical touchscreen to display resolution.
addy - Add value for vertical alignment.
alternative_method [Optional] - Use alternative method for touch screen handling if normal method not works in your device (default:"no")
Return Value: none
Examples:
Code:
# HTC Desire Calibrated Data
calibrate("7.90","20","7.90","20");
# Alternative method Calibrated Data
calibration("1.8447", "37", "1.2158", "27", "yes");
calibtool
Descriptions:
Start calibration tool.
Sintax:
void calibtool(dummy_arguments);
Parameters:
dummy_arguments - Edify should pass at least 1 arguments. Just Pass "" for it
Return Value: none
Examples:
Code:
# Start Calibrating Tools
calibtool("");
theme
Descriptions:
Set AROMA Installer Theme will be used in next display.
Sintax:
void theme(theme_name);
Parameters:
theme_name - Theme Name will be used. It was theme directory name located in "META-INF/com/google/android/aroma/themes"
Return Value: none
Examples:
Code:
# Use ICS Theme located at:
# META-INF/com/google/android/aroma/themes/ics
theme("ics");
VARIABLE FUNCTIONS
getvar
Descriptions:
Get Variable
Sintax:
variable_value getvar(varname);
Parameters:
varname - Variable Name
Return Value: Variable Value
Examples:
Code:
# Show "testvar" value in alert
alert(
"Value of testvar",
getvar("testvar")
);
setvar
Descriptions:
Set Variable
Sintax:
void setvar(varname, value);
Parameters:
varname - Variable Name to be set
value - New Value for Variable
Return Value: none
Examples:
Code:
# Set new value for "testvar"
setvar("testvar", "This is only test!!");
# Now Show the "testvar" value in alert
alert(
"Value of testvar",
getvar("testvar")
);
appendvar
Descriptions:
Append new value after previous value, it's like concating strings ( previous_value + newvalue )
Sintax:
void appendvar(varname, value);
Parameters:
varname - Variable Name to be set
value - New Value to be appended in variable
Return Value: none
Examples:
Code:
# Set new value for "testvar"
setvar("testvar", "This is only test!!");
# Append new value
appendvar("testvar", "Add String");
# "testvar" now will contain "This is only test!!Add String"
prependvar
Descriptions:
Prepend new value before previous value, it's like concating strings ( newvalue + previous_value )
Sintax:
void prependvar(varname, value);
Parameters:
varname - Variable Name to be set
value - New Value to be prepended in variable
Return Value: none
Examples:
Code:
# Set new value for "testvar"
setvar("testvar", "This is only test!!");
# Prepend new value
prependvar("testvar", "Add String!! ");
# "testvar" now will contain "Add String!! This is only test!!"
PROP FILE HANDLER FUNCTIONS
file_getprop
Descriptions:
Read prop file value for given keyname
Sintax:
prop_value file_getprop(filename, keyname);
Parameters:
filename - Absolute path of prop file in filesystem
keyname - Prop Key Name
Return Value: Value of prop for given keyname
Examples:
Code:
# Get value of "item.1.1" from /tmp/aroma-data/custom.prop
alert(
"Value of Prop",
file_getprop("/tmp/aroma-data/custom.prop", "item.1.1")
);
prop
Descriptions:
Same with file_getprop, but will read relatively from AROMA Temporary Directory "/tmp/aroma-data/"
Sintax:
prop_value prop(filename, keyname);
Parameters:
filename - Relative path of prop file in AROMA Temporary Directory "/tmp/aroma-data/"
keyname - Prop Key Name
Return Value: Value of prop for given keyname
Examples:
Code:
# Get value of "item.1.1" from /tmp/aroma-data/custom.prop
alert(
"Value of Prop",
prop("custom.prop", "item.1.1")
);
zipprop
Descriptions:
Same with file_getprop, but will read the prop file from Zip
Sintax:
prop_value zipprop(zip_path, keyname);
Parameters:
zip_path - Absolute path of prop file in Zip ( don't add "/" in first character )
keyname - Prop Key Name
Return Value: Value of prop for given keyname
Examples:
Code:
# Get value of "item.1.1" from META-INF/com/google/android/aroma/custom.prop
alert(
"Value of Prop",
zipprop("META-INF/com/google/android/aroma/custom.prop", "item.1.1")
);
resprop
Descriptions:
Same with zipprop, but will read the prop file from Zip relatively from AROMA Resource Directory "META-INF/com/google/android/aroma/"
Sintax:
prop_value resprop(zip_path, keyname);
Parameters:
zip_path - Relative path of prop file in Zip from AROMA Resource Directory "META-INF/com/google/android/aroma/"
keyname - Prop Key Name
Return Value: Value of prop for given keyname
Examples:
Code:
# Get value of "item.1.1" from META-INF/com/google/android/aroma/custom.prop
alert(
"Value of Prop",
resprop("custom.prop", "item.1.1")
);
sysprop, property_get
Descriptions:
Read system property value for given keyname
Sintax:
prop_value property_get(keyname);
prop_value sysprop(keyname);
Parameters:
keyname - Prop Key Name
Return Value: Value of prop for given keyname
Examples:
Code:
# Get Device Board Name
alert(
"Device Board Name",
sysprop("ro.product.board")
);
# Get Board Platform
alert(
"Device Board Name",
property_get("ro.board.platform")
);
FILESYSTEM FUNCTIONS
writetmpfile
Descriptions:
Write string into file in AROMA temporary
Sintax:
void writetmpfile(filename, value);
Parameters:
filename - Destination file in AROMA temporary directory
value - String that will be write into the file
Return Value: none
Examples:
Code:
# It will saved in from /tmp/aroma-data/test.txt
writetmpfile("test.txt", "This is test text");
# Show the content in alert with readtmpfile
alert(
"Value of test.txt",
readtmpfile("test.txt")
);
# Show the content in alert with read
alert(
"Value of test.txt",
read("/tmp/aroma-data/test.txt")
);
write
Descriptions:
Write string into file in filesystem
Sintax:
void write(filename, value);
Parameters:
filename - Absolute path to Destination file
value - String that will be write into the file
Return Value: none
Examples:
Code:
# It will saved in from /sdcard/test.txt
writetmpfile("/sdcard/test.txt", "This is test text");
# Show the content in alert with read
alert(
"Value of test.txt",
read("/sdcard/test.txt")
);
readtmpfile
Descriptions:
Read string from file in AROMA temporary directory
Sintax:
content_of_file readtmpfile(filename);
Parameters:
filename - File in AROMA temporary directory that will be readed
Return Value: Content of file in String
Examples:
Code:
# It will read data from /tmp/aroma-data/test.txt
# then save it in variable
setvar(
"testvar",
readtmpfile("test.txt")
);
read
Descriptions:
Read string from file in filesysten
Sintax:
content_of_file read(filename);
Parameters:
filename - Absolute path to Destination file that will be readed
Return Value: Content of file in String
Examples:
Code:
# It will read data from /sdcard/test.txt
# then save it in variable
setvar(
"testvar",
read("/sdcard/test.txt")
);
ZIP CONTENT HANDLING FUNCTIONS
readfile
DEPRECATED!!! - Identical with zipread. Will be deleted soon.
readfile_aroma
DEPRECATED!!! - Identical with resread. Will be deleted soon.
zipread
Descriptions:
Read string from file in zip
Sintax:
content_of_file zipread(zip_path);
Parameters:
zip_path - Absolute path to Destination file in zip that will be readed
Return Value: Content of file in String
Examples:
Code:
# It will read data from zip content "META-INF/com/google/android/aroma/text.txt"
# then save it in variable
setvar(
"testvar",
zipread("META-INF/com/google/android/aroma/text.txt")
);
# It will read data from zip content "tmp/text.txt"
# then save it in variable
setvar(
"testvar2",
zipread("tmp/text.txt")
);
resread
Descriptions:
Read string from file in zip relatively from AROMA Resource Directory "META-INF/com/google/android/aroma/"
Sintax:
content_of_file resread(zip_path);
Parameters:
zip_path - Relative path of file in Zip from AROMA Resource Directory "META-INF/com/google/android/aroma/" that will be readed
Return Value: Content of file in String
Examples:
Code:
# It will read data from zip content "META-INF/com/google/android/aroma/text.txt"
# then save it in variable
setvar(
"testvar",
resread("text.txt")
);
ZIP EXTRACT FUNCTIONS
ziptotmp
Descriptions:
Extract file from zip content into AROMA Temporary directory, and automatically chmod it for executable.
Sintax:
void ziptotmp(zip_path, destination_name);
Parameters:
zip_path - Absolute path to Destination file in zip that will be extracted
destination_name - Extracted target filename
Return Value: none
Examples:
Code:
# It will extract "tmp/busybox" into "/tmp/aroma-data/busybox"
ziptotmp("tmp/busybox", "busybox");
# Now we can execute it
exec("/tmp/aroma-data/busybox","ls","-l");
restotmp
Descriptions:
Extract file from zip content in AROMA Resource Directory "META-INF/com/google/android/aroma/" into AROMA Temporary directory, and automatically chmod it for executable.
Sintax:
void restotmp(zip_path, destination_name);
Parameters:
zip_path - Relative path of file in Zip from AROMA Resource Directory "META-INF/com/google/android/aroma/" that will be extracted
destination_name - Extracted target filename
Return Value: none
Examples:
Code:
# It will extract "META-INF/com/google/android/aroma/busybox" into "/tmp/aroma-data/busybox"
restotmp("busybox", "busybox");
# Now we can execute it
exec("/tmp/aroma-data/busybox","ls","-l");
EXEC FUNCTIONS
zipexec
Descriptions:
Extract file from zip into AROMA temporary, chmod it, and execute it.
Sintax:
exit_status zipexec(zip_path [, argument1, argument2, ... ]);
Parameters:
zip_path - Absolute path of zip content that will be executed
arguments [Optional] - Command line Arguments
Return Value: Return exit status. "0" for common success status
The output buffer/stdout will be automatically saved into "exec_buffer"
Examples:
Code:
# It will extract and run "META-INF/com/google/android/aroma/test.sh"
zipexec("META-INF/com/google/android/aroma/test.sh");
# With Arguments
zipexec("META-INF/com/google/android/aroma/test.sh", "argument1", "argument2");
# Get Return Status
if
zipexec("META-INF/com/google/android/aroma/test.sh") == "0"
then
alert(
"Exec Status",
"Shell was executed successfully"
);
endif;
# Get STDOUT
zipexec("META-INF/com/google/android/aroma/test.sh");
alert(
"Exec STDOUT",
getvar("exec_buffer")
);
resexec
Descriptions:
Same as zipexec, but it will extract and run the file from zip relatively from AROMA Resource Directory "META-INF/com/google/android/aroma"
Sintax:
exit_status resexec(zip_path [, argument1, argument2, ... ]);
Parameters:
zip_path - Relative path of zip content from AROMA Resource Directory "META-INF/com/google/android/aroma/" that will be executed
arguments [Optional] - Command line Arguments
Return Value: Return exit status. "0" for common success status
The output buffer/stdout will be automatically saved into "exec_buffer"
Examples:
Code:
# It will extract and run "META-INF/com/google/android/aroma/test.sh"
resexec("test.sh");
# With Arguments
resexec("test.sh", "argument1", "argument2");
# Get Return Status
if
resexec("test.sh") == "0"
then
alert(
"Exec Status",
"Shell was executed successfully"
);
endif;
# Get STDOUT
resexec("test.sh");
alert(
"Exec STDOUT",
getvar("exec_buffer")
);
run_program, exec
Descriptions:
Run executable from filesystem
Sintax:
exit_status run_program(path [, argument1, argument2, ... ]);
exit_status exec(path [, argument1, argument2, ... ]);
Parameters:
zip_path - Absolute path to executable
arguments [Optional] - Command line Arguments
Return Value: Return exit status. "0" for common success status
The output buffer/stdout will be automatically saved into "exec_buffer"
Examples:
Code:
# It will run "ls" command
run_program("/sbin/ls");
# or
exec("/sbin/ls");
# With some Arguments
run_program("/sbin/ls", "-l", "/sdcard");
# Mounting Device
exec("/sbin/mount", "-t", "auto", "/system");
# Get Return Status
if
exec("/sbin/mount", "-t", "auto", "/system") == "0"
then
alert(
"Exec Status",
"Mount was executed successfully"
);
endif;
# Get STDOUT
exec("/sbin/ls", "-l", "/sdcard/*.zip");
alert(
"List of Zip in SDCARD",
getvar("exec_buffer")
);
--- reserved ---
This deserves some mad props. I've used your installer on sebastiaan's Runnymede ROM, and it's made installing the ROM an absolutely astonishing experience to which no other install script can even compare.
Congratulations!
amarullz said:
Download
Version 1.00 - ANGGREK [2012/01/24][DOWNLOAD]
Initial Release
Customizable
Optimized Build
Signing Your Script
AROMA Installer need Signing Their script to be able to pass Installer UI.
Select your aroma-config script and updater-script script in File Input below, then click Generate Signature, to download your Installer Sign File (CERT.SA). Place it in your META-INF folder, then pack your ROM.
Why I need Sign My Installer?
I Hate someone who use other works but don't know who actually created it... But I love someone use my works without even pay anything or buy anything for me. So This method is the best way to notice all users that the AROMA Installer was created by me. If you don't like the method, I can't force you to use my works...
Sign Your AROMA Installer Scripts Now [+]
Customizing Your Script
AROMA Installer can be configured and customized as you like, there is so many features and functions you can used to implemented many things. In this manual, we will learn all the features and functions in technical ways and can be implemented directly in configuration for practice, or production.
For Customizing Info, Please Visit My Website [+]
Click to expand...
Click to collapse
hi
this need s-off for htc sensations?
[CHEF] TAG : Only for ROM Maker.
It was for zip ROM, so User will be able to customize their rom installation...
What about those in which the touch screen doesn't work in recovery?
Faryaab said:
What about those in which the touch screen doesn't work in recovery?
Click to expand...
Click to collapse
It still works with volume keys or trackpad/navigation... The generic CWM include Touch Driver. so It will works in almost all recoveries (ofcourse except the recovery with trimmed kernel). But the devices had different calibrating data, so ROM Chef should try to calibrate the device use "menu"->Calibrating Tools in Installer...
amarullz said:
It still works with volume keys or trackpad/navigation... The generic CWM include Touch Driver. so It will works. But the devices had different calibrating data, so ROM Chef should try to calibrate the device use "menu"->Calibrating Tools in Installer...
Click to expand...
Click to collapse
I have tried this on my Galaxy S and the touch screen doesn't work but Menu button does work but i can't select anything with any key.
Faryaab said:
I have tried this on my Galaxy S and the touch screen doesn't work but Menu button does work but i can't select anything with any key.
Click to expand...
Click to collapse
Can You navigate trough the items??
What default keys you used in recovery to select items?
Currently the selection keys was:
BTN_MOUSE, KEY_ENTER, KEY_CENTER, KEY_CAMERA, KEY_F21, KEY_SEND
Maybe I should include POWER Button to select something.
Navigation can be used with:
KEY_DOWN, KEY_UP, KEY_VOLUMEDOWN, KEY_VOLUMEUP
I will rebuild it now...
Try attached file: To Make the touch screen works, run the Calibrating Tools, then edit aroma-config file in "META-INF\com\google\android"
NOTE: Calibrating data included in the binary was for HTC Desire, to change it, check this line in aroma-config:
Code:
##
# Calibrate Touchscreen
# defaut: HTC Desire Touch Screen Calibrate Data 8,-20,8,-20
#
# For other device, run the installer, then press "menu"
# and select Calibrating Tools. Follow Instructions, and make
# sure the touch screen has been valid in the testing step.
#
# In the end, there will be alert dialog with calibration data
# ( green ), replace this calibrate() function with that data.
#
calibrate("8","-20","8","-20");
amarullz said:
Can You navigate trough the items??
What default keys you used in recovery to select items?
Currently the selection keys was:
BTN_MOUSE, KEY_ENTER, KEY_CENTER, KEY_CAMERA, KEY_F21, KEY_SEND
Maybe I should include POWER Button to select something.
Navigation can be used with:
KEY_DOWN, KEY_UP, KEY_VOLUMEDOWN, KEY_VOLUMEUP
I will rebuild it now...
Try attached file: To Make the touch screen works, run the Calibrating Tools, then edit aroma-config file in "META-INF\com\google\android"
NOTE: Calibrating data included in the binary was for HTC Desire, to change it, check this line in aroma-config:
Code:
##
# Calibrate Touchscreen
# defaut: HTC Desire Touch Screen Calibrate Data 8,-20,8,-20
#
# For other device, run the installer, then press "menu"
# and select Calibrating Tools. Follow Instructions, and make
# sure the touch screen has been valid in the testing step.
#
# In the end, there will be alert dialog with calibration data
# ( green ), replace this calibrate() function with that data.
#
calibrate("8","-20","8","-20");
Click to expand...
Click to collapse
Assign the power button to select option as we use our home and power button to select. If you assign the power button then we can calibrate our touch screen.
Faryaab said:
Assign the power button to select option as we use our home and power button to select. If you assign the power button then we can calibrate our touch screen.
Click to expand...
Click to collapse
Try This File: http://forum.xda-developers.com/attachment.php?attachmentid=870326&stc=1&d=1327419127
I Add Home + Power Button for Selecting Menu...
amarullz said:
Try This File: http://forum.xda-developers.com/attachment.php?attachmentid=870326&stc=1&d=1327419127
I Add Home + Power Button for Selecting Menu...
Click to expand...
Click to collapse
Invalid Attachment..
Faryaab said:
Invalid Attachment..
Click to expand...
Click to collapse
Damn... reupload it... in attachment
amarullz said:
Damn... reupload it... in attachment
Click to expand...
Click to collapse
Now keys are working but even after calibrating the touch screen it doesn't work.
Faryaab said:
Now keys are working but even after calibrating the touch screen it doesn't work.
Click to expand...
Click to collapse
can you move the circle in the end of calibrating?.. In alert Dialog, there is script data like this: calibrate("8","-20","8","-20");
The code should be included in aroma-cofig
##
# Calibrate Touchscreen
# defaut: HTC Desire Touch Screen Calibrate Data 8,-20,8,-20
#
# For other device, run the installer, then press "menu"
# and select Calibrating Tools. Follow Instructions, and make
# sure the touch screen has been valid in the testing step.
#
# In the end, there will be alert dialog with calibration data
# ( green ), replace this calibrate() function with that data.
#
calibrate("8","-20","8","-20");
#
#
you should unzip the file, and edit the aroma-config, then re-zip it again....
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
vlt96 said:
You shouldn't try it out when you have free time, it will give you free time
Click to expand...
Click to collapse
If you like my work, please consider a little donation:
Features
FEATURES LISTImage
Install Image Tools: Install ImageMagick and/or PIL to use my Image Tools
Convert Image: Convert any image in given directory to given extension
Resize: Batch-resizes files found in given directory with given percent or given DPIs, or resizes an APK with given DPIs
Batch Theme: Applies a theme overlay (caclulated with luminosity values) to all images found in a given directory (e.g. THEME!)
Batch Rename: Batch renames all files found in a directory with a given pattern, and renames them to given out (for porting Themes)
CopyFrom: Copies images present in directory 1 FROM directory 2 (if present in dir 2) - for themers!
OptimizeImage: Optimizes Image, so that size will be smaller
Development
Prepare Building: Installs necessary build tools
Build from Source: Builds one from many sources and even choose a device (if available)
Add Governor: Add a governor to a kernel
Install Android SDK
Install Java JDK
APK
(De)Compile
Extract/Repackage APK
Sign APK with different keys
Zipalign APK
Install APK
Optimize Images INSIDE APK
Advanced
(Bak)Smali: Lets you edit the code inside classes.dex and compile back
ODEX: ODEX a ROM
DE-ODEX: DE-ODEX a ROM
Compile to an Exe: lets you compile Python scripts to an executable for your OS
Android
Configure ADB: Connect to devices over IP, enable/disable Network ADB on connected device
Logcat
Build.Prop: Pulls Build.prop from device and let you edit it
Backup / Restore: full backup of (all optional) apps, system apps, data, shared storage
ADB File Explorer
StudioAndroid options
Clean workspace and go back to before you used this tool the first time!
Debug: Includes printing the used commands before executing and testing the latest changes
Check the log in a scrollable window with selectable text
Report a bug: Opens a reply on this XDA thread with the content of your log in it
Changelog: See what's changed!
Update: Update StudioAndroid and choose between Stable en Nightly
Restart
About: shows information about the developer, contact info, profile image, twitter etc
Click to expand...
Click to collapse
SCALED PREVIEW: (Click to see full preview)
Click to expand...
Click to collapse
Instructions
Download the latest update OR one of the stable updates
Extract in your home directory
double-click StudioUnix
Click to expand...
Click to collapse
Preparation:
Download one of the stable updates
Extract in a path without spaces (e.g. NOT in "Documents and Settings")
Double-click StudioWindows.exe
Click to expand...
Click to collapse
OR
Download and run Python
Download and run PYGTK - 32-bits
Download the latest update OR one of the stable updates
Extract in a path without spaces (e.g. NOT in "Documents and Settings")
Right-click Studio.py > Open with > Python
Click to expand...
Click to collapse
Preparation:
install python2.7: 64-bit/32-bit x86-64/i386 / 32-bit i386/PPC
Install this (GTK+ and PyGTK)
Download THIS
Run StudioUnix
Click to expand...
Click to collapse
Click to expand...
Click to collapse
[TOOL][Linux / Windows] StudioAndroid - GtkUI
vlt96 said:
You shouldn't try it out when you have free time, it will give you free time
Click to expand...
Click to collapse
Translate?
LINUX
First navigate to StudioAndroid directory.
Then
xgettext -k_ -kN_ -o messages.pot Studio.py
msginit
Click to expand...
Click to collapse
A new file will be created (***.po)
Open that file with PoEdit and translate the right-column
When finished, save it and rename ***.po to Studio.po and put it in StudioAndroid/lang/yourlang_YOURLANG/LC_MESSAGES
afterwards, compile it:
msgfmt Studio.po -o yourlang_YOURLANG/LC_MESSAGES/Studio.mo
Click to expand...
Click to collapse
When I update it, merge the changes using:
xgettext -k_ -kN_ -o messages.pot Studio.py
msgmerge -U Studio.po messages.pot
Click to expand...
Click to collapse
and translate the new strings in PoEdit
The file I need is yourlang_YOURLANG/LC_MESSAGES/Studio.mo, but it's handy for you and me if you also include yourlang_YOURLANG/LC_MESSAGES/Studio.po
WINDOWS
Open lang/LanguageFiles/en_US.po in a text editor
msgid indicates the original string
msgstr indicates the string you need to translate.
So translate the msgstr strings.
Afterwards, send me en_US.po renamed to yourlanguage_YOURCOUNTRY.po
Thanks!
If you cant upload files anywhere, then past the content of SA.po in Pastebin and send me the link
THanks in advance
FULL CREDITS WILL BE GIVEN
Click to expand...
Click to collapse
Info
All info is now available at Github:
Git Source
Changelog
Bugs & Feature requests
BitLy Stats
Click to expand...
Click to collapse
Credits
Ablankzin : Contributor to StudioAndroid
Popdog123: He took the MAC side of the project
vlt96: Making a game to play while waiting
KeitlG: Compiled for windows!!!
KeitlG: Helped me testing the long-awaited ReCompile Fix!
Rookie407 : He compiled this tool for windows! AWESOME! You don't have to install Python and GTK anymore!!!
Lithid-CM : He was my messias on Python in general and GTK specific. Go and give him a "THANKS!"
KeitG: Gettext translation
WilliamCharles & Lycan: Windows testers - AWESOME, THANK THE GUYS!!
Click to expand...
Click to collapse
Omega Theme Studio
vlt96 said:
You shouldn't try it out when you have free time, it will give you free time
Click to expand...
Click to collapse
Features
This is a mode of StudioAndroid.
To go to this mode, run StudioAndroid > Options > Toggle Omega.
The purpose of modes is to specialize the GUI for specific actions and functions.
The purpose of the Omega Mode (AKA OmegaThemeStudio) is to create themes for Omega Apps on the fly.
FEATURES LIST
Retrieving styles
Download styles from official TeamSyndicate dropbox (30 and more styles!)
Upload your own style folder to the tool
Import selected styles from a CM-Theme.apk or ThemeUpdate.zip (!!)
Editing styles
Colorize the images, the same way as StudioAndroid does
includes selecting specific styles (clock, battery, signal, notification etc)
Customize on the fly!
This tool supports customizing all available values in XMLs
That means:
Editing clock colors
Editing clock dividers
Editing icon locations (for all notifications seperately)
Padding between icons
Clock size
Text size
AND MORE!
Building
Build with your own theme name and version
Dev name
"HELLO!" text on startup
E-Mail, website and version
Click to expand...
Click to collapse
Instructions
1. Download StudioAndroid as instructed in post #1
2. Run it as instructed in post #1
3. Click Options > Toggle Omega
Done
Click to expand...
Click to collapse
edit: out of date
KeitIG said:
Ok, i reserved this post for my translation
Click to expand...
Click to collapse
Good one!
I'll link already to the post xD
Could you add this piece of text to the top of your post?
Looks official
HTML:
[CENTER][IMG]http://www.mupload.nl/img/s81uiuto3.png[/IMG][/CENTER]
I'm getting errors using Cygwinn on Windows to execute your scripts, mainly with variables ><
I'm going to execute it with VirtualBox
KeitIG said:
I'm getting errors using Cygwinn on Windows to execute your scripts, mainly with variables ><
I'm going to execute it with VirtualBox
Click to expand...
Click to collapse
That would be possible indeed.
I think I am going to investigate a bit in Cygwin to make it compatible.
When using VirtualBox, use Ubuntu 10.04 LTS (64-bit preffered!)
Greets!
Add: could you post the errors or PM them to me??
Greets!
HELP
What does your script do?
Well, look at the screenshot! And then look at the explanation below.
Update
Check ONLINE for updates!
Utils
Install Utilities
You are now able to install ADB, APKTOOL, AAPT, 7z, (bak)smali and a lot more seperately or together. This makes it easier for you to use them!
Resize pictures
Seems clear enough. It resizes pictures for you, theme conversion is easy!
Now also includes a small manual..
Batch Theme
This places a color layer over an image.
You can theme 1000 images in 4.31 seconds (I timed it).
Please note that if the current color is red and you want purple, you are not gonna add purple to it, but blue!
CopieFrom
It copies images that are in Directory A FROM Directory B.
Example: A contains 1 2 3 4 5, B contains 2 3 5 6 7 9 8
2 3 and 5 get copied over. Handy for theme porting!
Optimize Images
After selecting Extract APK, you can optimize images so they look better.
Click to expand...
Click to collapse
Develop
Install SDK
Installs the Android Software Development Kit.
You can run Virtual Machines with Android with it, and create APPS.
Install JDK
Installs the Java Development Kit.
You can develop in java and for Android with it.
Prepare Building
A lot of things should be installed before you can build your ROM from source.
This option does that for you, you don't have to do anything yourself again
Build from Source!
You can build a ROM from online sources with it! ALl you need is in it, but for any help you can always PM me!
Build Kernel
BETA!
You can sync the kernel sources with it. THAT'S IT FOR NOW!
Switch BUILD-Mode
Unfortunately, every device has its own sources to build a ROM or Kernel with.
I made this tool to be able to switch from devices
If your device is not (yet) included, then use option "Include".
Click to expand...
Click to collapse
APK
Compile APK
The way Android reads the files inside an APK is not the way we do.
Compiling transforms our files into Android files. That's the only way I can explain...
Decompile APK
Undo compile, so we can edit code.
Extract APK
Leave everything intact, but extract. You will not be able to edit anything other then images!
Sign
Every APK needs a signature to verify the Permissions and files in the APK.
This tool does that for you
You can now also choose the Key
Install APK
Install it on your device via USB without a popup.
Zipalign
Aligns the APK. That makes it faster
Click to expand...
Click to collapse
Advanced
Baksmali
This allows you to "decompile" the classes.dex file in the APK so you can edit the code of your APK!
Smali
After you edited code, you need to "compile" again. Using this!
De-Odex
WIth system APKs, the smali files are not inside the APK, but outside. Inside an ODEX file.
De-odex includes the files inside the APK, so that it it needs less space
Warning: ODEX apps can be imported in dalvik straight.
DE-ODEXED apps don't. So De-Odexed is a bit slower...
Click to expand...
Click to collapse
Aroma
I am working on this.
Many features will be added, but for now it's just a few options.
Click to expand...
Click to collapse
So, I dont need to download the sources when building from source?
dhruv.always said:
So, I dont need to download the sources when building from source?
Click to expand...
Click to collapse
The script does it for you.
Further explanation: building from source option actually just syncs the source. I think I even forgot to sync the device and vendor too, I'll check on it.
complete .zip file uploaded with AC and ACI translated. There should be some mistakes but i'll correct them when there will be a new release
(cf my post)
KeitIG said:
complete .zip file uploaded with AC and ACI translated. There should be some mistakes but i'll correct them when there will be a new release
(cf my post)
Click to expand...
Click to collapse
Thanks for that
I had an idea: could you add an option in the menu to add manualy a source location ?
When sources are downloaded, where can we found them to edit them ?
And will this script be only for optimus one or for other devices ?
KeitIG said:
I had an idea: could you add an option in the menu to add manualy a source location ?
When sources are downloaded, where can we found them to edit them ?
And will this script be only for optimus one or for other devices ?
Click to expand...
Click to collapse
1 there is, use option 1 in the Build menu (Other)
EDIT: whoops, there isn't... I think I'll change to the home directory.
2 you can find them in your Android Central folder /WORKING_DIR_x
x is the number of the option you chose to fetch it.
3 It already is for other devices, use the Other option
Greets!
Updated
###v0.12
[^] Implemented BuildKernel
[^] French translation by KeitG - THANKS!
[^] Some small code improvements. Visual changes to the MAIN MENU
[^] Added switches and commands. example: "./AC [menu option]" to go to that option DIRECTLY. "./AC -h" to go to the HELP page
[^] SubDirs now supported in Resize (example: drawable-hdpi gets copied over)
[^] BetaInstaller inside ACI script
[^] Every output will now be visible inside LOG!
[^] Implemented CASE options, more clean. Implemented InvalidOption.
[^] Utils.zip is now less then HALF the previous size
Click to expand...
Click to collapse
any suggestions are REALLY appreciated!
Thanks @kssood for suggesting awesome things!
thanks @ta for the idea of kernel building (although is still much work to do!)
I Figured out people like previews...
Do you?
BuildKernel mean it will download kernel source? and then we can build kernel or it's diff? Sorry for bad english
cips gokhle said:
BuildKernel mean it will download kernel source? and then we can build kernel or it's diff? Sorry for bad english
Click to expand...
Click to collapse
Build kernel is exactly as it says. You can build a kernel from a source.
I included Arjen, Arjen 3.0, thunderVN, Cyanogenmod and stock Android.
But t's still beta!
Greets!
mDroidd said:
Build kernel is exactly as it says. You can build a kernel from a source.
I included Arjen, Arjen 3.0, thunderVN, Cyanogenmod and stock Android.
But t's still beta!
Greets!
Click to expand...
Click to collapse
got it thanks and can you add franco source
Description:
A resizer tool to automaticaly resize png files and 9 patches in several densities
Source Code
Supported DPIs:
XXXHDPI
XXHDPI
XHDPI
HDPI
MDPI
LDPI
Thanks to:
redwarp (Author of the program)
Jean-Baptiste LAB (Made the app working in command line)
Download
Changelog:
Code:
[B]v2.7[/B]
- Numerous bug fixes
- Fixed compiler warnings
- Included portable ImageMagick binaries
- Updated ImageMagick to 6.8.5-8
- Improved commandline options
- A selection of DPIs must now be chosen
- Fixed Java errors
- Fixed settings.ini errors
- Renamed log to: art-log.txt
- Displays an error/warning when conversion fails
- Log can now output both stdout & stderr
- Improved searching for photos in source folder
- No longer need Boost
[B]v2.6[/B]
- Fixed the output of images
- Added Drag & Drop feature
- Runs a load of tests before converting
- Updated convert.exe to 6.8.4-8 (for Windows)
- Added some code that give some hints if conversion of a png || 9.png file fails.
- The program now will continue converting if a failure occurs. Previously it skipped files.
- Pictures with small dimensions will not convert
- Fixed command line arguments
- Fixed the date on logging output
- Optimized the tool for better memory
- Bug fixes
[B]v2.5[/B]
- Rewritten code using C++, now native on OS
- Many bug fixes
- Removed drag & drop feature
- Logging feature added
- Improved speed of booting
- New UI
- Portable convert.exe for Windows
- You still need to install ImageMagick on Linux/MacOSX
[B]v2.4[/B]
- Drag & Drop source folder onto art.exe to convert
- First time Setup
- Cleaned up the UI
- Removed clean-folders.exe
- No need to install ImageMagick
- Improved boot time
- Checks for errors before converting
- Available syntax & usage
[B]v2.3[/B]
- Very smart clean folders EXE file (Windows Only)
- Switched to EXE files (Windows Only)
- Fixed settings.ini resetting to defaults while restarting RUN-ME.exe (Windows Only)
- Fixed settings.ini detection (Windows Only)
- Improved a lot (Windows Only)
[B]v2.2[/B]
- Adapted Windows Vista/7 Environment (Windows Only)
- Fixed ImageMagick check on 64-bit machines (Windows Only)
- Fixed some errors in the batch files (Windows Only)
- Check for Java (Windows Only)
[B]v2.1.1[/B]
- Support for Mac OS X
- Fixed input sub-folder detection (Windows Only)
- Modified settings to match each OS
- Switched all archived formats to: TAR
[B]v2.1[/B]
- Cleaned up workspace
- Support for Linux/Unix
- Added README file for Instructions & Usage
- Improved clean-folders dramatically. It now depends on settings.ini. (Windows Only)
- Addded 64-bit support (Windows Only)
- Automatically detects if PC 32-bit or 64-bit (Windows Only)
[B]v2.0.0[/B]
- Initial shared release
Thank you. Nice work
thanks
Thank's.
I hope can work in linux
Sent from my GT-S5360 using xda app-developers app
shoutokuyaki said:
I hope can work in linux
Sent from my GT-S5360 using xda app-developers app
Click to expand...
Click to collapse
Me too.Linux users usually haven't any luck in top tools such this
AWESOME DUDE! Thanks ive been looking for a tool like this my whole life! But what if i wanted to port from an ArmV7 device? Will it work?
Epic Sax Guy Is Epic.
Peteragent5 said:
I thought I finally released this project I've been working on...
(Help me come up with a different name for this tool..)
This is a fork from: Android Drawable Converter
Licensed under: GNU GPL v3
Supported DPIs:
XHDPI
HDPI
MDPI
LDPI
Features:
Supports all/most DPIs
Supports .9.png (draw9patch) (nine) converting/resizing
Convert drawables into multiple densities automatically
Added a BAT script to fasten up this process
Saves you time!
How to do it:
Download & Install ImageMagick (Q16)
Download the file below. Unzip it to a place with no spaces. e.g. C:\
Place the PNGs you want to convert in "in" folder.
The default output folder is "out"
Be sure to set the right DPI for source and destination (in & out folder)
Run: RUN-ME.bat
Y to Start converting
N to modify settings
X to Exit
Versions:
JAR version: 2.0.0
BAT version: 0.1
ALL credits to:
kevinkamps
(He made this possible! ^^)
Please do not ask me to make this compatible with Linux, UNIX, BSD, or Mac. I will not!
[highlight]Windows ONLY[/highlight]
(If you found a way to install ImageMagick on one of the OS above, and modified the "convert_command" code for your OS, please let me know.)
DOWNLOAD
(Remember: All credits to kevinkamps)
Click to expand...
Click to collapse
Thanks luffy .I will try.
Sent from my HTC Wildfire using xda premium
hey. with this theme would i be able to convert HDPI CM9/10 themes to MDPI?
in Debian linux,
apt-get install imagemagick
imagemagick for linux is called by typing command without the .exe, and the path to it is set automatically when it is installed by apt-get.
can't execute the RUN-ME.bat in a minimal Wine (windows emulator) install 'cause it can't get at imagemagick or Java. bummer.
-DarkKnight- said:
hey. with this theme would i be able to convert HDPI CM9/10 themes to MDPI?
Click to expand...
Click to collapse
Yeah.
bigsupersquid said:
in Debian linux,
apt-get install imagemagick
imagemagick for linux is called by typing command without the .exe, and the path to it is set automatically when it is installed by apt-get.
can't execute the RUN-ME.bat in a minimal Wine (windows emulator) install 'cause it can't get at imagemagick or Java. bummer.
Click to expand...
Click to collapse
Hmmm I think you could manually set the Linux command for the imagemajick settings, it should be similar to the one in the settings.INI
Set your imagmacjick path to where the Linux has the convert.exe
Then just execute the JAR file
Peteragent5 said:
Yeah.
Click to expand...
Click to collapse
But I would also have to manually extract all pngs from each folder then I would have to put all the pngs back into the correct folders after I'm done
Right? Is there a less time consuming method?
Sent from the My Little Pony Official App
-DarkKnight- said:
But I would also have to manually extract all pngs from each folder then I would have to put all the pngs back into the correct folders after I'm done
Right? Is there a less time consuming method?
Sent from the My Little Pony Official App
Click to expand...
Click to collapse
To the OP::
I'd be willing to write a GUI front-end for windows to automate extracting/replacing images within the apk's or zip files along with executing the script. I have another project in the works, but I can put this together if we get enough input.
I get a Java is not recognized as an internal or external command operable program or batch file
-DarkKnight- said:
But I would also have to manually extract all pngs from each folder then I would have to put all the pngs back into the correct folders after I'm done
Right? Is there a less time consuming method?
Sent from the My Little Pony Official App
Click to expand...
Click to collapse
bill.weckel said:
To the OP::
I'd be willing to write a GUI front-end for windows to automate extracting/replacing images within the apk's or zip files along with executing the script. I have another project in the works, but I can put this together if we get enough input.
Click to expand...
Click to collapse
Hmmm, you could write a GUI, only if it's not time consuming. I actually have a batch file that does unzipping and zipping. I could merge that with this batch file.
Which one do you guys want? GUI or Command Line (Batch)? My batch file is pretty user-friendly, but it's likely to be the GUI that will be more user-friendly.
ermacwins said:
I get a Java is not recognized as an internal or external command operable program or batch file
Click to expand...
Click to collapse
Can you send me a screenshot?
Hey there!
Maybe you know my tool StudioAndroid bit.ly/SA-XDA
It has a resize option to, done with ImageMagick or PIL.
Maybe you can tell me why convert does not work on linux? It does for me... maybe I can help you!
And can you tell me how to resize the 9png's? Atm I just copy them over to the right dir without resizing anything..
Btw, yes, my tool also resizes (and much more) and is for Mac, Linux and Windows.
Maybe we could share experiences!
Sent from my Galaxy Nexus using Tapatalk 2
mDroidd said:
Hey there!
Maybe you know my tool StudioAndroid bit.ly/SA-XDA
It has a resize option to, done with ImageMagick or PIL.
Maybe you can tell me why convert does not work on linux? It does for me... maybe I can help you!
And can you tell me how to resize the 9png's? Atm I just copy them over to the right dir without resizing anything..
Btw, yes, my tool also resizes (and much more) and is for Mac, Linux and Windows.
Maybe we could share experiences!
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
Yes I know you
I resize the .9.pngs all because of the JAR file. But that JAR file is dependent on the settings.ini
To make it work on linux, mac, etc, you'll need to have the right values.
The convert_command is the path where convert.exe is located PLUS the commands: "-resize %3$s -unsharp 0x1 %1$s %2$s"
I think the convert.exe should be where ImageMagick is installed, maybe because of the dependencies inside the installation location.
And everything else in the settings.ini is pretty straightforward...
Peteragent5 said:
Can you send me a screenshot?
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Official myHUB Web site - http://myhub-web.com/
myHUB is a custom HUB service that comes with Website and end-user application. myHUB is free to use* (see details below) and easy to configure, there is no need to have dedicated Hosting server and maintain it, you will only need any free file hosting servers like DevHost, DropBox and any other for your uploaded files, the rest will do for you myHUB Web.
Introduce you the new generation of myHUB.
What you can do on myHUB Web:
Add, edit, view sections for myHUB
Add, edit, view details to all Sections of myHUB
Monitor Comments for the Posts (currently only available for News type of section)
Add, edit, view myHUB moderators for cooperation with the Team
Features of myHUB application:
CardUI style of the app
Google Navigation drawer with pull to refresh
Push notifications (Using Google Cloud Messanging)
Immediate updates of the data in the app when you adding/removing/editing posts
Provide News (With images, links)
Comments in the News
Open links posted with the News inside the application, no need to open heavy browsers
Provide any Download sections you want (Skins, System MODs, Icons, Keyboards, Kernels)
Automatic installation of zip files (Automatic safe reboot to recovery)
Automatic checking of MD5
How to start using myHUB service:
For a limited time, the registration on myHUB will be moderated with invitation codes only
Fill this form - myHUB Registration
Wait for invitation code
Once you get it, go to the webite http://myhub-web.com/ and register
Follow the Developers F.A.Q on how you need to configure your system for myHUB, make changes
Download latest available myHUB apk from Download on the website
Create your sections and details for them and be happy with result
myHUB has been featured on XDA Developers Portal
XDA:DevDB Information
[APP][DEV][4.1+] - myHUB - Home for your ROM Content, a App for the Android General
Contributors
mikrosmile
Version Information
Status: Stable
Current Stable Version: 1.0.7
Stable Release Date: 2013-07-27
Created 2013-10-14
Last Updated 2013-11-06
WIP
Official myHUB Sharing policy.
myHUB is Free to use for all Sense ROM Developers. (Fully featured, without any limitations) with following conditions
You never change app name, package name, developer name, etc.
You are not allowed to include donated app to your ROM (if you purchased it, it doesn't mean you are allowed to include it. The donation is from users, I don't ask anything from you as developer of the ROM )
You never change app icon
You need to fill form for all ROMs you have (Multi device for example) for Each Phone.
You never upload apk, any part of apk to Play Market.
You never ask for Donation pop-up dialog in the app.
You never change any String in the apk
You are to provide credits to this thread
To summarize there is one major rule - You are not allowed to add any changes, decompile, recompile apk by yourself.
If any of the following terms will not be followed, you will be banned to use myHUB for all your ROMs (you will have to remove myHUB from all your ROMs within 24 hours and there is no way to get permission back)
Your steps with Form and everything.
Download apk, configure it on your server or File hosting
Make it working, test everything by your own, not public release
When you are confident in using myHUB, want to release update/new ROM, fill Official Form.
After that your ROM will appear on the list who uses myHUB
Configuration guide you can find here on 4th post or click here
Official myHUB Form is located here
ROMs including myHUB:
HTC One
Elegancia™ ROM
RAYGLOBE ROM
42ONE ROM - The Aftermath
HTC One S
CharmanDroid ROM
HTC Sensation
KING SENSE ROM
HTC First
[MYST_UL] JmzMystJBSense 4.1.2 Sense 4+
HTC Pico (Explorer)
[Rom][ICS][4.0.3][Revolution Sense 5
HTC Desire HD
SVHD ROM
HTC Desire S
SVHD ROM
HTC Incredible S
SVHD ROM
HOW TO and ERRORS
To avoid any errors in app make sure all your links are working through WEB. Images, zip or apk files are downloadable.
If news link cannot be opened, make sure you have "/" symbol at the end of the link. Example - http://yoursite.com/somenews/
For name of sections try to use English in most cases. Section name represents download path for files you have and Recovery does not recognize some languages
Automatic installation of zip files requires reboot file in system/bin/
If Automatic reboot doesnt work, please make sure your SuperSU works. It always requests access and without access wont reboot
WIP
Downloads and Changelog
Download myHUB
(For full function of the app, it requires Configuration file)
You need to put apk file to /data/app directory
By downloading myHUB you are agree with the above terms
myHUB V1.0.7
Google Play Link
Changelog:
myHUB 1.0.7
Fixes for myHUB OTA issue
Updated layout
myHUB 1.0.6
Hot fixes
myHUB 1.0.5
Updated layout in myHUB, myHUB Files
ROM Devs - added custom download path
Fixed myHUB Files for some ROMs
Maybe something more i dont remember
myHUB 1.0.4
Fixed Kernel MD5 error
Fixed Automatic installation of OTA Updates
Added Remove update file in options after finish Downloading OTA updates
Added Automatic update of OTA when open myHUB OTA (Same option in Settings)
myHUB 1.0.3
Fixed MD5 error for OTA updates
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
myHUB 1.0.1
Fixed donation link
myHUB 1.0.0
Initial release
WIP
myHUB Configuration Guide. How to set-up myHUB
For myHUB you don't need any specific Server settings or even Hosting server at all. You can use any file-hosting as DropBox, Google Drive, DevHost etc. But the only problem is you need to find direct URL to the files (xml file, apk file etc) see below how.
By using this Guide and setting up myHUB in your ROM, you are agree with above terms
STEP 1. CONFIGURATION FILE, “MYHUB.TXT”.
All you need to get working the app is one txt file in your System folder. Create or download example file “myHUB.txt”
Fields in the file:
HTML:
main=http://mikrosense.com/sensehub/sections.xml
rom_upd=http://mikrosense.com/sensehub/update.xml
rom_name=DarkSense
rom_v=1.3.5
rom_dev=Jonny & mikrosmile
main – the link to the xml file on server which represents the Main menu in the app (See step 2);
rom_upd – the link to the xml file on server, which provides OTA update of your ROM (See step 4);
rom_name – Enter your ROM name;
rom_v – Enter the current version of your ROM;
rom_dev – Enter your name
You can setup either full working server or any File hosting (DropBox, Google Drive).
In case of using DropBox or Google Drive, you need to find the full link to the file first and insert it. For example, you upload a file to DropBox, start downloading it and in Downloads page (e.g. Chrome Browser), you will see full, direct link to the file. That one you need to use in configuration file.
STEP 2. CONFIGURATION FILE ON SERVER (MAIN MENU IN APP)
The file from step 1 under “main”;
You can create your own or download example “sections.xml”
The fields in the file:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "News">
<text>Latest news about ROM Development</text>
<section>news</section>
<image-url>http://mikrosense.com/sensehub/ic_news3.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/news.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
<item headline = "Skins">
<section>mods</section>
<dl_path>Skins</dl_path>
<text>Download amazing Skins for your Device</text>
<image-url>http://mikrosense.com/sensehub/ic_skins.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/skins.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
<item headline = "Kernels">
<section>kernels</section>
<dl_path>Kernels</dl_path>
<text>Simply download and install latest Kernels just from the app</text>
<image-url>http://mikrosense.com/sensehub/ic_kernels.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/kernels.xml</url>
<details1></details1>
<details2></details2>
<date></date>
</item>
</body>
The sections starts with <item> and ends with </item>. Within this tags you will identify everything you need to get working.
<item headline = “News”> - Represents name of the Section. You can name it as you want
<section></section> - this is represents Type of the section. This is compulsory field to identify how the app will know what content you want to provide. For news, it will use special made Layout to present them in a special text only way, the same as kernels. For other things apart from News and Kernels use tag mods, which can be anything you want, Skins, Icons, System MODs, etc.
<dl_path></dl_path> - Now you can set your own Download path. Note that you can use only English letters as Recovery does not recognize another languages
<image-url></image-url> - this is link to Section icon in the Main menu
<file_ext></file_ext> - Enter the file extension you want to provide.
<url></url> - This is the link to Individual Sections which you need to configure as well (See step 3);
Available section types:
news
mods
kernels
Available types:
apk
zip
STEP 3. CONFIGURATION FILE FOR NEWS, MODS, KERNELS, ETC
Here we will create Individual sections files for all Sections in your Main menu.
Let’s start from News type; You can create or download example file “news.xml”
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Welcome!">
<text></text>
<news_link>http://forum.xda-developers.com/showthread.php?t=2230067</news_link>
<date>03.06.2013</date>
</item>
<item headline = "Another News">
<text>Your text for another news</text>
<news_link></news_link>
<date>06.03.2013</date>
</item>
</body>
<item headline = “Welcome!”> - This is Headline of your News
<text></text> - Here you can enter any text on any language you want to. It also support multi-line texting. Just type as you are comfortable.
<news_link></news_link> - If your news does not contain enough information or you want the users to open a page in web, you can enter it, and the app itself will open it in the myHUB Web application.
<date></date> - This is the date of posting News
MODs type
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Blue+Orange Skin">
<text>Made by 12Reza12</text>
<image-url>http://mikrosense.com/sensehub/skin.png</image-url>
<file_ext>apk</file_ext>
<url>http://mikrosense.com/sensehub/Serene.apk</url>
<md5>d209ecdb2bacc7ac4aef806568236a67</md5>
</item>
<item headline = "Serene Skin">
<text>HTC Skin from HTC Hub</text>
<image-url></image-url>
<file_ext>apk</file_ext>
<md5></md5>
</item>
</body>
<item headline = “Name”> - This represents Name of the File.
<text></text> - This is another text field, you can enter anything you want. Size, Version, etc;
<image-url><image-url> - The image preview for the Mod, Skin, Icon, etc;
<file_ext></file_ext> - File extension you want to provide.
<md5></md5> - MD5 file sum. Needs to compare MD5 after finish of downloading file
Available types:
apk
zip
Kernels type;
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "Sultan Kernel">
<file_ext>zip</file_ext>
<url>http://mikrosense.com/store/kernels/kernel.zip</url>
<details1></details1>
<date></date>
<md5>8e92b519b5211d5769e3abe0719cf686</md5>
</item>
</body>
<item headline = “Name”> - Kernel name
<file_ext></file_ext> - File extension you want to provide
<url></url> - The direct link to the file on your Server or any File storage
<details1></details1> - Details of your Kernel. Supports multi-line
<date></date> - Date of upload the Item
<md5></md5> - MD5 file sum
STEP 4. CONFIGURATION FILE FOR OTA
You can create your own or download example file – “update.xml”
Field in the file:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<body>
<item headline = "1.3.6">
<text>Here will be your Changelog of the ROM</text>
<url></url>
<md5></md5>
</item>
</body>
<item headline = “X.X.X”> - the version of your New ROM, this version should be higher than the one in myHUB.txt file. Therefore, it will compare these two versions. All the time you update your rom, do not forget to update myHUB.txt as well.
<text></text> - Here you can enter your changelog;
<url></url> - The direct link to the file on your Server or File storage;
<md5></md5> - MD5 file sum
Thank you very much ! Great creator !:good:
My screenshot:
mikrosmile said:
Downloads and Changelog
Download myHUB
(For full function of the app, it requires Configuration file)
myHUB V1.0.1
Changelog:
myHUB 1.0.1
Fixed donation link
myHUB 1.0.0
Initial release
Click to expand...
Click to collapse
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
In configuration guide there are samples which I use now , make sure you follow everything as in the guide .
In few hours I will make checking of all config fields and it will prompt what you don't have
Sent from my Galaxy Nexus using Tapatalk 2
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
send me your main.xml file for sections pls
mikrosmile said:
send me your main.xml file for sections pls
Click to expand...
Click to collapse
File has been sent to your Gmail!
Its very good to see this
But Sharing Policy... :|
We Cant Change anything :\
mygamers said:
Its very good to see this
But Sharing Policy... :|
We Cant Change anything :\
Click to expand...
Click to collapse
This features I give everyone without anything in return .. An as in respect I ask to not change anything that made by me
. that's all .. This could appear on a particular ROM for example , but now you have that is just great and powerful )
Sent from my Galaxy Nexus using Tapatalk 2
mikrosmile said:
This features I give everyone without anything in return .. An as in respect I ask to not change anything that made by me
. that's all .. This could appear on a particular ROM for example , but now you have that is just great and powerful )
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
I understand you
But I think Its Better you think About this
I think most of devs wants to do this
Permission to change app name And App Icon
mygamers said:
I understand you
But I think Its Better you think About this
I think most of devs wants to do this
Permission to change app name And App Icon
Click to expand...
Click to collapse
But you don't change any other app u use in your ROM or phone .. So this is just another app as many
Sent from my Galaxy Nexus using Tapatalk 2
I agree with mikrosmile's sharing policy!
kinghunki said:
I agree with mikrosmile's sharing policy!
Click to expand...
Click to collapse
thx.
I found errors.. your server is broken.. most of links are not opened through web.. so check them, than it should work or use DropBox
kinghunki said:
I found the error:
1. Open the news, can`t click on the jump to Web pages
2. Open Mods hint: no data
3. Kernel select download, prompt: file has been successfully removed
4. Open about ROM, "MyHUB" has stopped running
5. myHUB OTA Unable to open, open display:"MyHUB" has stopped running
Click to expand...
Click to collapse
for news - add - / at the end of link. for example http://yoursite.com/
All the problems have been solved, thanks mikrosmile!
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
mikrosmile said:
myHUB 1.0.2
Hopefully fixed error for Sense Lite ROMs
Handled all Errors if configuration file is not present
Click to expand...
Click to collapse
THX!
myHUB 1.0.3
Fixed MD5 error for OTA updates
Poison Kitchen IDE
Development preview
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Description
A powerful IDE for android ROM development
Runs native on WINDOWS, MacOS themed.
Its powered by my XanderUI class library for the .net framework
Currently Development preview builds are only available, meaning things may be broken, behave incorrectly or other
Click to expand...
Click to collapse
Features
-Full GUI coded in C# for fast runtime
-XanderUI based controls(My C# class library)
-Based on .net 4.5
-Support for every single android version
-Unpack rom from (.zip, .tar, .md5, .img, aml_upgrade_package)
-Pull all required files from device(root needed to copy kernel block)
-Adb, fastboot and drivers installater
-ROM information
-Explorer
-Deodexing(4.4.4 and lower ATM)
-Unpacking the kernel
-Converting file_contexts.bin to standard text
-Kernel explorer
-Repacking kernel
-Logging
-Auto-generating updater-script
-Use generic symlinks if files detected
-Use generic file contets if the kernel does not contain file_contexts
-/data/app auto transition to new rom(somewhat working)
-Wipe data excluding /data/media(/sdcard path)
-Auto kernel block detection
-Auto mounting /system and /data
-Packing rom
-Signing rom
-Updater-script editor
-Extansion support
-Emulated exension scripts(applied via C#)
-Degapps extension
-Deknox extension
-Custom emoji extension
-Enable sony apps extension
Click to expand...
Click to collapse
Features not yet implemented
-root via magisk(systemless) and superSU(standard)
-init.d
-deodexing 5.0 and up
-adbd insecure
-init.d tweaks
-build.prop tweaks
-change display I.D
-add sysrw/ro binary
-logging needs tweaking
-loading rom information updated in the background
-Unpacking RUU as project(HTC)
-Unpacking TFT as project(SONY)
-Unpacking system.dat(sparse)
-Setting your actual device as the project and apply changes in realtime
-/data/app auto transition to new rom
-Kernel may not unpack
-Convert line endings in explorer context menu
-Inbuilt file editor(with EOL auto-detection)
-Boot animation player/changer
-Auto flash rom with ORS(TWRP)
-Bluestacks as rom
Click to expand...
Click to collapse
Settings
Load settings()
-Set default startup project or startup menu
-Enable/disable logging
-Stop logger from detecting files or folders added, deleted, changed or moved
Installation settings()
-Change romname
-Change installation type(autodetect on unpack, User generated, Tool generated)
-Change file contexts method(Auto, extracted from kernel, assumed)
-Enable/disable safewipe
-Enable/disable data/app auto transition
-Enable/disable autodetect ernel blockpath(add path below)
Pack settings()
-Change compression level
-Add signing method(pack into presigned, sign on zip, none)
-Change java heapsize
-Exclude files and folders from being packed/detected by IDE
Default program settings()
Change default program to open image files
Change default program to open video files
Change default program to open audio files
Change default program to open prop files
Change default program to open archive files
Change default program to open jar/apk files
Change default program to open other type files
Current version and updates()
Cleanup settings()
Click to expand...
Click to collapse
License
GNU GPL V3
Downloads
Downloads page
XDA:DevDB Information
Poison Kitchen IDE, Tool/Utility for the Android General
Contributors
Ricky Divjakovski
Version Information
Status: Testing
Created 2018-04-19
Last Updated 2018-04-19
Creating extensions and documentation
Code:
Description -
As extensions are a great adittion to the IDE, whats the use if you cant make your own for automated building?
Information you need to know -
The tool looks for the file "extension.info".
In the extension.info file you will specify the extension name, description and the poison shell script file(.psh).
Package the folder containing the extension as a zip archive
------------------------------------------------------------------
Entension index
------------------------------------------------------------------
Sample extension -
https://github.com/Ricky310711/Poison-Kitchen-Extension-Example
extension.info -
Lines will only be read if starting with "Name", "Description" or "Run"
-------------------- code exmpla
# this sets the extension name
Name:Fake optimizer
# this sets the extension description
Description:Do not apply this to rom, its a fake extension to show an example
# this is the poison script to run(must be in same directory)
Run:FakeOpt.psh
------------------------------------------------------------------
Scripting language(.psh file)
------------------------------------------------------------------
Information
-Must be linux EOL(\n)
-Anything but recognised 1st args are ignored
-Any errors will be ignore by the shell
-Use full paths asif you are in the root(/)
Extracting content to rom
---------- code example
EXTRACT|myFolder
1st arg states we are extracting(copying) a folder to the rom
2nd arg is the folder to extract(must be in same directory as extansion)
NOTE: This will extract the folder to the root of the rom
Changing a line in a file
---------- code example
CHANGE|START|/system/build.prop|ro.product.device=|THIS IS STARTS TEST
1st arg specifies we are changing a file
2nd arg specifies where on a line to search for the string(arg4)
3rd arg specifies the file to change
4th arg specifies the string to look for
5th arg is what you would like to replace the line with
The second arg can be START, CONTAINS or END
Appending a file
---------- code example
APPEND|TOP|/system/build.prop|# A TEST FOR APPENDING TOP
1st arg specifies we are appending a file
2nd arg specifies if we are appending at the TOP or BOTTOM
3rd are is the file to append
4th arg is the content to append
Remove a line from a file
---------- code example
REMOVE|/system/build.prop|# end fota properties
1st arg states we are removing a line from a file
2nd arg specifies the file
3rd arg is the string to look for in the line
Delete a file or folder
---------- code example
DELETE|/system/preinstall
Pretty straight forward, will delete a file or folder called "preinstall" from /system/
Create a file or folder
---------- code example
CREATE|DIRECTORY|/preinstall
arg 1 states we are creating something
arg 2 specifies if a FILE or FOLDER
arg 3 is the file or folder to create
Rename a file or folder
---------- code example
RENAME|/system/bin/am|amRenamed
1st arg specifies we are renaming a file or folder
2nd arg is the file or folder
3rd arg is the new name
Changelog
Development preview 2
-Added pull rom from device in setup
-Smoother nvigation
-XanderUI 1.6.0 integration
-Message boxes are now themed like the app
-Extensions now show progress upon running
-Deodexing up to Android 4.4.4 implemented
Development preview 1
-initial release
reserved3
supports all versions of android and all devices, no manual input needed.
dev preview 3 possibly tommorow
Yay now I can at least try to build my own g6 ROMs. Nice work.
development on hold until the 30th as im on holiday, i have been dedicating little time to this as internet here is extremely slow
Magisk and SU support added aswell as deodexing 5.x > 6.0
Also working on disabling signature verification, adding sysrw(as binary)
hi, im trying out the program, it never completes the extraction, and the progress icon starts at 53% do i need to do anything when trying to start the program.
i haVE TRIed running as administartor and without running as admin.
thanks
Twisted714 said:
hi, im trying out the program, it never completes the extraction, and the progress icon starts at 53% do i need to do anything when trying to start the program.
i haVE TRIed running as administartor and without running as admin.
thanks
Click to expand...
Click to collapse
A dialog will more then likely poppup requesting permission to run imgextractor.exe, be sure to accept that to complete the process
Ricky Divjakovski said:
A dialog will more then likely poppup requesting permission to run imgextractor.exe, be sure to accept that to complete the process
Click to expand...
Click to collapse
i am attaching some pics to what happens.
please advise. thanks
there are a couple more that are insignificant
Twisted714 said:
i am attaching some pics to what happens.
please advise. thanks
there are a couple more that are insignificant
Click to expand...
Click to collapse
Could you please PM me with pics of the firmware your selecting or even a link?
I've gone ahead and tried this. I pointed the app to my system.img (not the fastboot zip) and ended up with "error extracting". Tool looks promising. ROM is available for download here:
http://en.miui.com/download-333.html
I extracted it and used the images/system.img
oreo27 said:
I've gone ahead and tried this. I pointed the app to my system.img (not the fastboot zip) and ended up with "error extracting". Tool looks promising. ROM is available for download here:
http://en.miui.com/download-333.html
I extracted it and used the images/system.img
Click to expand...
Click to collapse
Im going to test now, if the firmware has system.transfer.list, and system.dat, it will not be able to be unpacked until i make a native library or extension to perform the operation as i think it would be extremely stupid for the need to have python installed to run.
The only reason i havent rebuilt smali/baksmali etc is 1. Would take me months, 2. we are modifying a system that relies on java to operate.
in future, hefty operations like unpacking etc, will be coded in ASM/C code for faster operation, Im planning on making the whole project open source to allow changes and fixes submitted by other developers, So if anyones interested let me know and ill upload the source code(Written in C# for the .net 4.5 framework)
Ricky Divjakovski said:
Im going to test now, if the firmware has system.transfer.list, and system.dat, it will not be able to be unpacked until i make a native library or extension to perform the operation as i think it would be extremely stupid for the need to have python installed to run.
The only reason i havent rebuilt smali/baksmali etc is 1. Would take me months, 2. we are modifying a system that relies on java to operate.
in future, hefty operations like unpacking etc, will be coded in ASM/C code for faster operation, Im planning on making the whole project open source to allow changes and fixes submitted by other developers, So if anyones interested let me know and ill upload the source code(Written in C# for the .net 4.5 framework)
Click to expand...
Click to collapse
Not sure if this helps but I've run Imgextractor directly on my system.img with this result:
Code:
Mi-A1-Repository>Imgextractor Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system.img
ImgExtractor version 1.3.6 <Created by And_PDA (Based on sources ext4_unpacker)>
Extractor for images in EXT2\EXT3\EXT4\YAFFS2\CRAMFS filesystem formats
support SPARSE\SIN\MOTO structure formats
Open image file Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system.img (size 3221225472 bytes) successfull...
Analize format of file. Please wait...
Found SPARSE FORMAT
Found EXT4 FORMAT
free space in image 188895232 bytes
Extract started. Please wait...
Extract 750 folders and 6306 files successfull
Found 386 symlink files
File stats (uid, gid, permission) save to Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system__statfile.txt
Extract finish success
Press Enter to continue...
oreo27 said:
Not sure if this helps but I've run Imgextractor directly on my system.img with this result:
Code:
Mi-A1-Repository>Imgextractor Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system.img
ImgExtractor version 1.3.6 <Created by And_PDA (Based on sources ext4_unpacker)>
Extractor for images in EXT2\EXT3\EXT4\YAFFS2\CRAMFS filesystem formats
support SPARSE\SIN\MOTO structure formats
Open image file Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system.img (size 3221225472 bytes) successfull...
Analize format of file. Please wait...
Found SPARSE FORMAT
Found EXT4 FORMAT
free space in image 188895232 bytes
Extract started. Please wait...
Extract 750 folders and 6306 files successfull
Found 386 symlink files
File stats (uid, gid, permission) save to Mi-A1-Repository\Roms\Fastboot\tissot_images_V.9.5.10.0.ODHMIFA_8.0\images\system__statfile.txt
Extract finish success
Press Enter to continue...
Click to expand...
Click to collapse
Found the error, the img file is of a wierd format, as its named system.img, it actually contains files from the root, so within the system.img the the root of the image is actually the root of the device rather then the root of the system partition, its extremely odd but none the less extremely simple to fix
Issue is already fixed and will be included in dev preview 3, that is expected for public release in a day or so with much more additions
Ricky Divjakovski said:
Found the error, the img file is of a wierd format, as its named system.img, it actually contains files from the root, so within the system.img the the root of the image is actually the root of the device rather then the root of the system partition, its extremely odd but none the less extremely simple to fix
Issue is already fixed and will be included in dev preview 3, that is expected for public release in a day or so with much more additions
Click to expand...
Click to collapse
Yeah. I found it odd that the system.img had a /system directory in it. Awesome! Can't wait
Ricky Divjakovski said:
Could you please PM me with pics of the firmware your selecting or even a link?
Click to expand...
Click to collapse
its on mega.
https://mega.nz/#!dCA2mAYS!-GrKWuuTNODaYEbt3LWiw4LJzxkrz5wI3T94mQ4PU90
it is a android 6 to android 7 full update. its installed, but i am trying to learn cobble together a rom. this img is for a zoomtak upro, i have found today an image for the uplus/vplus. it has much more stuff in it.
thanks
Twisted714 said:
its on mega.
https://mega.nz/#!dCA2mAYS!-GrKWuuTNODaYEbt3LWiw4LJzxkrz5wI3T94mQ4PU90
it is a android 6 to android 7 full update. its installed, but i am trying to learn cobble together a rom. this img is for a zoomtak upro, i have found today an image for the uplus/vplus. it has much more stuff in it.
thanks
Click to expand...
Click to collapse
I will check it when i get home, if its an upgrade package, i cannot ad support for it..