什么是运行莫?

说明:运行莫是一个具有简化开发流程的工具,它是由多个 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>
略.......等等