一、为什么要漂白 Android 应用
最近撸了一个 Android 系统的墨水屏电纸书,可以使用几乎所有 Android 阅读类应用,不过很多都不适合墨水屏,很是闹心。墨水屏要求白底黑字,背景纯白,字体纯黑,且没有翻页效果。寄希望于开发商推出电纸书专版应用,实在不现实,还不如自己动手。
二、准备反编译的工具
Android 应用的安装包格式 apk,类似于zip压缩包,但是里面的xml文件被加密过,要修改压缩包里的xml文件需要先反编译 apk。
1、反编译工具
我使用的反编译工具是 ApkToolkit,可以自己搜索。为了方便下载,我重新打包上传到百度网盘了,下载地址:http://pan.baidu.com/s/1i3zdrSh 密码: wuuq
2、编译环境 Java JDK
使用 ApkToolkit 必须安装编译环境 Java JDK 7,下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
3、配置环境变量
Windows 高级系统设置中,设置 JAVA_HOME和PATH,根据自己的实际安装路径,如下:
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60
PATH=%PATH%;%JAVA_HOME%\bin
三、反编译.apk
拖拽 XXX.apk 到”反编译.apk”按钮前的输入区,点击”反编译.apk”按钮,会在文件 XXX.apk 的同级目录下生成文件夹 XXX。
四、修改xml
Android 应用程序颜色值的定义是通过RGB三原色和一个alpha值来定义的,以 # 开始,后面是 Alpha-Red-Green-Blue 的格式,类似16进制颜色代码,形如:#AARRGGBB。Android 应用程序一般在 res\values 下建立 colors.xml 文件定义颜色,这个文件也就是多数情况下我们要修改的。
以淘宝阅读为例,淘宝阅读使用了较重的灰色作为白天模式的字体颜色,在墨水屏上不够清晰,严重影响阅读。
修改 res\values\colors.xml 59行
<color name="reader_text_color_white_theme">#ff333333</color>
把333333 修改为 000000。淘宝阅读白天模式的背景颜色就是白色,无需修改。
如何获取需要修改的颜色值?
我的方法比较笨,通过 PC 上安装的 Android 模拟器 BlueStacks 运行原版程序,在 Windows 中使用取色器软件获取。
并非所有程序都使用 colors.xml 来定义颜色,如果在 colors.xml 中实在找不到,不妨试试批量查找反编译的文件夹中所有文件的文本。
PS:有的应用背景不是用颜色定义的,可能是图片,比如当当阅读,背景图片位于 assets\wallpapers\pattern0.png,把图片修改为纯白即可。
五、重建.apk
修改完成后,把第一步得到的文件夹 XXX 拖拽到”重建.apk”按钮前面的输入区,点击”重建.apk”按钮,会在文件夹 XXX 的同级目录下生成未签名的程序 XXX.R.apk ,如果选中了签名和优化还会生成 XXX.RS.apk 和 XXX.RSO.apk 。
在 Android 设备上安装重建后的 apk 安装包即可。
最后,分享一下 自己漂白的淘宝阅读和豆瓣阅读 APK。
漂白真的不易
我也自己漂白过不少APP和收集些适合eink的APP,共享给你一下:
http://www.win2next.com/idea/2266
非常感谢
必须赞一下,大家都是e ink爱好者啊,深知漂白app的不易。