Aroma刷机脚本Word文件下载.docx
- 文档编号:19045441
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:21
- 大小:26.72KB
Aroma刷机脚本Word文件下载.docx
《Aroma刷机脚本Word文件下载.docx》由会员分享,可在线阅读,更多相关《Aroma刷机脚本Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
这样我们就可以轻松的以file_getprop在updater-script中访问
file_getprop(“example.prop”,”key1″);
用这样一条简单的命令,file_getprop就会返回“key1”的值也就是“value1”这样我就可以将它用在IF/IFelse的表述中我们所需要的地方。
prop文件中并不限制键值名,换句话说就是可以使用比如.与下划线但必须要注意的
就是键值中绝不可以加入引号。
在ARoma中prop文件属于临时文件而沟通aroma-config和updater-script正是prop文件所以我们必须知道prop文件的默认保存目录,即/tmp/aroma-data/
所以我们像这样使用prop文件
writetmpfile(“test.prop”,”key1=ok”);
test.prop文件会被定位在/tmp/aroma-data/test.prop
比如说像这样的示例:
Aroma-config代码
writetmpfile(
“kernel.prop”,
“snq=yes
“+
“call.2way=no
“
);
updater-script代码
if
file_getprop(“/tmp/aroma-data/kernel.prop”,”snq”)==“yes”
then
#InstallKernel
write_raw_image(“/tmp/boot.img”,“boot”);
endif;
file_getprop(“/tmp/aroma-data/kernel.prop”,”call.2way”)==“yes”
#DoSomethinghere
else
因为这样的一个特殊性使得Aroma得到了定制安装这样一个功能
if和ifelse
Edify只支持有限的控制结构,只支持if和ifelse。
但是只拥有这个结构就已经足以创建一个交互的安装器
If结构的基本语法是:
“comparison”==”comparison”
..commands..
ifelse的结构是:
..truecommands..
..falsecommands..
Aroma中没有任何迭代/循环控制结构,界面中的Next和Back由程序自动操控。
比较和逻辑运算
Edifyscript不支持算术运算符,但它支持简单比较和逻辑运算符,就像其它基于C语言的程序设计语言(java,php,javascript)一样,它使用简单运算符语法。
#Equal
val1==val2
#NotEqual
val1!
=val2
#Or
val1||val2
#And
val1&
&
val2
#Not
!
val1
#Logical&
Comparison
(val1==val2)||(val3!
=val4)
(val1==val2)&
(val3!
((val1==val2)&
=val4))
是的,它不支持小于和大于比较,因为它只支持字符串和布尔字符串。
整数比较用cmp函数,但它只在aroma-config脚本中支持。
字符串和转义字符
幸运的是Edify支持一般字符串语法,它也支持转义字符为换行符。
Edify中的字符串以双引号(”)定义并以双引号结束。
下面是Edify中字符串的基本操作示例:
示例:
#Newlineuse
:
“Hi,AROMAInstalleris
AWSOME!
”
#Concatmultiplelines:
“LoremIpsumDoloresit
“Amet,loremipsumdolore
“sitamet,loremipsum
“doloresitamet.”
#EscapeCharacters:
“YoucanaddTabs,”Quote,\Backslash…”
#HexCharacters:
“ItwascharacterA:
x41″
Edify中不支持的运算符
很多在一般程序设计文件中使用的运算符不被edify支持,像在变量中插入东西的assignment运算符、在整数中操控位数的bitwise运算符及进行简单数学运算的算术运算符。
所有这些限制已经通过函数添加(除了bitwise),但仅支持简单的操作并仅在aroma-config脚本中有效。
WizardUI
WizardUI是AROMAInstaller主要的用户界面,它就像一般计算机安装程序(WindowsInstaller、NSISInstallSystem、InstallShield)一样在导航栏有Back和Next按钮,用户可以通过屏幕导航,如果配置有错误还可以回到前一屏。
用户可以选择典型(Typical)或自定义(Customize)安装,可以自定义安装包来安装。
AROMAInstaller支持许多WizardUI,
下面是完整的UI列表:
?
checkbox
复选框,用来显示编组列表复选框的界面,选中的条目将保存为prop格式并可以被file_getprop访问。
selectbox
单选框,与checkbox类似,但一组中只能选取一个项目。
textbox
文本框,它用来显示文本框,它可以读取文本文件的内容并显示的文本框内。
viewbox
与文本框(Textbox)类似,但不能滚动,且只支持有限的文本长度)。
agreebox
与文本框(Textbox)类似,但有协议复选框,用户在复选框没有选中的情况下不能进入下一页,用来显示软件使用许可非常有用。
menubox
此界面用来显示可供选择的菜单列表,没有Next按错,因为当用户选中条目,它将自动进入下一页,并且选中的菜单将保存在临时prop文件中。
DialogUI
WizardUI界面是全屏显示,DialogUI界面是弹出式窗口,在一些时候是很有用的,像显示“AreYouSurewanttoformatthepartitions?
(你确认要格式化分区吗?
)”的确认,或显示“ThanksforusingmyROM(感谢使用我的ROM)”的提示/警告对话框。
下面是AROMAInstaller中DialogUI的完整列表:
alert
显示弹出对话框,有文本长度限制且只一个OK按钮。
confirm?
显示弹出对话框,有文本长度限制,有Yes和No两个按钮,Yes返回“ture”值,No返回“false”值。
textdialog
显示滚动文本弹出对话框,支持长文本长度,只显示OK按钮。
SplashUI
此UI在显示下一页前以自定义的延迟用png文件显示动画。
图像将自动依据图像大小显示在屏幕中央,背景将模糊为最暗的颜色。
splash(2000, ”sample”)
anisplash(4,Aroma/splash/a[1..6].png
“splash/a1″,500,
“splash/a2″,30,
“splash/a3″,30,
“splash/a4″,30,
“splash/a5″,30,
“splash/a6″,30
InstallerUI
当配置调用安装界面,将开始一个安装,并在最上面的窗口显示有文字描述的installerUI,安装信息文本框在中间,屏幕底部是进度文本和进度条。
安装不能取消,在安装结束前没有按钮和菜单供选择,Next和SaveLogs按钮将在安装结束后显示。
下一个WizardUI不能执行Back命令返回这个installerUI,所以installerUI只是在刷写过
程中显示一次。
AROMAInstaller支持什么函数
你可以按需要使用许多函数,对安装有用的一般函数都是可用的,但不支持非常复杂的。
AROMAInstaller支持简单比较,数学、系统分区信息及简单的设置、获取变量。
下面是可用函数列表:
setcolor
设置界面颜色方案
ini_set
设置Aroma配置设置
calibrate
校准触摸屏
getvar
获取变量
setvar
设置变量
appendvar
追加字符串到变量
prependvar
前置字符串到变量
file_getprop
从prop文件获取某些键的prop值
readfile
从zip文件读取文本文件
readfile_aroma
ReadtextfilefromzipcontentrelativelyfromaromaMETA-INFfolder.从与zip文件相对应的aromaMETA-INF文件夹读取文本文件。
getdisksize
获取分区总大小
getdiskfree
获取分区未使用部分大小
getdiskusedpercent
获取分区使用大小的百分比
cmp
简单整数比较(>
<
==,>
=,<
=,!
=)
cal
简单数学计算(+,-,/,*)
iif
Inlineif
ifelse
IfandElseStatement
pleasewait
显示pleasewait/计算时加载进度/进行占用时间较多的进程
writetmpfile
以文本形式写入/创建临时文件
exit
终止安装
配置函数
setcolor(设置颜色)
设置AROMAInstaller配色方案,它也可以通过theme.prop文件定义。
语法:
setcolor(colorname,hexcolor);
参数:
colorname
设置的颜色名称,渐变色名称中含有“_g”。
winbg,winbg_g
主要/最上面窗口背景
winfg
主要/最上面文字前景
winfg_gray
主要/最上面灰色文字前景
dialogbg,dialogbg_g
弹窗背景(Alert,Confirm,About)
dialogfg
弹窗文字前景
textbg,textbg_g
Textbox,Checkbox及任何可滚动界面背景
textfg
Textbox,Checkbox及任何可滚动界面文字前景
textfg_gray
灰色文字(Optionbox/Checkbox项目描述)
controlbg,controlbg_g
Control(控件)/Button(按钮)/Checkboxborder(复选框边界)-背景色
controlfg
按钮文字颜色
selectbg,selectbg_g
选中元素的背景(忙碌?
/焦点/按钮/条目等)
selectfg
选中元素的文本/前景色
titlebg,titlebg_g
窗口标题背景
titlefg
窗口标题文本前景色
navbg,navbg_g
底栏(导航栏)背景,下一个-前一个区域
scrollbar
滚动指示条颜色
border,border_g
普通边界颜色
progressglow
进度条动画颜色
hexcolor
16进制RGB颜色。
它支持以#字开头的3和6位16进制字符,例如”#a8e”or“#ff5599″。
#SetColorwith3charshexcolor
setcolor(“winbg”,“#444″);
setcolor(“winbg_g”,“#222″);
setcolor(“textbg”,“#333″);
setcolor(“textfg”,“#fff”);
#SetColorwith6charshexcolor
setcolor(“textfg_gray”,“#bbbbbb”);
setcolor(“controlbg”,“#446699″);
setcolor(“controlbg_g”,“#223355″);
ini_set
设置AROMAInstaller配置选择的值。
setcolor(configname,newvalue);
configname
设置的配置名称。
roundsize
设置普通控件圆角矩形圆角的大小(默认:
”3″)
button_roundsize:
设置按钮控件圆角矩形圆角的大小(默认:
”2″)
window_roundsize
设置主窗口圆角矩形圆角的大小(默认:
”4″)
transition_frame
设置过渡帧的数量(默认:
”5″)
text_ok
设置OK键文字(默认:
”OK”)
text_next
设置Next键文字(默认:
”Next>
”)
text_back
设置Back键文字(默认:
”<
Back”)
text_yes
设置默认Yes键文字(默认:
”Yes”)
text_no
设置默认No键文字(默认:
”No”)
text_about
设置About菜单文字(默认:
”About&
Informations”)
text_calibrating
设置校准菜单文字(默认:
”CalibratingTools”)
text_quit
设置退出菜单文字(默认:
”QuitInstallation”)
text_quit_msg
设置退出配置信息(默认:
”AreyousuretoquittheInstaller?
rom_name
设置ROM名称信息
rom_version
设置ROM版本信息
rom_author
设置ROM作者信息
rom_device
设置ROM设备信息
customkeycode_up
设置向上键功能(导航键上)
customkeycode_down
设置向下键功能(导航键下)
customkeycode_select
设置选择键功能(选择一个条目)
customkeycode_back
设置返回键功能
customkeycode_menu
设置菜单键功能
newvalue
配置名称的新值
#SetROMInformations
ini_set(“rom_name”,“TrickDroid”);
ini_set(“rom_version”,“8.1.0″);
ini_set(“rom_author”,“amarullz”);
ini_set(“rom_device”,“HTCOneS”);
#SetCustomText
ini_set(“text_ok”,“OKMan”);
ini_set(“text_next”,“>
>
”);
ini_set(“text_back”,“<
<
#SetAlternativeKeyCode–Youcanusekeycapturetool
#tocaptureyourdevicekeycode
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(校准)
设置触摸屏校准数据。
不同的设备可能有不同的触摸屏校准数据,为了获得校准数据,按menu,选择校准工具然后按
提示操作。
calibrate(divx,addx,divy,addy[,alternative_method]);
divx
横向触摸屏分辨率
addx
水平调整附加值
divy
纵向触摸屏分辨率
addy
垂直调整附加值
alternative_method
[可选]?
如果普通方法不适用的替代方法(默认:
”no”)
示例:
#HTCOneSCalibratedData
calibrate(“0.9610″,”11″,”0.9527″,”22″);
#AlternativemethodCalibratedData
calibration(“1.8447″,“37″,“1.2158″,“27″,“yes”);
脚本?
命令
ui_print(“@
Title”);
设置刷机进度说明的命令
例:
System分区格式化完毕”)
set_progress(0.5);
设置刷机进度的命令
如:
format(“MTD”,“system”);
set_progress(0.05);
#格式化System分区后进度条前进百分之5
#0=0%0.5=50&
1=100%
show_progress(0.2,400);
同样也是设置刷机进度的与前者不同的是这条命令需要附加一个条件才可能成立,括号里0.2指的是刷机进度,400指的是要处理的文件数
意思是:
在处理了400个文件后进度条增加百分之2
show_progress(0.02,500);
mount(“ext4″,“EMMC”,“/dev/block/mmcblk0p12″,“/system”);
意思是挂载system分区,也就是12分区,因为要对12分区写入文件,
所以必须先对12分区进行挂载,只有挂载以后才可以进行下一步操作。
unmount(“/system”);
与之前的命令不同的是这句是对System分区进行卸载
format(“ext4″,“EMMC”,“/dev/block/mmcblk0p12″,“0″);
用简洁的语言介绍下那就是格式化system分区值得一提的是
EMMC和MTD是不一样的哦具体的情况请询问度娘完毕(哗)
package_extract_dir(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Aroma 脚本