昨天应老姐要求,给她的微信弄点自定义表情,开始以为直接在微信中添加gif表情即可,没想到加进去后动不了。下了个微信apk包回来反编译研究后发现,能动的表情都是内嵌的。因此想要添加能动的表情进去,就需要修改相应manifest.xml文件,重新打包签名安装包,下面就把实施过程粗略写一下。 下面3个是整个过程中用到的工具: apktool auto-sign md5sums apktool用于反编译android apk安装包,下载apktool1.4.3.tar.bz2和apktool-install-windows-r04-brut1.tar.bz2,然后新建一个android_hack文件夹,把以上两个文件解压放到里面。 下载微信客户端weixin36android.apk,放到android_hack文件夹中。打开CMD输入以下命令进行反编译。 apktool.bat d weixin36android.apk weixin 执行完毕后,会得到weixin文件夹,里面就有微信客户端的AndroidManifest.xml文件、布局文件和资源文件,在这里只要修改其中的资源文件就可以。进入“weixin\assets\custom_emoji”文件夹中可以看到微信自带的兔斯基表情和猜拳表情。在manifest.xml文件中有这些文件的描述和md5验证。要加入新的表情就需要同步修改这个文件,比如要添加这个表情,首先使用md5sums计算出它的md5值,然后添加下面格式的条目。 <?xml version="1.0" encoding="utf-8"?> <emojis> <catalog id="0x11" name="emoji_custom_all"> <emoji md5="e10772b9dddebc42ef069e25c33252dc" name="biaoqin1.gif" type="0x2"></emoji> </catalog> </emojis> 为了方便批量增加表情,写了以下脚本批量计算MD5值并生成以上格式的条目。 #/usr/bin/perl use strict; use warnings; opendir my $dir,"pic"; my @gif_list = readdir $dir; foreach my $file (@gif_list) { unless($file eq ‘.’ or $file eq ‘..’) { my $md5sum…
Continue reading →