[ANLATIM][ARAYÜZ]AROMA İNSTALLER HAZIRLAMA

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Nt3p3DwFjAaCzH3XS-PDe-vaIUQA2iiGVf848Dx0V9IqxaBwetElNs9RVYG3Ls8b-hT97GY1lL8xcU29EDSPkP-HR4dzPBCt63JQ-YJdTj_m=w537-h108-nc
Selamlar. Bugün sizlere rom kurulurken kullanıcı tercihlerini uygulamaya yarayan Aroma İnstaller hazırlamayı anlatacağım.
Aroma dosyaları rom.zip'in META-INF>>com>>google>>android içerisinde aroma adlı klasörde bulunur. Ayrıca üst klasörde de aroma-config ve update-binary-installer dosyaları da aroma'nın eklentisidir.

Aşağıda verdiğim linkten Aroma Dosyalarını indirip, klasöre çıkartın.
Aroma temel çalışma prensibi şudur;
Seçime uygun kodlar .prop dosyasına yazılır. Script dosyası seçimi uygular.

Gelelim kodlara. Kodlar aroma-config dosyasına yazılır. Verdiğim dosyada temel kodlar var siz araya aşağıdakileri ekleyin. Zor iş. Yazım hataları işi bozar. Dikkatli olun.

##
# Initializing Rom Information
#
ini_set("rom_name", "AROMA TEST");
ini_set("rom_version", "1");
ini_set("rom_author", "Kronos");
ini_set("rom_device", "ETAB5");
ini_set("rom_date", "June, 18 2013");

Burada temel bilgiler yer alır. Verdiğim dosyada bu kısım var. Roma ait bilgileri yazın.

##
# Show Simple Splash
#
splash(
# #-- Duration 2000ms / 2 seconds
2000,
#-- <AROMA Resource Dir>/Kronos.png
"Kronos"
);

Burada Aroma açılırken gösterilecek logo bilgisi yer alır. "Kronos" yazan yere kendi logonuzun adını yazın ancak boşluk olmasın. İkonun boyutu(en-boy) aromayı kullanacağınız cihazın ekran boyutları ile aynı olsun. .PNG uzantılı da olsun.

###################################################################################################################
#
# STEP 3 - WIPE
#
checkbox(
# Title
"Data Temizleme İşlemi",

# Sub Title
"/data temizlemek önemlidir.\n\n"+
"<b>Uyuşmama durumunda cihazınız bootloop'a girebilir.</b> .",

# Icon
"@update",

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

#----------------------------------[ Selectbox With Groups ]-----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#
"Data Temizleme", "", 2, #-- Group 1
"/data'yı temizle.", "Temiz bir başlangıç yapın.", 1 #-- item.1.1



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

);


Evet. Yukarıdaki kodla roma otomatik wipe ekleyebilirsiniz.

###################################################################################################################
#
# MODIFICATIONS PAGE 1
#
selectbox(
# Title
"Tercihler 1/2 ",

# Sub Title
"Çok kullanışlı modlar.\n\n"+
"<b>Seçiminizi yapıp ilerleyin.</b>",

# Icon
"@customize",

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

#----------------------------------[ Selectbox With Groups ]-----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#
"Sanal Tuşlar", "", 2, #-- Group 1
"Aktif", "Sanal Tuşları kullanın.", 0, #-- selected.1 = 1
"Devre Dışı", "Ekranda Tuşlar açılmaz.", 1 #-- selected.1 = 2

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

);

Asıl koda geldik. Bu kodu kopyalayıp çoğaltarak mod seçimlerini arttırabilirsiniz. Ancak kopyasında kırmızı ile yazılı kısmı değiştirin. mods2.prop yapın.
3. kopyada mods3.prop yapın. Öyle devam edin. İstediğiniz kadar ekleyin. Mavili yerler kodunuzu göre düzenlenecek. Mesela sanal tuş yerine Xposed yazarsınız. Ne bileyim yazın işte.

