• [转]重新签名APK文件


    本文转自:http://www.51testing.com/?uid-115892-action-viewspace-itemid-223023

    1.      生成Android APK包签名证书

    1).     doc中切换到jdkbin目录

    cd C:\Program Files\Java\jdk1.6.0_18\bin

    2).     运行下面的命令

    keytool –genkey –alias android123.keystore –keyalg RSA –validity 20000 –keystore android123.keystore

    /*解释:keytool工具是Java JDK自带的证书工具

    -genkey参数表示:要生成一个证书(版权、身份识别的安全证书)

    -alias参数表示:证书有别名,-alias mine.keystore表示证书别名为:mine

    -keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取

    -validity 20000表示有效时间20000( K3

    -keystore mine123.keystore表示要生成的证书名称为mine123

    */

     

    输入完回车后屏幕显示:: a4 x: O. i5 I

    输入keystore密码:[密码不回显](一般建议使用20位,最好记下来后面还要用)

    再次输入新密码:[密码不回显]( o' ^$ _( F( K& I0

    您的名字与姓氏是什么?

    [Unknown]lili# E# C/ Z! O) I; K6 r7 M-

    您的组织单位名称是什么?

    [Unknown]snoopy' |3 v& I! _/ l

    您的组织名称是什么?

    [Unknown]snoopy team

    您所在的城市或区域名称是什么?) L# V' |. E0 f; {

    [Unknown]beijing

    您所在的州或省份名称是什么?

    [Unknown]beijing

    该单位的两字母国家代码是什么

    [Unknown]CN- m. ~1 W. i0

    CN=lili, U=snoopy, O=snoopy team, L=beijing, ST=beijing, C=CN正确吗?

    []Y

    输入< mine.keystore>的主密码

    (如果和keystore密码相同,按回车):

    查看C:\Program Files\Java\jdk1.6.0_18\bin,生成了以后签名用的证书Keymine123.keystore

    2.      删除之前的签名文件

    1).     用解压工具解压缩apk文件(如:解压到D:\Sign\PhoneBook

     

    压缩包内容解析:

    (1)     META-INF目录:存放签名后的CERTMANIFEST文件,用于识别软件的签名及版权。

    (2)     res目录:存放各种Android原始资源,包括:动画anim、图片drawable、布局layoutmenu菜单、xml等等

    (3)     AndroidManifest.xml编码后的Android项目描述文件,包括了Android项目的名称、版本、权限、程序组件描述等等

    (4)     classes.dex编译后Classdx程序转换成Dalvik虚拟机的可执行字节码文件

    (5)     qresources.arsc所有文本资源的编译产物,里面包含了各Location对应的字符串资源。

    2).     找到下面的目录META-INF,删除目录META-INF

    3).     PhoneBook整个文件夹用zip工具,重新打包成zip压缩包,然后更改后缀为apk (注意:产生的PhoneBook.zip中没有二级根目录)

    3.      重新签名APK文件

    1).     将证书复制到与需要重新签名的apk文件相同的目录下(如:复制到D:\Sign

    2).     doc中切换到需要重新前面的apk文件的目录下

    cd D:\Sign

    3).     运行下面的命令

    jarsigner –verbose –keystore mine123.keystore –signedjar PhoneBook_signed.apk PhoneBook.apk mine.keystore

    /*解释:* ^, {& k1 Z. M* P/ M+ K5 n5 hjarsignerJava的签名工具# K8 ~% s# Y. @6 P

    -verbose参数表示:显示出签名详细信息

    -keystore表示使用当前目录中的mine123.keystore签名证书文件。

    -signedjarPhoneBook_signed.apk表示签名后生成的APK名称,% v! a7 e2 v4 W# ]; GPhoneBook.apk表示未签名的APK Android软件, mine.keystore表示别名

    */

     

    输入完回车后屏幕如下图显示:

    查看D:\Sign目录,已生成重新签名后的PhoneBook_signed.apk文件

     


     

  • 相关阅读:
    Chrome 无法登录 GitHub,响应时间过长,可行解决办法
    npm install报错 npm ERR! cb() never called! 检查镜像源!
    Win10 移动文件的时候“卡”在“正在暂停/取消”解决办法
    VS code 彻底关闭插件自动更新功能
    箭头函数 函数中的this指向
    ES6 ES6变量的声明
    范围内的拖拽事件
    div拖拽移动事件
    事件对象的属性 div点击移动事件
    tab切换之循环遍历
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2128517.html
Copyright © 2020-2023  润新知