Aroma Install 傻瓜ROM制作1
本帖最后由 1170888181 于 2013-8-24 22:37 编辑-------------------------公告-------------------------------
使用新版本是一定要对Aroma-config和updater-script进行签名的否则出现什么后果我可不知道{:3_50:}(是真不知道这点请基友自测{:3_57:})请大家相信我!
是在线签名的 附链接地址:http://www.amarullz.com/signer/以上!
一.Aroma Install 启动启动原理Aroma和一般刷机包的区别就在于多出了
aroma-configupdate-binary-installer以及一个 Aroma 的一个资源目录Aroma的启动过如下:首先Recover会先从ZIP固件包中提取Update-binary 并运行,这一步普通的固件包也是这样的,接下来普通固件包会直接运行Update-script 也就是我们经常说的刷机脚本,与之不同的是Aroma的刷机包接着会解析 Aroma-config(Aroma-config这是一个UI配置文件)并加载UI以及各种命令,随后主导权交由用户,在完成一系列的选择后Aroma会运行 update-binary-installer紧接着解析并运行 Update-script 里面的命令然后整个刷机过程就结束了。大概就是这么个情况。
Aroma Install 语法及命令(1/2)
·aroma-config和updater-script之间的链接是通过临时文件。·prop文件是以 = 作为键和值之间分隔符的简单纯文本格式,以新行作为一个键值与另一个键值之间的分隔符。
例如:key1=value1key2=value2key_3=value3last.name=amarullz
这样我们就可以轻松的以file_getprop在updater-script中访问
例如:·file_getprop("example.prop","key1");
用这样一条简单的命令,file_getprop就会返回“key1”的值也就是“value1”这样我就可以将它用在 IF/IF else 的表述中我们所需要的地方。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\n"+"call.2way=no\n");
updater-script代码
iffile_getprop("/tmp/aroma-data/kernel.prop","snq") == "yes"then# Install Kernelwrite_raw_image("/tmp/boot.img", "boot");endif;
iffile_getprop("/tmp/aroma-data/kernel.prop","call.2way") == "yes"then# Do Something hereelse# Do Something hereendif;
因为这样的一个特殊性使得Aroma得到了定制安装这样一个功能·if 和 if elseEdify只支持有限的控制结构,只支持if和if else。但是只拥有这个结构就已经足以创建一个交互的安装器If结构的基本语法是:
if"comparison"=="comparison"then.. commands ..endif;
if else的结构是:
if"comparison"=="comparison"then.. true commands ..else.. false commands ..endif;
Aroma中没有任何迭代/循环控制结构,界面中的Next和Back由程序自动操控。
·比较和逻辑运算
Edify script不支持算术运算符,但它支持简单比较和逻辑运算符,就像其它基于C语言的程序设计语言(java,php,javascript)一样,它使用简单运算符语法。
例如:# Equalval1 == val2
# Not Equalval1 != val2
# Orval1 || val2
# Andval1 && val2
# Not!val1
# Logical & Comparison(val1 == val2)||(val3 != val4)
(val1 == val2)&&(val3 != val4)
!((val1 == val2)&&(val3 != val4))
是的,它不支持小于和大于比较,因为它只支持字符串和布尔字符串。整数比较用cmp函数,但它只在aroma-config脚本中支持。
支持楼主,学习下 技术贴看不懂定露珠 西门小兵汉化的post2.3就是用的这个软件封装的,呵呵 路过............... 完全怒不知道楼主再说什么 我晕你。小白,晕,aroma这个软件是用来封装刷机包的,就和电脑上边封装系统一个道理,哎呀,我感觉自己不会解释。就是刷机包用这个软件封装之后,可以用图形界面智能安装,或者选择性安装,个性化比较强。以前卡卡刷包,不是一开始刷机,就不用管了么。这个选择性很多,我晕,不知道怎么解释了,我 觉得,要看懂这个解释要么电脑不错,要么手机不错,但是感觉你回复很难小白 顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶 支持啦,,,, 不明觉厉
页:
[1]
2