53 pagesV  1 2 3 4 5 6 > »  
 
REPLY
> AROMA Installer | ANDROID Touch And Customizable ROM Installer
nozap
Message#1
06.03.12, 12:20
Amateur
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 773
Check in: 08.04.11
Oneplus 5 6/64

Reputation:-  126  +


About Aroma Installer
Prehistory
Android has a modern system for installing OS and updates, unlike other OS for mobile devices, which contain OS in a static ROM image, Android contains OS and updates in a simple zip-file containing all packages, files and updater for processing installation.

Updater is divided into 2 types: binary file (update-binary) and script (updater-script). A binary file is an executable file, and a script is a file containing information about what to do with the executable file.

But this modern technology has never used its full potential. The binary update file was simply a Linux C executable program that runs in root mode and can do something with the system: access the display, keys and touch screen, use vibration, execute programs, analyze files, download png- pictures and zip archives and read / write to the file system.

The old binary file only supported a few functions that were used only by the script to install the files. He had no function that would allow the installer to interact with the user. There is a program called "yesno" that shows the "Yes" or "No" buttons, but this was not enough to create a more customizable installer.

Now with the update-binary AROMA Installer, all this limitation is gone, and this modern technology uses its full potential.

What does "AROMA Installer" mean?
The word "AROMA" was taken from the Indonesian language, and it means "Scent", but it is also short for "amarullzAndroidROmMAnifestation ". This is an improved binary update file for Android, which includes features such as: installation wizard, touch user interface (AROMA UI), customizable packages, system inspection, support for themes and user interaction. All versions of the release will have" floral " code names, for example, the 1st version is called "Anggrek", which means "Orchid".

How does it work
How can this work in Recovery, and why such smooth scrolling? This works because I hired Chuck Norris to get the Recovery installer to download, and the phone is too afraid to lag.

More seriously, when a user selects a zip file for installation, Recovery extracts the update-binary and executes it with several parameters. All processes are processed by update-binary, and Recovery will only show the information transmitted by update-binary through the user channel. The bottom line is that update-binary can do something if we re-encode it in C / C ++, but not all people can easily work with C / C ++. It is also not very effective or fun to compile it every time we want to change the process. That is why the user script is used in AROMA Installer - these are just scripts that are used as a normal updater-script, but with advanced functions.

It wasn’t easy to archive something like this, because the binary update file is just a “Linux executable” that doesn’t even support dynamic library references, basic drawing functions like drawrect, drawline, and I don’t think that OpenGL can be enabled, he is binary. He uses his own. Even the user interface was written from scratch to be sent directly to the display frame buffer, user input was read directly from the sources of the kernel input device, png, and zip were read with a static library reference, and the configuration was analyzed in its own program. This is the result of a full month of development, but you can study it now without having to know how to manage memory usage and pointers.

AROMA Installer considers, analyzes and executes script commands to show the user interface, calculates partition sizes, creates, counts and writes temporary main files, sets and obtains variables, performs simple integer comparisons and mathematical sequences, creates or embeds if necessary a color scheme of the UI , configures firmware information, and more.

Since it was very difficult and took a lot of time to create, the developer earned the right to receive donations.
For donations

Scheme of work
Attached Image

Screenshots
Attached Image

Configure Aroma Installer
The best way to learn about the AROMA Installer settings is to practice. Read and edit aroma-config and updater-script directly from the downloaded files, or ready-made, but poorly documented aroma-config and updater-script fromRunnyMede AIO.
Customize your script
AROMA Installer can be configured and configured as you like. There are many functions that can be used to implement many things. In this guide, we will explore some of the features that can be implemented directly in aroma-config.

AROMA Installer archive structure
AROMA Installer uses standard ClockworkMod Recovery structures. All configurations will be placed in the META-INF folder in a zip archive. AROMA Installer directory structure:
All AROMA Installer files should be placed in the META-INF / com / google / android / folder. It should contain 2 binary files, 2 scripts / configuration files and 1 resource folder.
aroma- folder resources AROMA Installer. Contains user files, such as: png-fonts, png-icons, png-images, text files of change logs, license.
aroma-config- this is the main AROMA Installer configuration script. This configuration, which supports the AROMA Installer functions as a UI Wizard, UI Installer, UI Dialog, gets and sets variables, etc. This script is written on Edify Script Sintax (see next chapter). This script does not support system file management, file extraction, or other installation methods. This is only a configuration containing all the necessary data for updater-script.
update-binary- this is an executable program AROMA Installer compiled and written by the author in C. This program shows the user interface.
update-binary-installer- This is the old update-binary (renamed to update-binary-installer), launched through the Installer UI, when the Installer UI has to extract and install files from the zip archive into the phone.
updater-script- This is an old ClockWorkMod Recovery file to start copying / installing / extracting files from a zip archive to a phone. It supports only old functions supported by update-binary-installer, but can read prop files created by AROMA Installer.

Folder aroma
AROMA Installer uses files to show interfaces. Such as a dialog box, a caption, a rounded rectangle, and a simple picture can be implemented by an executable program using composite color configurations, but for others, such as text and icons, AROMA Installer reads the contents of the zip archive.

Minimum requirements: this asset directory must contain png-files of fonts (big and small) in the fonts folder. Icons can be placed in any directory, but for more, it is recommended to put all icons in the icons folder. There are some default icons such as alert.png, install.png and info.png, which should be placed in the icons folder, because the installer's executable program will look for icons in the paths icons / alert.png, icons / install.png.

The remaining pictures and text files can be placed anywhere, but in the aroma folder. Sample code when you need to read a text file:
setvar ("changelogs", readfile_aroma ("changelogs.txt"));

