昨天应老姐要求,给她的微信弄点自定义表情,开始以为直接在微信中添加gif表情即可,没想到加进去后动不了。下了个微信apk包回来反编译研究后发现,能动的表情都是内嵌的。因此想要添加能动的表情进去,就需要修改相应manifest.xml文件,重新打包签名安装包,下面就把实施过程粗略写一下。
下面3个是整个过程中用到的工具:
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 = <code>md5sum.exe pic/$file</code>; chomp $md5sum; $md5sum =~ s/^(\w+).*$/$1/g; print "\t\t\n" } }
然后回到android_hack文件夹,执行以下命令重新打包微信。
apktool b weixin weixin_unsign.apk
得到打包好的weixin_unsign.apk文件,这是未签名的apk安装包,无法直接安装到手机上,需要使用auto-sign签名后才可以安装到手机上。下载解压auto-sign后,把weixin_unsign.apk放到里面,执行下面的命令就可以完成签名。
java -jar signapk.jar testkey.x509.pem testkey.pk8 weixin_unsign.apk weixin_signed.apk
完成签名后就可以安装到手机上了,如果安装失败,请先卸载手机上的微信再次安装即可。
不行,那些命令不实用,说apktool不是内部或外部运行命令也不是批处理文件。
需要下载相应的程序才能用的,这些命令不是系统命令。
方法不错,成功, 谢了。。
这个还是太笼统了,请问你能说详细点吗?比如用什么软件打开什么东西,以及运行环境需要什么软件,脚本在哪个软件编辑,如何运行,如果可以的话,谢谢
有关于mac编译的教程嘛?
微信的彩蛋都有时效性,能修改下让没时效性啊
比如我爱你,只能在情人节的时候出现过,现在没有了
能给改一下,让现在也能有