以我的ST18i国行4.0.2.A.0.62系统为例。
一、首先准备所需工具:
① 配置Java环境,然后下载“apktool.jar”“aapt.exe”,这两个文件放在同一个文件夹,例如“C:\ApkTool”
② 用RE管理器从手机“/system/framework”中提取“framework-res.apk”文件也放在这个目录
二、CMD进入“C:\ApkTool”目录,并加载所需框架:
CD \ CD ApkTool java -jar apktool.jar if framework-res.apk
三、解包“framework-res.apk”得到“framework-res”文件夹:
java -jar apktool.jar d framework-res.apk
四、替换“\res\drawable-hdpi”目录下的电量图标为新的“stat_sys_battery_0.png ~ stat_sys_battery_100.png”。
五、修改“\res\values\public.xml”文件:
将如下代码:
<public type="drawable" name="stat_sys_battery_0" id="0x0108044f" />
<public type="drawable" name="stat_sys_battery_10" id="0x01080450" />
<public type="drawable" name="stat_sys_battery_100" id="0x01080451" />
<public type="drawable" name="stat_sys_battery_15" id="0x01080452" />
<public type="drawable" name="stat_sys_battery_20" id="0x01080453" />
<public type="drawable" name="stat_sys_battery_25" id="0x01080454" />
<public type="drawable" name="stat_sys_battery_30" id="0x01080455" />
<public type="drawable" name="stat_sys_battery_35" id="0x01080456" />
<public type="drawable" name="stat_sys_battery_40" id="0x01080457" />
<public type="drawable" name="stat_sys_battery_45" id="0x01080458" />
<public type="drawable" name="stat_sys_battery_5" id="0x01080459" />
<public type="drawable" name="stat_sys_battery_50" id="0x0108045a" />
<public type="drawable" name="stat_sys_battery_55" id="0x0108045b" />
<public type="drawable" name="stat_sys_battery_60" id="0x0108045c" />
<public type="drawable" name="stat_sys_battery_65" id="0x0108045d" />
<public type="drawable" name="stat_sys_battery_70" id="0x0108045e" />
<public type="drawable" name="stat_sys_battery_75" id="0x0108045f" />
<public type="drawable" name="stat_sys_battery_80" id="0x01080460" />
<public type="drawable" name="stat_sys_battery_85" id="0x01080461" />
<public type="drawable" name="stat_sys_battery_90" id="0x01080462" />
<public type="drawable" name="stat_sys_battery_95" id="0x01080463" />
替换为:
<public type="drawable" name="stat_sys_battery_0" id="0x0108044f" />
<public type="drawable" name="stat_sys_battery_1" id="0x01080450" />
<public type="drawable" name="stat_sys_battery_2" id="0x01080451" />
<public type="drawable" name="stat_sys_battery_3" id="0x01080452" />
<public type="drawable" name="stat_sys_battery_4" id="0x01080453" />
<public type="drawable" name="stat_sys_battery_5" id="0x01080454" />
<public type="drawable" name="stat_sys_battery_6" id="0x01080455" />
<public type="drawable" name="stat_sys_battery_7" id="0x01080456" />
<public type="drawable" name="stat_sys_battery_8" id="0x01080457" />
<public type="drawable" name="stat_sys_battery_9" id="0x01080458" />
<public type="drawable" name="stat_sys_battery_10" id="0x01080459" />
<public type="drawable" name="stat_sys_battery_11" id="0x0108045a" />
<public type="drawable" name="stat_sys_battery_12" id="0x0108045b" />
<public type="drawable" name="stat_sys_battery_13" id="0x0108045c" />
<public type="drawable" name="stat_sys_battery_14" id="0x0108045d" />
<public type="drawable" name="stat_sys_battery_15" id="0x0108045e" />
<public type="drawable" name="stat_sys_battery_16" id="0x0108045f" />
<public type="drawable" name="stat_sys_battery_17" id="0x01080460" />
<public type="drawable" name="stat_sys_battery_18" id="0x01080461" />
<public type="drawable" name="stat_sys_battery_19" id="0x01080462" />
<public type="drawable" name="stat_sys_battery_20" id="0x01080463" />
<public type="drawable" name="stat_sys_battery_21" id="0x0108052d" />
<public type="drawable" name="stat_sys_battery_22" id="0x0108052e" />
<public type="drawable" name="stat_sys_battery_23" id="0x0108052f" />
<public type="drawable" name="stat_sys_battery_24" id="0x01080530" />
<public type="drawable" name="stat_sys_battery_25" id="0x01080531" />
<public type="drawable" name="stat_sys_battery_26" id="0x01080532" />
<public type="drawable" name="stat_sys_battery_27" id="0x01080533" />
<public type="drawable" name="stat_sys_battery_28" id="0x01080534" />
<public type="drawable" name="stat_sys_battery_29" id="0x01080535" />
<public type="drawable" name="stat_sys_battery_30" id="0x01080536" />
<public type="drawable" name="stat_sys_battery_31" id="0x01080537" />
<public type="drawable" name="stat_sys_battery_32" id="0x01080538" />
<public type="drawable" name="stat_sys_battery_33" id="0x01080539" />
<public type="drawable" name="stat_sys_battery_34" id="0x0108053a" />
<public type="drawable" name="stat_sys_battery_35" id="0x0108053b" />
<public type="drawable" name="stat_sys_battery_36" id="0x0108053c" />
<public type="drawable" name="stat_sys_battery_37" id="0x0108053d" />
<public type="drawable" name="stat_sys_battery_38" id="0x0108053e" />
<public type="drawable" name="stat_sys_battery_39" id="0x0108053f" />
<public type="drawable" name="stat_sys_battery_40" id="0x01080540" />
<public type="drawable" name="stat_sys_battery_41" id="0x01080541" />
<public type="drawable" name="stat_sys_battery_42" id="0x01080542" />
<public type="drawable" name="stat_sys_battery_43" id="0x01080543" />
<public type="drawable" name="stat_sys_battery_44" id="0x01080544" />
<public type="drawable" name="stat_sys_battery_45" id="0x01080545" />
<public type="drawable" name="stat_sys_battery_46" id="0x01080546" />
<public type="drawable" name="stat_sys_battery_47" id="0x01080547" />
<public type="drawable" name="stat_sys_battery_48" id="0x01080548" />
<public type="drawable" name="stat_sys_battery_49" id="0x01080549" />
<public type="drawable" name="stat_sys_battery_50" id="0x0108054a" />
<public type="drawable" name="stat_sys_battery_51" id="0x0108054b" />
<public type="drawable" name="stat_sys_battery_52" id="0x0108054c" />
<public type="drawable" name="stat_sys_battery_53" id="0x0108054d" />
<public type="drawable" name="stat_sys_battery_54" id="0x0108054e" />
<public type="drawable" name="stat_sys_battery_55" id="0x0108054f" />
<public type="drawable" name="stat_sys_battery_56" id="0x01080550" />
<public type="drawable" name="stat_sys_battery_57" id="0x01080551" />
<public type="drawable" name="stat_sys_battery_58" id="0x01080552" />
<public type="drawable" name="stat_sys_battery_59" id="0x01080553" />
<public type="drawable" name="stat_sys_battery_60" id="0x01080554" />
<public type="drawable" name="stat_sys_battery_61" id="0x01080555" />
<public type="drawable" name="stat_sys_battery_62" id="0x01080556" />
<public type="drawable" name="stat_sys_battery_63" id="0x01080557" />
<public type="drawable" name="stat_sys_battery_64" id="0x01080558" />
<public type="drawable" name="stat_sys_battery_65" id="0x01080559" />
<public type="drawable" name="stat_sys_battery_66" id="0x0108055a" />
<public type="drawable" name="stat_sys_battery_67" id="0x0108055b" />
<public type="drawable" name="stat_sys_battery_68" id="0x0108055c" />
<public type="drawable" name="stat_sys_battery_69" id="0x0108055d" />
<public type="drawable" name="stat_sys_battery_70" id="0x0108055e" />
<public type="drawable" name="stat_sys_battery_71" id="0x0108055f" />
<public type="drawable" name="stat_sys_battery_72" id="0x01080560" />
<public type="drawable" name="stat_sys_battery_73" id="0x01080561" />
<public type="drawable" name="stat_sys_battery_74" id="0x01080562" />
<public type="drawable" name="stat_sys_battery_75" id="0x01080563" />
<public type="drawable" name="stat_sys_battery_76" id="0x01080564" />
<public type="drawable" name="stat_sys_battery_77" id="0x01080565" />
<public type="drawable" name="stat_sys_battery_78" id="0x01080566" />
<public type="drawable" name="stat_sys_battery_79" id="0x01080567" />
<public type="drawable" name="stat_sys_battery_80" id="0x01080568" />
<public type="drawable" name="stat_sys_battery_81" id="0x01080569" />
<public type="drawable" name="stat_sys_battery_82" id="0x0108056a" />
<public type="drawable" name="stat_sys_battery_83" id="0x0108056b" />
<public type="drawable" name="stat_sys_battery_84" id="0x0108056c" />
<public type="drawable" name="stat_sys_battery_85" id="0x0108056d" />
<public type="drawable" name="stat_sys_battery_86" id="0x0108056e" />
<public type="drawable" name="stat_sys_battery_87" id="0x0108056f" />
<public type="drawable" name="stat_sys_battery_88" id="0x01080570" />
<public type="drawable" name="stat_sys_battery_89" id="0x01080571" />
<public type="drawable" name="stat_sys_battery_90" id="0x01080572" />
<public type="drawable" name="stat_sys_battery_91" id="0x01080573" />
<public type="drawable" name="stat_sys_battery_92" id="0x01080574" />
<public type="drawable" name="stat_sys_battery_93" id="0x01080575" />
<public type="drawable" name="stat_sys_battery_94" id="0x01080576" />
<public type="drawable" name="stat_sys_battery_95" id="0x01080577" />
<public type="drawable" name="stat_sys_battery_96" id="0x01080578" />
<public type="drawable" name="stat_sys_battery_97" id="0x01080579" />
<public type="drawable" name="stat_sys_battery_98" id="0x0108057a" />
<public type="drawable" name="stat_sys_battery_99" id="0x0108057b" />
<public type="drawable" name="stat_sys_battery_100" id="0x0108057c" />
六、修改“\res\drawable\stat_sys_battery.xml”文件:
将如下代码:
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="2" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="7" />
<item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="12" />
<item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="17" />
<item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="22" />
<item android:drawable="@drawable/stat_sys_battery_25" android:maxLevel="27" />
<item android:drawable="@drawable/stat_sys_battery_30" android:maxLevel="32" />
<item android:drawable="@drawable/stat_sys_battery_35" android:maxLevel="37" />
<item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="42" />
<item android:drawable="@drawable/stat_sys_battery_45" android:maxLevel="47" />
<item android:drawable="@drawable/stat_sys_battery_50" android:maxLevel="52" />
<item android:drawable="@drawable/stat_sys_battery_55" android:maxLevel="57" />
<item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="62" />
<item android:drawable="@drawable/stat_sys_battery_65" android:maxLevel="67" />
<item android:drawable="@drawable/stat_sys_battery_70" android:maxLevel="72" />
<item android:drawable="@drawable/stat_sys_battery_75" android:maxLevel="77" />
<item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="82" />
<item android:drawable="@drawable/stat_sys_battery_85" android:maxLevel="87" />
<item android:drawable="@drawable/stat_sys_battery_90" android:maxLevel="92" />
<item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="97" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
替换为:
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
<item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />
<item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" />
<item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" />
<item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
<item android:drawable="@drawable/stat_sys_battery_6" android:maxLevel="6" />
<item android:drawable="@drawable/stat_sys_battery_7" android:maxLevel="7" />
<item android:drawable="@drawable/stat_sys_battery_8" android:maxLevel="8" />
<item android:drawable="@drawable/stat_sys_battery_9" android:maxLevel="9" />
<item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="10" />
<item android:drawable="@drawable/stat_sys_battery_11" android:maxLevel="11" />
<item android:drawable="@drawable/stat_sys_battery_12" android:maxLevel="12" />
<item android:drawable="@drawable/stat_sys_battery_13" android:maxLevel="13" />
<item android:drawable="@drawable/stat_sys_battery_14" android:maxLevel="14" />
<item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="15" />
<item android:drawable="@drawable/stat_sys_battery_16" android:maxLevel="16" />
<item android:drawable="@drawable/stat_sys_battery_17" android:maxLevel="17" />
<item android:drawable="@drawable/stat_sys_battery_18" android:maxLevel="18" />
<item android:drawable="@drawable/stat_sys_battery_19" android:maxLevel="19" />
<item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="20" />
<item android:drawable="@drawable/stat_sys_battery_21" android:maxLevel="21" />
<item android:drawable="@drawable/stat_sys_battery_22" android:maxLevel="22" />
<item android:drawable="@drawable/stat_sys_battery_23" android:maxLevel="23" />
<item android:drawable="@drawable/stat_sys_battery_24" android:maxLevel="24" />
<item android:drawable="@drawable/stat_sys_battery_25" android:maxLevel="25" />
<item android:drawable="@drawable/stat_sys_battery_26" android:maxLevel="26" />
<item android:drawable="@drawable/stat_sys_battery_27" android:maxLevel="27" />
<item android:drawable="@drawable/stat_sys_battery_28" android:maxLevel="28" />
<item android:drawable="@drawable/stat_sys_battery_29" android:maxLevel="29" />
<item android:drawable="@drawable/stat_sys_battery_30" android:maxLevel="30" />
<item android:drawable="@drawable/stat_sys_battery_31" android:maxLevel="31" />
<item android:drawable="@drawable/stat_sys_battery_32" android:maxLevel="32" />
<item android:drawable="@drawable/stat_sys_battery_33" android:maxLevel="33" />
<item android:drawable="@drawable/stat_sys_battery_34" android:maxLevel="34" />
<item android:drawable="@drawable/stat_sys_battery_35" android:maxLevel="35" />
<item android:drawable="@drawable/stat_sys_battery_36" android:maxLevel="36" />
<item android:drawable="@drawable/stat_sys_battery_37" android:maxLevel="37" />
<item android:drawable="@drawable/stat_sys_battery_38" android:maxLevel="38" />
<item android:drawable="@drawable/stat_sys_battery_39" android:maxLevel="39" />
<item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="40" />
<item android:drawable="@drawable/stat_sys_battery_41" android:maxLevel="41" />
<item android:drawable="@drawable/stat_sys_battery_42" android:maxLevel="42" />
<item android:drawable="@drawable/stat_sys_battery_43" android:maxLevel="43" />
<item android:drawable="@drawable/stat_sys_battery_44" android:maxLevel="44" />
<item android:drawable="@drawable/stat_sys_battery_45" android:maxLevel="45" />
<item android:drawable="@drawable/stat_sys_battery_46" android:maxLevel="46" />
<item android:drawable="@drawable/stat_sys_battery_47" android:maxLevel="47" />
<item android:drawable="@drawable/stat_sys_battery_48" android:maxLevel="48" />
<item android:drawable="@drawable/stat_sys_battery_49" android:maxLevel="49" />
<item android:drawable="@drawable/stat_sys_battery_50" android:maxLevel="50" />
<item android:drawable="@drawable/stat_sys_battery_51" android:maxLevel="51" />
<item android:drawable="@drawable/stat_sys_battery_52" android:maxLevel="52" />
<item android:drawable="@drawable/stat_sys_battery_53" android:maxLevel="53" />
<item android:drawable="@drawable/stat_sys_battery_54" android:maxLevel="54" />
<item android:drawable="@drawable/stat_sys_battery_55" android:maxLevel="55" />
<item android:drawable="@drawable/stat_sys_battery_56" android:maxLevel="56" />
<item android:drawable="@drawable/stat_sys_battery_57" android:maxLevel="57" />
<item android:drawable="@drawable/stat_sys_battery_58" android:maxLevel="58" />
<item android:drawable="@drawable/stat_sys_battery_59" android:maxLevel="59" />
<item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="60" />
<item android:drawable="@drawable/stat_sys_battery_61" android:maxLevel="61" />
<item android:drawable="@drawable/stat_sys_battery_62" android:maxLevel="62" />
<item android:drawable="@drawable/stat_sys_battery_63" android:maxLevel="63" />
<item android:drawable="@drawable/stat_sys_battery_64" android:maxLevel="64" />
<item android:drawable="@drawable/stat_sys_battery_65" android:maxLevel="65" />
<item android:drawable="@drawable/stat_sys_battery_66" android:maxLevel="66" />
<item android:drawable="@drawable/stat_sys_battery_67" android:maxLevel="67" />
<item android:drawable="@drawable/stat_sys_battery_68" android:maxLevel="68" />
<item android:drawable="@drawable/stat_sys_battery_69" android:maxLevel="69" />
<item android:drawable="@drawable/stat_sys_battery_70" android:maxLevel="70" />
<item android:drawable="@drawable/stat_sys_battery_71" android:maxLevel="71" />
<item android:drawable="@drawable/stat_sys_battery_72" android:maxLevel="72" />
<item android:drawable="@drawable/stat_sys_battery_73" android:maxLevel="73" />
<item android:drawable="@drawable/stat_sys_battery_74" android:maxLevel="74" />
<item android:drawable="@drawable/stat_sys_battery_75" android:maxLevel="75" />
<item android:drawable="@drawable/stat_sys_battery_76" android:maxLevel="76" />
<item android:drawable="@drawable/stat_sys_battery_77" android:maxLevel="77" />
<item android:drawable="@drawable/stat_sys_battery_78" android:maxLevel="78" />
<item android:drawable="@drawable/stat_sys_battery_79" android:maxLevel="79" />
<item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="80" />
<item android:drawable="@drawable/stat_sys_battery_81" android:maxLevel="81" />
<item android:drawable="@drawable/stat_sys_battery_82" android:maxLevel="82" />
<item android:drawable="@drawable/stat_sys_battery_83" android:maxLevel="83" />
<item android:drawable="@drawable/stat_sys_battery_84" android:maxLevel="84" />
<item android:drawable="@drawable/stat_sys_battery_85" android:maxLevel="85" />
<item android:drawable="@drawable/stat_sys_battery_86" android:maxLevel="86" />
<item android:drawable="@drawable/stat_sys_battery_87" android:maxLevel="87" />
<item android:drawable="@drawable/stat_sys_battery_88" android:maxLevel="88" />
<item android:drawable="@drawable/stat_sys_battery_89" android:maxLevel="89" />
<item android:drawable="@drawable/stat_sys_battery_90" android:maxLevel="90" />
<item android:drawable="@drawable/stat_sys_battery_91" android:maxLevel="91" />
<item android:drawable="@drawable/stat_sys_battery_92" android:maxLevel="92" />
<item android:drawable="@drawable/stat_sys_battery_93" android:maxLevel="93" />
<item android:drawable="@drawable/stat_sys_battery_94" android:maxLevel="94" />
<item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="95" />
<item android:drawable="@drawable/stat_sys_battery_96" android:maxLevel="96" />
<item android:drawable="@drawable/stat_sys_battery_97" android:maxLevel="97" />
<item android:drawable="@drawable/stat_sys_battery_98" android:maxLevel="98" />
<item android:drawable="@drawable/stat_sys_battery_99" android:maxLevel="99" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
七、将“framework-res”文件夹打包成例如“rrr.apk”:
java -jar apktool.jar b framework-res rrr.apk
八、将新的电量图标及修改得到的文件替换到原来的“framework-res.apk”文件中:
① 将WinRAR的默认压缩方式设为“存储”。
② 将新的电量图标替换到原来的“framework-res.apk”中去。
③ 提取“rrr.apk”中的“resources.arsc”及“stat_sys_battery.xml”文件,替换到原来的“framework-res.apk”中去。这样就得到了新的“framework-res.apk”文件。
九、放回手机:
① 用RE管理器将新的“framework-res.apk”放入手机“/system”目录,修改权限为“第一行勾选前面两个,第二行只勾选第一个,第三行只勾选第一个”
② 用RE管理器将修改好权限的新的“framework-res.apk”移入手机“/system/framework”中,重启手机即可。