博文

目前显示的是 2019的博文

命令行使用JKS文件为APK签名

    目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:     jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias    其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:   jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android    执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:     jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)    查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:     zip -d Explorer_unsigned.apk META-INF/\*    命令执行后有如下提示:    deleting: META-INF/MANIFEST.MF    deleting: META-INF/CERT.SF    deleting: META-INF/CERT.RSA    执行完该命令后,再执行上面的jarsigner命令重新签名即可,此时有如下提示输出:    正在添加: META-INF/MANIFEST.MF    正在添加: META-INF/ANDROID.SF    正在添加: META-INF/ANDROID.RSA    正在签名: res/drawable-1280x600/content_item.9.png    正在签名: res/drawable-1280x600/explorer_logo.png    正在签名: res/drawable-1280x600/icon.png    正在签名: res/drawable-1280x6

制作Android7.1关机充电动画

    在Android7.1系统上面,关机充电动画已不再是5.1里的几张图片,如下:     在Android5.1的system/core/healthd/images目录下,有如下文件:     battery_0.png     battery_1.png     battery_2.png     battery_3.png     battery_4.png     battery_5.png     battery_charge.png     battery_fail.png     capacity_text_bottom.png     capacity_text_left.png     capacity_text_right.png     capacity_text_top.png     而在Android7.1的同一目录下,则只有如下文件:     battery_fail.png     battery_scale.png     其中,battery_scale.png为相应的动画文件,我们查找了一翻,发现在bootable/recovery目录下有interlace-frames.py文件,该文件用于将几张PNG图片合成一张PNG图片,我们使用如下命令将上面的battery_scale.png解包:     python interlace-frames.py -d battery_scale.png -o battery.png     会生成battery00.png、……、battery05.png共6个文件,而这6个文件刚好对应system/core/healthd/healthd_mode_charger.cpp文件里的default_animation_frames定义: static struct animation::frame default_animation_frames[] = {     {         .disp_time = 750,         .min_level = 0,         .max_level = 19,         .surface = NULL,     },     {         .disp_tim