Kodları sıralı olarak verdiğim zipteki aroma-config içine yazdıktan sonra script dosyasına geçelim.
updater-script dosyası her romda bulunur. Buraya Aroma seçimlerimizi uygulamak için kod ekleyeceğiz. Temel kodu yazıyorum. Her mod için ayrı olarak eklememiz gerek.

# ===========================Sanal Tuşlar============================
show_progress(0.6, 11);
if file_getprop("/tmp/aroma-data/mods.prop","selected.1") == "1" then
ui_print(">>Sanal tuşlar açılıyor.");
package_extract_dir("Kronos/build.prop", "/system");
endif;

if file_getprop("/tmp/aroma-data/mods.prop","selected.1") == "2" then
ui_print(">>Sanal Tuşlar kapatıldı...");
run_program("/sbin/busybox", "sleep", "4");
package_extract_dir("Kronos/sanal.tus.yok/build.prop", "/system");
endif;

Mavi: Mod adı ve seçim uygulanırken ekranda görünecek yazı.
Yeşil; Seçime uygun Edify kodu. Geliştiriciler bu kodları bilirler genelde.
Kırmızı; Bu çok önemli. Hangi mod için yazılıyorsa onun .prop adı olmalı. Yoksa çalışmaz.
Her mod için scripte kod eklemek gereklidir.


Aşağıda örnek bir aroma-config ve updater-script örneği var.
1. aroma-config

### INFO:
#
# * AROMA Resource Dir = META-INF/com/google/android/aroma
#
# * AROMA Temporary Dir = /tmp/aroma/
#
###

###################################################################################################################
#
# Initializing Rom Information
#
ini_set("rom_name", "Lollipop by Kronos");
ini_set("rom_version", "V1");
ini_set("rom_author", "Kronos");
ini_set("rom_device", "GM-ETAB5");
ini_set("rom_date", "1 Ocak 2016");

###################################################################################################################
#
# Show Simple Splash
#
splash(
# #-- Duration 3000ms / 3 seconds
3000,

#-- <AROMA Resource Dir>/Kronos.png
"Kronos"
);