The META-INF / com / google / android / aroma / changelogs.txt file will be found.

Links between aroma-config and updater-script
Attached Image
aroma-config and updater-script run in different processes, and cannot share a single memory resource, the only possible way to associate these temporary files. The updater-script was usually used in the old installer (without the AROMA Installer), it supported a set of functions that were used to manage system files, performing operations: delete_recursive, set_perm, format, mount, package_extract_dir, etc. But it also supported 1 function for reading the prop file, it was file_getprop.

That is why AROMA Installer UI always saves the result in prop files (checkbox, optionbox, menubox). In addition to the UI, aroma-config has a function to create temporary files in plain text (writetmpfile) that can easily create prop files.

FAQ
Q: How to take a screenshot of the installer?
A: Starting from version 2.70 BETA-5, you can take a screenshot by holding down the "Volume Down" and "Power" buttons. The screenshot format is BMP-565 16 bit. If you do not have a device with ARM NEON support, and you cannot use version 2.70, you can try one of the ways fromof thispost.

Instructions, manuals

Useful

Topics

Download
Official demo v3.00 B1:download
Official demo v2.70 RC2:download (works only on devices with ARM NEON support)
Official demo v2.56 (EDELWEIS):download
Demo fromZololosha: AROMA Installer (Post # 21223229)

Changes
MELATI - 3.00
B1
  • new engine fb & input driver
  • support msmfb overlay
  • more neon improve
  • weaks some ui
  • graphics processing

FLAMBOYAN - 2.70
RC2
  • Add support for GS4 Touch screen (Hope it fixed)


RC1
  • I fix some touch handler, now it feel more responsive. GS4 issues ..


BETA-6
  • Fix some back sequence (thanks to Electronic Punk) - aparse_current_position ++ to ++ aparse_current_position.


BETA-5
  • Fix Commented NEON - Now Fast Again
  • New theme
  • New Stack Transition, and smoother dialog transition
  • 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 processe
  • Optimize and Add Drawing Scale Nearest Neighbor
  • Add drawing functions for alphablend
  • Dialog In & Out Transition
  • Cache recovery for exit transition
  • Add exit transition
  • fix force_colorspace issue
  • add colorspace change demo
  • remove unneeded sleep 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 feature
  • Change update-binary-installer from Galaxy Nexus binary. Sensation
  • 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 theme


BETA-2
  • Fix color handling on theme
  • 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, it looks smooth even if it resized
  • FIX MANY BACK SEQUENCE BUGS
  • Faster-only performance improvement - Faster-faster performance improvement
  • Change Navigation Bar Buttons. Now next and back can be using Icon
  • Add Menu Button for buttonless devices.

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 () will not do anything now.

EDELWEIS - 2.51 - BUILD 120810-026
  • Nexus Touch Screen Galaxy Screen - And maybe other devices now supported

EDELWEIS - 2.50 - BUILD 120716-025
  • Accurate Touch screen calibration
  • Set ROBOTO as Default True Type Font

DAHLIA - 2.00 - BUILD 120425-020
  • Fix Installation Save Log
  • Fix framebuffer mmap size
  • Fix status 0 error
  • Add Multilanguage function
  • 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 text
  • Add font glyph cache for freetype drawing & processing
  • Add support for Modern Standard Arabic
  • Add support for RTL
  • Add support for TrueType and OpenType font
  • Add support for UTF8 encoding in aroma-config and all AMS text. For updater-script use NO-BOM UTF8
  • Fix Memory leak
  • 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

There is no curator in the subject. If there is a user in the subject who wants to become a Curator and the correspondingRequirements for candidates, he can apply in the topicI want to be curator(after having studied the topic header and all materials for curators).
Prior to the appointment of the curator, on filling caps, please contactmoderatorssection through a buttonPictureunder the messages to which you want to add links.


Post has been editedvaalf - 18.05.17, 22:05
Reason for editing: corrected link
AntiBillOS
Message#2
08.03.12, 17:37
Veteran
********
[offline]

Group: Friendssavagemessiahzine.com
Messages 1361
Check in: 29.05.11
Apple iPhone 7

Reputation:-  160  +

Interesting topic! I'll try and accomplish the results.


--------------------
Sharp Aquos S2 4/64 / Apple iPhone 7 256gb
I know very well p. 5.3. Rules: it is forbidden to implicitly or explicitly solicit the raising of reputation
TheFrankenstain
Message#3
10.03.12, 19:46
TheFrankenstain ^ MOD
********
[offline]

Group: Friendssavagemessiahzine.com
Messages 1747
Check in: 09.09.11
Google nexus 5

Reputation:-  598  +

Well, in the first place it is impossible to call this program, it is a kind of update updater-script
Akiivuyu I use aroma for about a month on my device, in MIUI and my custom, if you need some kind of help on tuning, etc., write

Post has been editedTheFrankenstain - 10.03.12, 19:49
Simple19
Message#4
10.03.12, 19:48
THE GOD. JUST GOD.
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1244
Check in: 29.12.11

Reputation:-  153  +

Can I take pictures (for you cannot create screenshots in the update menu)?
Under what devices is it? Under the tablets fit?


--------------------
Original iPhone -turn on, enjoy, enjoy.
Chinese iPhone -Try to turn it on, finish it, finish it, finish it, break it, cut it with the three-floor mat of the Chinese, buy the original iPhone.
TheFrankenstain
Message#5
10.03.12, 19:59
TheFrankenstain ^ MOD
********
[offline]

Group: Friendssavagemessiahzine.com
Messages 1747
Check in: 09.09.11
Google nexus 5

Reputation:-  598  +

tyk there spoiler installation instructions, any device is perfect, only this thing is for developers only to be embedded in their firmware
P.s and by the way the latest version of Arom is 2.0, there added support for fonts

Post has been editedTheFrankenstain - 10.03.12, 20:07
ruslik0579
Message#6
16.03.12, 11:46
Homo sum
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 2071
Check in: 26.01.11
Samsung Galaxy S8 Exynos

Reputation:-  902  +

An interesting thing. Today I saw for the first time when installing the firmware on HTC Sensation, now I’m thinking about trying this out on the HTC Incredible S firmware.
ego946
Message#7
16.03.12, 15:23
nihilist ordinary
******
[offline]

Group: Friendssavagemessiahzine.com
Messages 599
Check in: 10.06.11
HTC 8X

Reputation:-  73  +

How to bring this into the firmware? There is a firmware, two options for Lockscreen, a player, etc. What should I put in?


--------------------
All evil begins with the tacit consent of the indifferent
Alex Zaguzin
Message#8
28.04.12, 23:31
Balamut
*********
[offline]

Group: Curators
Messages 2458
Check in: 21.03.10
Xiaomi Redmi Note 5 3/32

Reputation:-  774  +

On the XDA version appeared:
CEMPAKA- 1.64 - BUILD 120414-040
* Fix framebuffer mmap size
* Fix status 0 error

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 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


Update the header, please ...


--------------------
wmaster
Message#9
02.05.12, 14:52
MIUI dev
********
[offline]

Group: Friendssavagemessiahzine.com
Messages 1342
Check in: 23.03.11
Xiaomi Redmi 5 Plus 3/32

Reputation:-  512  +

In my signature, firmware, there is a Russian aroma


--------------------
[2010]Nexusone[2011]Motorola defy[2012]Sony xperia play[2013]Pantech Vega Racer[2013]Huawei Ascend P1 LTE[2014]Moto Atrix HD & Moto G[2014]HTC Desire X[2015] LG L40(3)Moto G | Xperia Z1 & N5 & IdolX + RN3Pro| RN4
iPhone SE 10.2 JAILBROKEN
sssemil
Message#10
24.05.12, 13:19
Old resident
********
[offline]

Group: Friendssavagemessiahzine.com
Messages 1411
Check in: 20.03.12
Oneplus one

Reputation:-  182  +

And can you do something like a firmware that runs through the recovery? Well, if the firmware has gone bad, you need to call urgently. Any ideas? : D


--------------------
DanisSSSR
Message#11
27.05.12, 14:05
Born in USSR
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 3152
Check in: 18.06.10
Xiaomi Mi 5S 3/64

Reputation:-  2644  +

Someone tell me how to take screenshots when working as an installer. It costs 4EXT Recovery and you can make screenshots from it, but when the installer works, no screenshots are made, I get to the menu. Is it possible to make screenshots while running AROMA Installer?

Post has been editedDanisSSSR - 27.05.12, 14:06


--------------------
Locoin my heart forever 07.09.11
max56rus
Message#12
28.05.12, 10:57
Old resident
*******
[online]

Group: Curators
Messages 1006
Check in: 13.02.11
Xiaomi Mi 8 Pro

Reputation:-  126  +

How is this miracle implanted in rum?
As I understand it, it is (v2.0) multilanguage, and of the characteristics of the device on which it is placed, only the support of the core sensory rekari is important.


--------------------
SE Xperia X8 → hTC HD2 → hTC Desire HD → hTC Sensation 4g → Sony Xperia L → hTC One X → Sony Xperia ZL → Sony Xperia Z1 → Apple iPhone 5 → Samsung Galaxy S5 → Apple iPad2 GSM → hTC ONE M8 → Xiaomi Redmi Note4 → Xiaomi Mi Mix 2→ Asus Transformer Pad TF103C
TakaiSaisei
Message#13
06.06.12, 22:38
Old resident
*******
[offline]

Group: Friendssavagemessiahzine.com
Messages 1171
Check in: 14.11.11
BQ Aquaris X 3/32

Reputation:-  195  +

There are questions, no answers ... So who can give instructions on how to insert it into your firmware?


--------------------
Huawei U8650 ->Sony Xperia tipo ->SGS 3 ->Xiaomi Mi4 ->Oneplus One ->Sony Xperia XA ->iPhone 5S ->BQ Aquaris X
JustAGod
Message#14
07.06.12, 23:26
Local
*****
[offline]

Group: Friendssavagemessiahzine.com
Messages 136
Check in: 01.05.11
Sony xperia e

Reputation:-  30  +

Off.site
xda

About Aroma Installer
Prehistory

Android has a modern system for installing OS and updates, unlike other OS for mobile devices that contain OS in a static ROM image, Android contains OS and updates in a simple zip file containing all packages, files and updater for processing installation.

The updater is divided into 2 types: a binary file (update-binary) and a script (updater-script). A binary file is an executable file, and a script is a file containing information about what to do with the executable file.

But this modern technology has never used its full potential. The binary update file was simply a Linux executable program written in C, which works as root mode and can do something with the system, for example: access the display and access keys and touch screen, use vibration, execute programs, analyze files, download png-pictures and zip-archives, and read / write to the file system.

The old binary file only supported a few functions that were used only by the script to install the files. He had no function that would allow the installer to interact with the user. There is a program called "yesno" that shows the "Yes" or "No" buttons, but this was not enough to create a more customizable installer.

Now with AROMA Installer update-binary, all of this limitation is gone, and this modern technology uses its full potential.

What does AROMA Installer mean

The word "AROMA" was taken from the Indonesian language, and it means "Scent", but it is also short for "amarullzAndroidROmMAnifestation ". This is an improved binary update file for Android, which contains features such as: the installation wizard, the touch user interface (AROMA UI), customizable packages, system inspection, support for themes and user interaction. All versions of the release will have" floral " code names, for example, the 1st version is called "Anggrek", which means "Orchid".

How AROMA Installer Works

How can this work in Recovery, and why such smooth scrolling? The author claims that he hired Chuck Norris to force Recovery to download the installer, and the phone is too afraid to lag.

More seriously, when a user selects a zip file for installation, Recovery extracts the update-binary and executes it with several parameters. All processes are processed by update-binary, and Recovery will only show the information transmitted by update-binary through the user channel. The bottom line is that update-binary can do something if we re-encode it in C / C ++, but not all people can easily work with C / C ++. It is also not very effective or fun to compile it every time we want to change the process. That is why the user script is used in the AROMA Installer, this is simply taught by scripts that are used as a normal updater-script, but with advanced features.

It wasn’t easy to archive something like this, because the binary update file is just a “Linux executable” that doesn’t even support dynamic link libraries, basic drawing functions like drawrect, drawline, and I don’t think that OpenGL can be enabled, he is binary. He uses his own. Even the user interface was written from scratch to manage directly into the display frame buffer, user input was read directly from the sources of the kernel input device, png, and zip was read with a static library reference, and the configuration was analyzed in its own program. This is the result of one full month of development, but you can study it now without having to know how to manage memory usage and pointers.

AROMA Installer considers, analyzes and executes script commands to show the user interface, calculates partition sizes, creates, counts, and writes temporary core files, sets and obtains variables, performs simple integer comparisons and mathematical sequences, creates or embeds a color scheme if necessary UI, configures firmware information, and more.

Since it was very difficult and took a lot of time to create, the developer earned the right to receive donations ?.

For donations

AROMA Installer operation scheme

Attached Image

Configure AROMA Installer
The best way to learn about the AROMA Installer settings is to practice. Read and edit aroma-config and updater-script directly from the downloaded files, or ready-made, but poorly documented aroma-config and updater-script from RunnyMede AIO.
Download RunnyMede AIO

Customize your script
AROMA Installer can be configured and configured as you like. There are many functions that can be used to implement many things. In this guide, we will explore all the functions that can be implemented directly in aroma-config.
AROMA Installer archive structure
AROMA Installer uses standard ClockWorkMod Recovery structures. All configurations will be placed in the folder META-INF zip-archive. AROMA Installer directory structure:
All AROMA Installer files should be placed in the META-INF / com / google / android / folder. It should contain 2 binary files, 2 scripts / configuration files and 1 resource folder.
aroma- folder resources AROMA Installer. Contains user files such as: png fonts, png icons, splash png images, change log text files and / or license.
aroma-config- this is the main AROMA Installer configuration script. This configuration, which supports the AROMA Installer functions as a UI Wizard, UI Installer, UI Dialog, gets and sets variables, etc. This script is written on Edify Script Sintax (See the next chapter). This script does not support functions, system file management, file extraction and other installation method. This is only a configuration containing all the necessary data for updater-script.
update-binary- this is the executable program AROMA Installer, compiled and written by the author in C, this program shows the User Interface.
update-binary-installer- This is the old update-binary (renamed to update-binary-installer), launched through the Installer UI, when the Installer UI has to extract and install files from the zip archive into the phone.
updater-script- This is an old ClockWorkMod Recovery file to start copying / installing / extracting files from a zip archive to a phone. It supports only old functions supported by update-binary-installer, but can read prop files created by AROMA Installer.
Aroma folder
AROMA Installer uses files to show interfaces. Such as a dialog box, a caption, a rounded rectangle, and a simple picture can be implemented by an executable program using composite color configurations, but for others, such as text and icons, AROMA Installer reads the contents of the zip archive.

Minimum requirements: this asset directory must contain png-files of fonts (big and small) in the fonts folder. Icons can be placed in any directory, but for more, it is recommended to put all icons in the icons folder. There are some default icons such as alert.png, install.png and info.png, which should be placed in the icons folder, because the installer's executable program will look for icons in the paths icons / alert.png, icons / install.png.

The remaining pictures and text files can be placed anywhere, but in the aroma folder. Sample code when you need to read a text file:
setvar ("changelogs", readfile_aroma ("changelogs.txt"));

The META-INF / com / google / android / aroma / changelogs.txt file will be found.
Links between aroma-config and updater-script
This section explains how aroma-config communicates with updater-script, read it carefully.
Attached Image

aroma-config and updater-script run in different processes, and cannot share a single memory resource, the only possible way to associate these temporary files. The updater-script was usually used in the old installer (without the AROMA Installer), it supported a set of functions that were used to manage system files, performing operations: delete_recursive, set_perm, format, mount, package_extract_dir, etc. But it also supported 1 function for reading the prop file, it was file_getprop.

That is why AROMA Installer UI always saves the result in prop files (checkbox, optionbox, menubox). In addition to the UI, aroma-config has a function to create temporary files in plain text (writetmpfile) that can easily create prop files.
Prop file format
A prop file format is a plain text format that uses a character (=) as a separator between the key (key) and value (value), and using (new line) as a separator between one key = value with another key = value.
key1 = value1
key2 = value2
key_3 = value3
last.name = amarullz

You can easily access file_getprop in updater-script like this:
file_getprop ("example.prop", "key1");

With the above code, the function file_getprop will return the value of key1, which in turn will return "value1". We can also use it for our needs in the if / if else operator. We can use only such characters in keys as a dot (.) And underscore (_), and be careful not to add descriptions in the values. Here is the wrong prop file format:
key1 = "value1"
key2 = "value2" # description
first name = james # key name contains a space

The location of the temporary prop file
When playing with aroma-config files in AROMA Installer, almost all of the things that managed the prop files will be saved to the AROMA temporary directory located in / tmp / aroma-data /, so if we write the name of the prop file as: writetmpfile (" test.prop "," key1 = ok "); test.prop will be located at / tmp / aroma-data / test.prop.
aroma-config:
writetmpfile (
"kernel.prop",
"snq = yes \ n" +
"call.2way = no \ n"
);

updater-script:
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 is enough to archive a custom installation, and aroma-config will be able to contact updater-script.
Learning script
...


Post has been editedJustAGod - 17.06.12, 21:06
mikrosmile
Message#15
20.06.12, 23:34
Guru
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 2036
Check in: 15.03.12
HTC One M7

Reputation:-  592  +

Configure Aroma Installer


First you need to figure out what the aroma is and how it works. What files need to run. I will only describe how to "live" the aroma in your firmware or mod or something else that can be installed through the recovery.

First:
  • We take your workerupdate-binarycall it inupdate-binary-installer.
  • We leave your working updater-script in place
  • Extract everything from the archive from the aroma to the META-INF / com / google / android folder, butBesides update-binary-installer and updater-script. They should already be in the folder and there is no need to replace them.


Second:
  • Remove everything from aroma-config
  • Delete text from changelog.txt
  • delete text from agreenment.txt (just clear files, do not delete)


Setting up empty aroma-conig
The very first we indicate the information, the name of the firmware and so on.

ini_set ("rom_name", "your rom name");
ini_set ("rom_version", "rom version");
ini_set ("rom_author", "you");
ini_set ("rom_device", "for which phone");
ini_set ("rom_date", "data");


Further,

splash (4000, "splash");


here we specify a picture to load the aroma. You can use any png format to fit your screen. Specify only the name, without extension.
Example - in my folder with an aroma file mikrosense.png - I write splash (4000, "mikrosense");

Further..

theme ("sense");


topic selection. In the folder with the aroma to choose 4 topics, write the name of the folder you want the theme

calibrate ("1.6834", "18", "0.9457", "25");


calibration, for each device its own. I recommend taking it from your desktop for your device.

This is all the necessary important information.


Creating welcome windows, changelog
viewbox (
"Welcome",
"\ n \ n \ n \ n \ n" +
"You're about to flash \ n" +
ini_get ("rom_name") + "by" + ini_get ("rom_author") +
"\ n \ n \ n" +
"Version: <# 080>" + ini_get ("rom_version") + " \ n" +
"Device: <# 080>" + ini_get ("rom_device") + " \ n \ n \ n" +
"Press Next to continue the installation ...",
"icons / info"

);

From here we understand:
The viewbox is a window to welcome or display any information. In this window, you can specify that you are going to establish who the author is and so on.
ini_get ("rom_name") - this command sets to take the information that we specified at the very beginning. Ie it is not necessary everywhere to write manually every time information about the firmware version or name changes. This should be indicated only at the very beginning.
<#080></#>- these are commands for color. In my case, they are green. You can see the color codes in the fileams-sample.txtin the folder with aroma
icons / info is the command which icon to use at the very top of the window. Icons are in the folder with the aroma. You can copy your icons there and indicate the names to them.

textbox (
"Changelogs",
"Theme MOD Changelogs",
"icons / beats",
readfile_aroma ("changelog.txt")
);


Display structure:
textbox (
"Changelogs", - headline
"Theme MOD Changelogs", - subtitle

This is a window showing changes or changelog. As you can see, the changelog.txt file that we cleared runs. Now you can fill it with your data. But you need to specify in English. We will move on to Russian later.

agreebox (
"Terms Of Use",
"Please read the Terms of Use ...",
"icons / agreement",
readfile_aroma ("agreement.txt"),
"I agree with this Terms Of Use ...",
"Please check the agreement ..."
);


This is a window of agreement with the terms. You can actually skip it. But let it be. You can indicate that you are not responsible for curved hands and so on. It is also necessary to indicate in English.

install (
"Installation",
"Installing to" + ini_get ("rom_name") + "" + ini_get ("rom_version") +
"... \ nPlease wait until it finished ...",
"icons / install"
);


This window shows that everything is ready for installation, shows information about your firmware, ask to click further to continue

#Save installation config
resexec ("scripts / save.sh");

# Set Next Text fo Finish
ini_set ("text_next", "Finish");
if getvar ("reboot_it") == "1" then
ini_set ("text_next", "Reboot");
endif;


viewbox (
"Installation Completed",
"<# 080> Congratulation ... \ n \ n" +
ini_get ("rom_name") + "" + ini_get ("rom_version") + "has been installed successfully. \ n \ n" +
"Enjoy!: D",
"icons / info"
);


This item can be left as is. It indicates whether to save the logfile and whether to restart the device after installation.

That's all. Aroma should you run without any problems. There is no choice, of course, but it will start. It will be a beautiful installation.

I remind you that there is no if updater-script, endif otherwise there will be an error. This is a simple installation that does not imply any choice. Next, I will introduce you how to make a choice during installation. There you will have to configure both aroma-confg and updater-script.



Creating a menu of choices in the aroma
We will create a selection menu afteragreebox (
aroma-config:
agreebox (
"Terms Of Use",
"Please read the Terms of Use ...",
"icons / agreement",
readfile_aroma ("agreement.txt"),
"I agree with this Terms Of Use ...",
"Please check the agreement ..."
);

selectbox (
# - Title
"Do you want to perform full wipe?",
# - Subtitle
"Please choose",

"icons / personalize",

"wipe.prop",
----------------------------------- [Selectbox] ----------- ------------------------------------ #
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#

"Install w / o wiping", "", 0, # - selected = 1
"Perform full wipe", "", 1 # - selected = 2
);


updater-script:
show_progress (0.500000, 0);

show_progress (0.500000, 40);

# [OPTIONAL FULL WIPE] #
if
file_getprop ("/ tmp / aroma-data / wipe.prop", "selected") == "2"
then

set_progress (0.01);
ui_print ("@ Executing Full Wipe");
ui_print ("- Erasing & formatting / cache as EXT4");
unmount ("/ cache");
run_program ("/ sbin / erase_image", "cache");
format ("ext4", "EMMC", "/ dev / block / mmcblk0p24");
run_program ("/ sbin / sleep", "2");

set_progress (0.02);
ui_print ("- Erasing & formatting / system as EXT4");
unmount ("/ system");
run_program ("/ sbin / erase_image", "system");
format ("ext4", "EMMC", "/ dev / block / mmcblk0p22");
run_program ("/ sbin / sleep", "2");

set_progress (0.03);
ui_print ("- Erasing & formatting / data as EXT4");
unmount ("/ data");
run_program ("/ sbin / erase_image", "userdata");
format ("ext4", "EMMC", "/ dev / block / mmcblk0p23");
run_program ("/ sbin / sleep", "2");

set_progress (0.04);
ui_print ("- Erasing / boot partition");
unmount ("/ boot");
run_program ("/ sbin / erase_image", "boot");
run_program ("/ sbin / sleep", "2");

endif;

selectbox (is a choice of one of several options. Ie you can choose only one option.
And thus it is clear that when you get under the condition (in my case, complete a full wipe = 1 and the key to it selected = 2) a full wipe will be executed. If you choose an installation without a wipe, then this condition will not be fulfilled at all. Thus, the action to perform a full wipe only if the values ​​match.selected
if
file_getprop ("/ tmp / aroma-data /wipe.prop","selected") == "2"
then

Multiple selection menu
Suitable for choosing which additional applications to install or uninstall
Team responsible for thischeckbox
checkbox (
# - Title
"Additional apps",

# - Subtitle
"Choose apps you want to install",
"icons / apps",
"mods.prop",
# ------------------------------------------------ [ Checkbox Without Group] ---------------------------------------------- #
# TITLE | SUBTITLE | Initial Value #
#------------------------+-------------------------------------------------------------------------------+---------------#

"T-Mobile Addons", "", 0, # - item.1.1
"Exchange mail mod", "", 0, # - item.1.2
"4EXT Recovery Updater", "", 0 # - item.1.3


);

# -------- [0: Unselected, 1: Selected] --------- #


updater-script:
In the updater-script-e, we skip the symlink commands and get to the point where the kernel installation commands go.
You need to prescribe these commands before the extraction commands boot.img
# Running user choose settings.

# Installing apps
ui_print ("@ Installing addons ...");
if
file_getprop ("/ tmp / aroma-data / mods.prop", "item.1.1") == "1"
then
ui_print ("- Installing T-Mobile US Addons");
package_extract_dir ("extra / tmous", "/ system");
package_extract_file ("extra / tmous / tmous.sh", "/tmp/tmous.sh");
set_perm (0, 0, 0777, "/tmp/tmous.sh");
run_program ("/ tmp / tmous.sh");
delete ("/ tmp / tmous.sh");
delete ("/ system / tmous.sh");
endif;

if
file_getprop ("/ tmp / aroma-data / mods.prop", "item.1.2") == "1"
then
ui_print ("- Installing Exchange Mod");
package_extract_dir ("extra / exchange", "/ system");
endif;

if
file_getprop ("/ tmp / aroma-data / mods.prop", "item.1.3") == "1"
then
ui_print ("- Installing 4EXT Recovery Updater");
package_extract_dir ("extra / 4EXT", "/ data");
endif;

Further commands to install the kernel, unmount sytem, ​​data, and so on are needed.

Full Aroma-config
ini_set ("rom_name", "your rom name");
ini_set ("rom_version", "rom version");
ini_set ("rom_author", "you");
ini_set ("rom_device", "for which phone");
ini_set ("rom_date", "data");

splash (4000, "splash");
theme ("sense");
calibrate ("1.6834", "18", "0.9457", "25");

"Welcome",
"\ n \ n \ n \ n \ n" +
"You're about to flash \ n" +
ini_get ("rom_name") + "by" + ini_get ("rom_author") +
"\ n \ n \ n" +
"Version: <# 080>" + ini_get ("rom_version") + " \ n" +
"Device: <# 080>" + ini_get ("rom_device") + " \ n \ n \ n" +
"Press Next to continue the installation ...",
"icons / info"

);

textbox (
"Changelogs",
"Theme MOD Changelogs",
"icons / beats",
readfile_aroma ("changelog.txt")
);

agreebox (
"Terms Of Use",
"Please read the Terms of Use ...",
"icons / agreement",
readfile_aroma ("agreement.txt"),
"I agree with this Terms Of Use ...",
"Please check the agreement ..."
);

selectbox (
# - Title
"Do you want to perform full wipe?",
# - Subtitle
"Please choose",

"icons / personalize",

"wipe.prop",
----------------------------------- [Selectbox] ----------- ------------------------------------ #
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#

"Install w / o wiping", "", 0, # - selected = 1
"Perform full wipe", "", 1 # - selected = 2
);

checkbox (
# - Title
"Additional apps",

# - Subtitle
"Choose apps you want to install",
"icons / apps",
"mods.prop",
# ------------------------------------------------ [ Checkbox Without Group] ---------------------------------------------- #
# TITLE | SUBTITLE | Initial Value #
#------------------------+-------------------------------------------------------------------------------+---------------#

"T-Mobile Addons", "", 0, # - item.1.1
"Exchange mail mod", "", 0, # - item.1.2
"4EXT Recovery Updater", "", 0 # - item.1.3


);


install (
"Installation",
"Installing to" + ini_get ("rom_name") + "" + ini_get ("rom_version") +
"... \ nPlease wait until it finished ...",
"icons / install"
);

#Save installation config
resexec ("scripts / save.sh");

# Set Next Text fo Finish
ini_set ("text_next", "Finish");
if getvar ("reboot_it") == "1" then
ini_set ("text_next", "Reboot");
endif;


viewbox (
"Installation Completed",
"<# 080> Congratulation ... \ n \ n" +
ini_get ("rom_name") + "" + ini_get ("rom_version") + "has been installed successfully. \ n \ n" +
"Enjoy!: D",
"icons / info"
);


Post has been editedmikrosmile - 24.06.12, 21:31
mikrosmile
Message#16
23.06.12, 14:27
Guru
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 2036
Check in: 15.03.12
HTC One M7

Reputation:-  592  +

Taking screenshots in Aroma


Immediately, I would like to say that this method does not work correctly for me personally. I think you will be fine. At least for others, it works fine.

������ �1: download

  • You must have Android-SDK settings with all the consequences, all drivers, and Eclipse (through it we’ll take screenshots)
  • We connect the phone to USB (in any mode)
  • Start Eclipse -> window -> open perspecctive -> other -> DDMS

After that, your device will connect, you should see the root directory and serial number. After that, the camera icon should appear on the right, with the help of it you can take screenshots. Go to the recovery, opens your file with aroma, do.

Method number 2:
This method works in the Android system. In the recovery do not need to go!
Install this applicationAttached fileFullScreen.apk(4.95 KB)


  • To directory/ datawe copyupdate-binary(taken from the original with aroma)
  • Set permissions for update-binary on755(In many file managers, you can set permissions. For this, root file explorer will do. I used Solid File Explorer)
  • After that, create a temporary directory tmp (created once), to create, open a command window and enter

adb devices
adb shell
mount -o, rw, remount /
mkdir / data / tmp
ln -s / data / tmp / tmp


  • the command window can be closed (this is better)
  • open the application FullScreen
  • open the command window again and enter

adb device
adb shell
cd / data
chmod 755 ./update-binary
./update-binary 1 0 /sdcard/aroma.zip

instead of aroma.zip - write the full name of your file (firmware, mod)
If everything is successful, the Aroma Installer will launch in the FullScreen application. You can take screenshots in the usual way. Power + vol down (for example)
Grand1
Message#17
05.07.12, 23:32
Guru
*********
[offline]

Group: Developers
Messages 3572
Check in: 08.10.09
Samsung Galaxy Note 2 GT-N7100

Reputation:-  836  +

Tell me pliz how to russify everything that Aroma takes?
I made the first greeting page in Russian using the described method, but it’s unrealistic to russify the entire menu with this method ...
I recoded the aroma-config from ANSI to UTF8, I thought it would pick up Russian, but it was not there, it gives an error straight from the first empty line, after the commented license ...

Post has been editedGrand1 - 05.07.12, 23:34


--------------------
mikrosmile
Message#18
06.07.12, 13:32
Guru
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 2036
Check in: 15.03.12
HTC One M7

Reputation:-  592  +

Let's start the translation of AROMA Installer


You may find this method difficult and time consuming, but believe me, then you can translate into absolutely any language without changing anything in aroma-config. I prefer this kind of translation, since Aroma still supports not one language, but all that you know and still need to look in the description of Aroma itself, perhaps some do not.

In general, we need your customized aroma-config, which you did great and works with it.
Next we need the langs folder. It contains files .. en.lang; ru.lang and so on ... In order not to occupy space, you can delete unnecessary ones;
Next, we need a folder unicode in it is the file russian-latin.txt, open and delete all the contents of this file, for better convenience, I made two copies of this file and one called - changelog the second agreenment. It will be responsible for the actual opening of the list of changes and the user agreement in Russian. And you need it in the unicode folder (it won't open in the other)

The instruction itself
Now what do we do .. at the very beginning of the aroma-config we add an entry
loadlang ("langs / ru.lang");
fontresload ("0", "ttf / DroidSans.ttf", "12");
fontresload ("1", "ttf / DroidSans.ttf", "18");


without changing anything go to
viewbox (
"Welcome",
"\ n \ n \ n \ n \ n" +
"You're about to flash \ n" +
ini_get ("rom_name") + "by" + ini_get ("rom_author") +
"\ n \ n \ n" +
"Version: <# 080>" + ini_get ("rom_version") + " \ n" +
"Device: <# 080>" + ini_get ("rom_device") + " \ n \ n \ n" +
"Press Next to continue the installation ...",
"icons / info"

);


And now in it we change the lines "Welcome", "You're about to flash" "Version" "Device" "Press Next to continue the installation"
ON:
"<~ welcome.title>"
"<~ welcome.text1>"
<~ welcome.version>
<~ welcome.codename>
"<~ welcome.next>"

In the file ru.lang we look for such lines and change what we want.
It does not need any "" or<>plain text.
welcome.title = Welcome
welcome.text1 = You are about to install ...
welcome.version = Version
welcome.codename = Apparatus
welcome.netx = Click Next to continue installation


That's how you should be
viewbox (
"<~ welcome.title>",
"\ n \ n \ n \ n \ n" +
"<~ welcome.text1> \ n" +
ini_get ("rom_name") + "by" + ini_get ("rom_author") +
"\ n \ n \ n" +
"<~ welcome.version>: <# 080>" + ini_get ("rom_version") + " \ n" +
"<~ welcome.codename>: <# 080>" + ini_get ("rom_device") + " \ n \ n \ n" +
"<~ welcome.next>",
"icons / info"

);


Next, we change the title and subtitle in the Changes menu, I’ll write how it should already be ..
textbox (
"<~ changelogs.title>",
"<~ changelog.desc>",
"icons / beats",
readfile_aroma ("unicode / changelog.txt")
);




Let's summarize a little traversed

So -* .title- this is the title;* .desc- this is a subtitle;* .text1; * .text2; * .text3This is the text inside the window.
* .version, * .codename and * .nextThese are the standard codes in the aroma, responsible for the description of the phone, the version and the text, click on.
The buttons themselves are translated below by default; you don’t need to change anything yourself.


Further...

agreebox (
# - Title
"<~ terms.title>",

# - Subtitle / Description
"<~ terms.desc>",

"icons / agreement",
readfile_aroma ("unicode / agreement.txt"),

# - Checkbox Text
"<~ terms.check>",

# - Unchecked alert Message
"<~ terms.confirm>"
);



By analogy, create in the file ru.lang the lines that are in the aroma are fixed in<>and this is the link to the translation. In the same way, you can add these lines later in different languages ​​.. example ..
In the aroma, nothing needs to be changed as it is "<~ welcome.title>"they left and forgot about him ..
add to ru.lang, en.lang, it.lang this line and translate by analogy ..

ru.lang - welcome.title = Welcome

en.lang - welcome.title = Welcome

it.lang - welcome.title = Benvenuto

If you want to add a language that does not exist, then just take one of the files, rename it. For example, if you want to add Ukrainian ... we take ru.lang, change it to ukr.lang and change the translation of all the lines there

welcome.title = Laskavo requested


We translate the selection menu, everything is the same .. we look how it should be ...

selectbox (

"<~ wipe.title>",

"<~ wipe.desc>",

"icons / personalize",

"wipe.prop",
----------------------------------- [Selectbox] ----------- ------------------------------------ #
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#

"<~ without.title>", "<~ without.desc>", 0, # - selected = 1
"<~ full.title>", "<~ full.desc>", 1 # - selected = 2
);


Accordingly, now you need to add new lines to the file ru.lang ..
wipe.title = Perform data cleaning?
wipe.desc = Please select

without.title = Installation without wipe
without.desc = Perform installation without data cleansing

full.title = Run a full wipe
full.desc = Installation with full data cleaning


Well, that's all, you need only one thing to continue, your mind! Yes, yes, they figured out the theory, practiced and now follow the example of the translation. The first time you have to work hard, I spent a lot of time understanding all this and then translating, you just follow the tips and example :) Enjoy ..
Who needs an example on which you can practice, ask, send it personally. The titanic work was done


Post has been editedmikrosmile - 06.07.12, 14:31
Grand1
Message#19
06.07.12, 14:25
Guru
*********
[offline]

Group: Developers
Messages 3572
Check in: 08.10.09
Samsung Galaxy Note 2 GT-N7100

Reputation:-  836  +

Mikrosmile @ 07/06/2012, 14:32*
Next, we need a folder unicode in it is the file russian-latin.txt, open and delete all the contents of this file, for better convenience, I made two copies of this file and one called - changelog the second agreenment. It will be responsible for the actual opening of the list of changes and the user agreement in Russian. And you need it in the unicode folder (it won't open in the other)
Thank you so much for the titanic work done ...: thank_you:
If possible, I would also like an archiver with files:
russian-latin.txt, changelog.txt and agreenment.txt ...: rolleyes:

And I would like clarification on editing the aroma-config file.
The fact is that if you edit it on a disk and then copy it with a replacement in \ META-INF \ com \ google \ android, then for some reason it stops working ...
Those. AROMA Installer generates an error at startup.
If I open the aroma-config file from the 7z archiver (for example) and edit it, then everything is fine ...

Post has been editedGrand1 - 06.07.12, 14:40


--------------------
Grand1
Message#20
06.07.12, 14:45
Guru
*********
[offline]

Group: Developers
Messages 3572
Check in: 08.10.09
Samsung Galaxy Note 2 GT-N7100

Reputation:-  836  +

How to set up Arom's progress bar correctly?
What are the ways other than at random?

Post has been editedGrand1 - 06.07.12, 14:47


--------------------
mikrosmile
Message#21
06.07.12, 14:46
Guru
*********
[offline]

Group: Friendssavagemessiahzine.com
Messages 2036
Check in: 15.03.12
HTC One M7

Reputation:-  592  +

GrAnd1,
I edit the aroma on the computer, that is, the entire META-INF folder is on the disk on the computer. Also an archive has been created in which the entire folder META-INF lies
Ie it is not unpacked, but when you open the archive. must see META-INF. And when I finish editing, I open the archive, I go to the META-INF folder, only the folder is deleted from the archivecom(well, and accordingly, what is removed inside it too ...). Now on the computer where the aroma is, I drag the zip foldercomand all that is inside ... and then I download to the phone and check ..

What you have is probably related to temporary files. + When I copy a new file from the recovery, I will have to reload it and then just run the file. Also constantly mistakes

For example, make your archive and change the folder com
Attached filetest_aroma_rom_.zip(2.91 MB)


Post has been editedmikrosmile - 06.07.12, 14:53

53 pagesV  1 2 3 4 5 6 > » 


 mobile version    Now: 05/05/19, 14:28