睡不死的小懒猪
第一弹—反编译APK之道
大纲: 先说下CM7的美化与CM6美化的区别,CM7的美化基本算简单了,因为你很少需要反编译CLASSES.DEX了,只是很多图标啊,颜色啊等等都已经从framework-res.apk转移到了systemui.apk中,但是CM7在一些颜色、布局的修改方面还是要借助于反编译工具,所以怎么学会反编译将是CM7美化的第一步。
反编译的大原则:如果你要修改系统文件,首先请把你的rom中的frameworks-res.apk提取出来,然后在CMD中运行
java -jar apktool.jar if frameworks-res.apk
注意这步至关重要,如果你没做的话,反编译或者编译失败的时候不要怪我,切切记一定要运行。另外在修改文件的时候一定要做好nand备份或者 系统文件备份,以防万一。
编译工具:在时下的反编译工具中有两个款最为有名,分别是APKTOOL和apkmanager,我将分别介绍它们的简单用法:
一、apktool
使用率超高的反编译工具,很简单易用。具体下载地址在:http://code.google.com/p/android-apktool/,注意需要下两个文件
apktool-install-windows和apktool ,网盘下载地址(两个文件已经打包):http://www.ctdisk.com/file/2907201
下载好把这两个文件解压到同一个文件夹下,
假设这个文件夹是A,要反编译的文件是X.APK,存放反编译文件的假设是X,那面反编译的代码就是:
apktool d X.APK X
等命令完成以后,你就可以在X文件中找到反编译的东西了,修改完后,在编译回去,代码是:
apktool b X
等命令完成以后,你可以在X文件夹下的DIST文件夹下找到最后编译的文件了。
二.apkmanager
也是一款非常常用的反编译工具,最近红的发紫,下载地址:http://www.ctdisk.com/file/2907718
注意这款软件是CMD界面的,具体使用方法是:
1.把你要反编译的文件放在你下载的文件夹/place-apk-here-for-modding中,
2.用CMD找到你的下载的文件夹,然后输入script.bat,或者会用TAB的更快,会跳出一个画面,然后按19,选0,设置下compression level,设置完后,按9 DECOMPILE APK
3.然后可以在projects中找到你反编译文件的东西了,修改完以后,直接11,编译。
4.重点来了,3在完成的时候会有两个yes or no选择都选YES,如果你反编译的是系统文件的话,然后到下载的目录的KEEP文件夹下删掉你修改的东西切记,原则是这样的,如果你修改的是SMALI,删掉keep文件加下的CLASSES.DEX,如果你修改了XML,请把这个XML删掉并且删掉resources.arc文件;这些完成以后再继续
5.在你下载的文件夹/place-apk-here-for-modding中会找到另外一个文件那就是你最后编译过的。
第二弹—修改状态栏时钟颜色,样式,以及布局
在CM7中,大家有可能也知道了关于状态栏的修改已经不一样了,很多东西都从framework-res.apk转到了systemui.apk,关于时钟颜色的修改自然也发生了变化,接下来就附上修改教程。
1.从你的ROM中拿出systemui.apk,请做好备份
2.用apkmanager或者apktool反编译,这里以apkmanager为例
3.反编译后在\projects\SystemUI.apk\res\layout中找到status_bar.xml,用你的文本编辑器搜索clock,这时你会转到com.android.systemui.statusbar.Clock 这一行。
4.我们的修改就是从这行开始的,你可以有两种办法修改颜色,样式:
一、添加或者修改 android:textColor=”TEXTCOLOR” ,android:textStyle=”TEXTSTYLE”,TEXTCOLOR值可是个HTML值,形式是TTRRGGBB,TT表示透明度FF表示全色,00表示全透明,RRGGBB是正常的颜色值;TEXTSTYLE的值可以使italic,bold或者是italic|bold。
二、修改android:textAppearance,不过这不建议,因为很多其他的东西也是用这个属性的,建议不采用这个办法,textAppearance在framework-res.apk里有写。
三、举一个例子如果你要个黑色的并且加粗的始终,可以这样写<com.android.systemui.statusbar.Clock android:textColor=”#ff000000″ android:textStyle=”bold” android:textAppearance=”@android:style/TextAppearance.StatusBar.Icon” android:gravity=”left|center” android:addingRight=”6.0dip” android:layout_width=”wrap_content” android:layout_height=”fill_parent” android:singleLine=”true” />,
这样你就可以得到一个黑色的加粗的始终颜色。
四、如果你仅仅是需要改颜色和样式,那倒这里就可以结束了,接下来就是编译回去,push到机子就可以了。如果你还需要修改时钟布局,请接着看我的进阶教程。
进阶教程:修改时钟布局,以居中为例
1.首先找到<com.android.systemui.statusbar.Clock android:textAppearance=”@android:style/TextAppearance.StatusBar.Icon” android:gravity=”left|center” android:paddingRight=”6.0dip” android:layout_width=”wrap_content” android:layout_height=”fill_parent” android:singleLine=”true” />这行,选中整行剪切。
2.找到最后一行,在最前面复制你刚才剪切的这一行,然后把这行修改成<com.android.systemui.statusbar.Clockandroid:textAppearance=”@android:style/TextAppearance.StatusBar.Icon” android:gravity=”center” android:layout_gravity=”center” android:id=”@id/time” android:background=”@drawable/statusbar_background” android:layout_width=”wrap_content” android:layout_height=”fill_parent” android:singleLine=”true” />
3.在\projects\SystemUI.apk\res\values中找到并打开ids.xml,在中间添加一行<item type=”id” name=”time”>false</item>
4.重新编译systemui.apk,你就会得到一个居中的时钟了,具体图片可以看这个链接,这是我修改好后的。