# Set Small Font to Support all fonts
loadlang("langs/tr.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "10" ); #-- "0" = Small Font ( Look at Fonts & UNICODE Demo Below )
fontresload( "1", "ttf/Roboto-Regular.ttf", "16" ); #-- "1" = Big Font
theme("sense");

###################################################################################################################
#
# View Information
#
viewbox(
"",
"Yüklenecek dosya: <b>"+
ini_get("rom_name")+
"</b>-<b>"+ini_get("rom_device")+"</b>.\n\n"+
" <@left>ROM BİLGİLERİ\n\n"+
" <@left>YAZILIM ADI\t: <b><#selectbg_g>"+ini_get("rom_name")+"</#></b>\n"+
" <@left>GEÇERLİ CİHAZ\t: <b><#selectbg_g>"+ini_get("rom_device")+"</#></b>\n"+
" <@left>YAYIN TARİHİ\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n"+
" <@left>İleri'ye basarak devam edin.",
"@welcome"
);

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

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

#-- Icon
"@license",

#-- Text Content ( Read from <AROMA Resource Dir>/Kronos.txt )
resread("Kronos.txt"),

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

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

###################################################################################################################
#
# STEP 3 - WIPE
#
checkbox(
# Title
"Data Temizleme İşlemi",

# Sub Title
"/data temizlemek önemlidir.\n\n"+
"<b>Uyuşmama durumunda cihazınız bootloop'a girebilir.</b> .",

# Icon
"@update",

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

#----------------------------------[ Selectbox With Groups ]-----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#
"Data Temizleme", "", 2, #-- Group 1
"/data'yı temizle.", "Temiz bir başlangıç yapın.", 1 #-- item.1.1



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

);

###################################################################################################################
#
# MODIFICATIONS PAGE 1
#
selectbox(
# Title
"Tercihler 1/2 ",

# Sub Title
"Çok kullanışlı modlar.\n\n"+
"<b>Seçiminizi yapıp ilerleyin.</b>",

# Icon
"@customize",

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

#----------------------------------[ Selectbox With Groups ]-----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#
"Sanal Tuşlar", "", 2, #-- Group 1
"Aktif", "Sanal Tuşları kullanın.", 0, #-- selected.1 = 1
"Devre Dışı", "Ekranda Tuşlar açılmaz.", 1 #-- selected.1 = 2

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

);

###################################################################################################################
#
# MODIFICATIONS PAGE 2
#
selectbox(
# Title
"Tercihler 2/2 ",

# Sub Title
"Çok kullanışlı modlar.\n\n"+
"<b>Seçiminizi yapıp ilerleyin.</b>",

# Icon
"@customize",

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

#----------------------------------[ Selectbox With Groups ]-----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#
"Root Erişimi-SuperSu", "", 2, #-- Group 1
"Aktif", "Cihaz rootlanır.", 0, #-- selected.1 = 1
"Devre Dışı", "Cihaz rootlanmaz.", 1 #-- selected.1 = 2

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

);

##
#
# Next Screen is Installation UI, So change the next button text to "Install Now"
#
ini_set("text_next", "Install Now");

###################################################################################################################
#
# STEP 9 - MAKE SURE USER KNOW THAT NEXT STEP WAS INSTALLATION PROCESS
#
viewbox(
#-- Title
"Herşey hazır.",

#-- Text
"Yükleme işlemi başlatılacak.\n\n"+
"forum.turkdevs.com/@Kronos",

#-- Icon
"@install"
);

##
#
# Next Screen is Installation UI, So change the next button text to "Install Now"
#
ini_set("text_next", "Install Now");

###################################################################################################################
#
# STEP 10 - INSTALLATION PROCESS
#
setvar("retstatus",
install(
#-- Title
"İlerleme",

#-- Installation Process message
"<b>"+ini_get("rom_name")+"</b> yükleniyor.\n\n"+
"Lütfen şu dosyanın yüklenmesini bekleyin; <b>"+ini_get("rom_name")+
"</b>. Bu birkaç dakika sürebilir.",

#-- Installation Icon
"@install",

#-- Installation Finish Message
"Şu dosya başarıyla yüklendi; <b>"+ini_get("rom_name")+
"</b>. Devam edin."
)
);

###################################################################################################################
#
# STEP 11 - FINISH MESSAGE, Add Checkbox to Reboot or No. Save in "reboot_it" variable
#
# You can use return value or "reboot_it" variable to retrive checkbox value
# Example:
# if (checkviewbox(....)=="1" then
# ... checked ...
# endif;
#
checkviewbox(
#-- Title
"Yükleme tamamlandı.",

#-- Text
"<#selectbg_g><b>Harika...</b></#>\n\n"+
"<b>"+ini_get("rom_name")+"</b> cihazınıza yüklendi..\n\n"+
"Installer Status: "+getvar("retstatus")+"\n\n",

#-- Icon
"@welcome",

#-- Checkbox Text
"Cihazınızı şimdi yeniden başlatın.",

#-- Initial Checkbox value ( 0=unchecked, 1=checked ) - (Optional, default:0)
"1",

#-- Save checked value in variable "reboot_it" (Optional)
"reboot_it"
);

###
#
# Check if reboot checkbox was checked
if
getvar("reboot_it")=="1"
then
#
# reboot("onfinish"); - Reboot if anything finished
# reboot("now"); - Reboot Directly
# reboot("disable"); - If you set reboot("onfinish") before, use this command to revert it.
#
reboot("onfinish");
endif;

#---- FINISH


2. updater-script
ui_print(">>Lollipop for GM-ETAB5 1st Version by Kronos");
ui_print("------------------------------------------------------------------------------------------------");
ui_print(">>Yükleme işlemi başladı.");
ui_print("------------------------------------------------------------------------------------------------");
ui_print(">>forum.turkdevs.com/@Kronos");
ui_print("------------------------------------------------------------------------------------------------");
run_program("/sbin/busybox", "sleep", "4");
ifelse(is_mounted("/system"), unmount("/system"));
show_progress(1, 40);
ui_print(">>Sistem yükleniyor...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");
package_extract_file("system.img", "/dev/block/mmcblk0p5");
ui_print("------------------------------------------------------------------------------------------------");
ui_print(">>Kernel yükleniyor...");
package_extract_file("boot.img", "/dev/bootimg");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");

# ===========================Data Temizleme İşlemi============================
if file_getprop("/tmp/aroma-data/wipe.prop","item.1.1") == "1" then
ui_print(">>/data/media temizlenmeden /data temizleniyor...");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
delete_recursive("/data/data");
delete_recursive("/data/app");
delete_recursive("/data/system");
delete_recursive("/data/dalvik-cache");
delete_recursive("/data/app-asec");
delete_recursive("/data/app-lib");
delete_recursive("/data/app-private");
delete_recursive("/data/properties");
delete_recursive("/data/misc");
delete_recursive("/data/user");
delete_recursive("/data/backup");
delete_recursive("/data/resource-cache");
endif;

# ===========================Sanal Tuşlar============================
show_progress(0.6, 11);
if file_getprop("/tmp/aroma-data/mods.prop","selected.1") == "1" then
ui_print(">>Sanal Tuş Açma Paketi şurada; /sdcard, dosyayı yükleyin.");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
package_extract_dir("Kronos/SoftKey", "/sdcard");
endif;

if file_getprop("/tmp/aroma-data/mods.prop","selected.1") == "2" then
ui_print(">>Sanal Tuşlar kapatıldı...");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
endif;

# ===========================Root Erişimi-SuperSu============================
if file_getprop("/tmp/aroma-data/mods2.prop","selected.1") == "1" then
ui_print(">>Root Paketi şurada; /sdcard, dosyayı yükleyin.");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
package_extract_dir("Kronos/SuperSu", "/sdcard");
endif;

if file_getprop("/tmp/aroma-data/mods2.prop","selected.1") == "2" then
ui_print(">>Cihaz Root edilmedi...");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
endif;

show_progress(0.200000, 10);
ui_print(">>Logo yükleniyor...");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
package_extract_dir("logo.bin", "/dev/logo");
unmount("/system");
ui_print(">>Bi saniye...");
run_program("/sbin/busybox", "sleep", "4");
ui_print("------------------------------------------------------------------------------------------------");
package_extract_dir("Kronos/data", "/data");
set_perm_recursive(0, 0, 0755, 0644, "/data/nvram/APCFG/APRDCL");
ui_print(">>Yükleme işlemi tamamlandı...");
ui_print("------------------------------------------------------------------------------------------------");
ui_print(">>Kronos");
run_program("/sbin/busybox", "sleep", "2");
ui_print("------------------------------------------------------------------------------------------------");
ui_print(">>İyi kullanımlar...");
run_program("/sbin/busybox", "sleep", "2");
ui_print("------------------------------------------------------------------------------------------------");


Bu updater-script ETAB5 içindir. Dikkatli olun.




Hemen buyrun; [hide]
ÖRNEK AROMA by Kronos[/hide]


İyi günler dilerim.

Teşekkür etmeyi unutmayın...

 
Son düzenleme:

Resurrection Remix

Aktif Üye
Kayıtlı Üye
Konu için teşekkürler.

Aroma installer, Android cihazınıza kuracağınız rom'un yükleme aşamasında hangi uygulamalar rom ile birlikte yükleneceklerin seçimleri bize kalıyor.
Zira Aroma Installer olmadan rom'un kurulumu, rom geliştiricisinin bize seçenek bırakmadan doğrudan rom'u kurdurması. Kısaca Aroma Installer'ın tanımı bu.

Şunun gibi:
https%3A%2F%2Fdl.dropboxusercontent.com%2Fu%2F21559131%2FLP-GAPPS%2520SCREENS%2Fscreens.png
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Konu için teşekkürler.

Aroma installer, Android cihazınıza kuracağınız rom'un yükleme aşamasında hangi uygulamalar rom ile birlikte yükleneceklerin seçimleri bize kalıyor.
Zira Aroma Installer olmadan rom'un kurulumu, rom geliştiricisinin bize seçenek bırakmadan doğrudan rom'u kurdurması. Kısaca Aroma Installer'ın tanımı bu.

Şunun gibi:
https%3A%2F%2Fdl.dropboxusercontent.com%2Fu%2F21559131%2FLP-GAPPS%2520SCREENS%2Fscreens.png
Teşekkürler.
 

İsyankar42

Aktif Üye
Kayıtlı Üye
Eline sağlık hocam çok hoş bir konu olmuş ama beni ve benim gibileri baya aştı bu konu o yuzden bikac soru ile isi anlamaya calisacagim bugun sizi biraz yordum kusura bakmayin:(


Simdi ben updater-script yerine benim romun icindeki updater-scripti kullansan sorun cikar mi
Ve bide erobot rom(belki duymusunuzdur) stock tabanli bir rom ve icinde gercekten tam istedigim bir aroma installer var. Acaba onu derleyip kullansam romla uyumluluk sorunu cikar mi?


Yapmayi dusundugum sey bir port romdan update-binary ve update-script almak sonra bunlarin yaninada erobottan duzenledigim aroma-config ve hic dokunmadigim update-binary-installer i alsam sorun yasar miyim
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Aroma derleme sorun çıkarmaz. binary vs. almakta da sorun çıkmaz. Ama özellikle updater-script'e dikkat edin. En önemli olan o. Potansiyel risk taşır.
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
updater-script dosyasını cihaza göre düzenlemeniz gerekir.
 

İsyankar42

Aktif Üye
Kayıtlı Üye


@Kronos hocam cok saolun kurulumu yaptim simdi update-scripti tedt edicegim ancak bu ayarlari benim duzenlenem lazim ve bunun icin sizin yardiminiza ihtiya
[doublepost=1489079226,1489078930][/doublepost]Updater-script sorun cikardi zaten olmasinida beklemiyordum ancak aroma sorunsuz calisti
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Aroma çalışır ancak işi yapan updater-scrip dosyasıdır. Bişey lazımsa buraya yazın. Elimden geleni yaparım.
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Örneğin;
Kod:
package_extract_dir("system.img", "/dev/block/mmcblk0px");
gibi. SYSTEM.IMG dosyasının çıkartıldığı bölüm her cihazda değişir. Bunun gibi yani.
 

İsyankar42

Aktif Üye
Kayıtlı Üye
Peki hocam ben eski updater-scripti(aroma destegi olmayanı) alsam ve bu scripte ui_printleri eklesem aroma ile rom kurulumu basarili olur mu????
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Updater-script sizin cihaza uygunsa yani bir önceki yorumda yazdığım gibi ise sorun olmaz.
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Başka bişey yok, sadece updater-script. Tabi kendiniz mod vs.ekleyecekseniz aroma-config dosyasını da düzenlemeniz gerek. Ayrıca Aroma ekranına adınızı vs. yazacaksanız da bu dosyaya bakmalısınız.
 

Kronos

Yönetme Gücünü Elinde Bulunduran Kişi
Yönetici
Cihazınız ne? Dosyayı haftasonu bana yollayın, hallederim. :)
[doublepost=1489506724,1489506683][/doublepost]Cihazınız ne? Dosyayı haftasonu bana yollayın, hallederim. :)
 
türk porno porno porno izle eryaman escort diyarbakır escort
Üst