什么是运行莫?
说明:运行莫是一个具有简化开发流程的工具,它是由多个 Rule规则 组成的一个文件。 运行文件会自动匹配,当文件运行到能完全匹配的Rule规则,就会进行对apk工程的自动修改工作。并且终止继续向下匹配剩下的 Rule规则。如果没有完全匹配的Rule规则,程序将一直对比文件中所有的Rule规则,如果没有匹配到Rule规则,最后将显示出匹配过程的节点日志。
1. 文件头示范
<?xml version="1.0"?>
2. Properties 示范
说明:Properties 用于包裹运行莫的根属性
<Properties>
xxxxxx 全部代码...
</Properties>
Properties的子属性
AdText:用于添加广告,如执行到最后没有匹配到Rule规则将不会添加此广告。如果匹配到并修改了apk,广告只会增加一次。
Properties的子属性示范
<Properties AdText="www.baidu.com Share!">
xxxxxx 全部代码...
</Properties>
3. Rule 示范
说明:Rule 用于包裹规则代码的属性,一个写好的文件里应该会有几个 Rule规则
<?xml version="1.0"?>
<Properties>
<Rule>
xxxxxx 规则代码...
</Rule>
<Rule>
xxxxxx 规则代码...
</Rule>
<Rule>
xxxxxx 规则代码...
</Rule>
</Properties>
3. 填充规则
说明:用于指定位置填充代码,填充规则支持自命名。
<Item Name="tianchong1" File="\smali\com\a.smali" Front="a" Behind="b" Examine="true">
需要填充的代码
</Item>
属性说明:
Name:规则命名
File:指定文件,如果不确定文件可赋予:?,可进行搜索文件。
Front:搜索代码语句范围A
Behind:搜索代码语句范围B
Examine:如果找不到此范围是否退出当前规则,并进入下一规则。如果是false将忽视进入下一条代码。
示范:
假设\smali\com\a.smali 文件代码:
abcde
123456
7890
规则代码示范:
<?xml version="1.0"?>
<Properties>
<Rule>
<Item Name="tianchong2" File="\smali\com\a.smali" Front="abcde" Behind="7890" Examine="true">
654321
</Item>
</Rule>
</Properties>
规则运行结果:
abcde
654321
7890
4. 替换规则
说明:用于替换字符。
<Item Name="Replace" File="\smali\com\a.smali" Front="被替换的字符" Behind="代替的新字符" Examine="true">
</Item>
5. 复制文本至剪切板
说明:用于复制代码文本至剪切板,使用 [+-] 可进行粘贴代码。
<Item Name="Copy" File="\smali\com\a.smali" Front="范围前段代码" Behind="范围后段代码" Examine="true">
</Item>
示范:
假设\smali\com\a.smali 文件代码:
abcde
123456
7890
规则代码示范:
<?xml version="1.0"?>
<Properties>
<Rule>
<Item Name="Copy" File="\smali\com\a.smali" Front="bcd" Behind="56" Examine="true">
</Item>
<Item Name="tianchong2" File="\smali\com\a.smali" Front="56" Behind="78" Examine="true">
654321
[+-]
</Item>
</Rule>
</Properties>
规则运行结果:
abcde
123456
654321
e
1234
7890
6. 清除剪切板
说明:用于清除复制代码的剪切板。
<Item Name="Empty" File="" Front="" Behind="" Examine="true">
</Item>
7. 转移代码
说明:用于将指定代码块转移并填充另一指定的代码块。
<Item Name="Substitute" File="\smali\com\a.smali" Front="指定范围代码a^指定范围代码b" Behind="指定范围代码c^指定范围代码d" Examine="true">
[-+]
</Item>
示范:
假设\smali\com\a.smali 文件代码:
abcde
123456
7890
规则代码示范:
<?xml version="1.0"?>
<Properties>
<Rule>
<Item Name="Substitute" File="\smali\com\a.smali" Front="12^56" Behind="ab^e" Examine="true">
11[-+]22
</Item>
</Rule>
</Properties>
规则运行结果:
ab113422e
123456
7890
8. 文件对象属性指定 File
说明:规则中的 File属性,指定的值可使用“?”符号来进行代替。如果设置为“?”后,将进行搜索文件方式。将搜索所有文件,不用自己指定文件,此功能适用于以上所有子规则。
示范:
<Item Name="Replace" File="?" Front="被替换的字符" Behind="代替的新字符" Examine="true"></Item>
<Item Name="tianchong2" File="?" Front="范围a" Behind="范围b" Examine="true">
填充的代码
</Item>
略.......等等