android 签名工具 autoSign jarsigner

PackageManagerService
处理各种应用的安装、卸载、管理等工作,开机时由systemServer启动此服务。就是说之前安装过的应用或者系统应用信息都会在开机扫描过程中存到mPackages这个hashMap中。
开机后用户的安装操作也会同样存到这个hashMap里面。getPackageInfo,调用generatePackageInfo,里面调用的是PackageParser中的generatePackageInfo

autoSign 签名工具
把new.apk文件(需要签名的apk文件)复制到签名软件的目录下,再用记事本打开Sign.bat,将其修改为如下代码:

java -jar signapk.jar testkey.x509.pem testkey.pk8 new.apk new_signed.apk

最后双击一下Sign.bat即可签名完成

jarsigner 签名工具
1、生成签名
用AndroidStudio或者ecplise来生成一个keystore,也可以通过执行命令:

//keytool -genkey -keystore abc.keystore -alias abc.keystore -keyalg RSA -validity 20000 keytool -genkey -keystore my.keystore -keyalg RSA -validity 10000 -alias my  

//-keystore 后跟签名文件 -alias 后跟签名文件的别名,一般和普通名字一样, 执行命令后会出现密码、开发者等相关信息录入项,填入相关信息即可
2、签名打包
签名文件my.keystore和apk拷到同一个目录下,执行命令:

//jarsigner -verbose -keystore abc.keystore -signedjar 123x.apk 123.apk abc.keystorejarsigner -verbose -keystore my.keystore -signedjar my_signed.apk my.apk my//my.keystore即你的签名文件, my.apk即需要进行签名的apk, my_signed.apk即Android签名后的APK文件java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk 

意义:
以testkey.x509.pem 这个公钥文件和 testkey.pk8 这个私钥文件对 update.apk 进行签名,签名后保存为 update_signed.apk

1、

Manifest manifest = addDigestsToManifest(inputJar);
//创建Manifest,
JarFile inputJar = new JarFile(new File(args[2]), false); //输入Jar文件
manifest.getEntries().remove("META-INF/CERT.SF");
manifest.getEntries().remove("META-INF/CERT.RSA");
outputJar.putNextEntry(new JarEntry("META-INF/MANIFEST.MF"));
//为MANIFEST.MF,创建Jar文件实体类、
JarOutputStream outputJar = new JarOutputStream(new FileOutputStream(args[3]));
outputJar.setLevel(9);
manifest.write(outputJar);//遍历Apk中所有文件,对非文件夹非签名文件的文件逐个生成SHA1数字签名信息,再base64编码,然后再写入MANIFEST.MF文件中。SHA1生成的摘要信息,如果修改了某个文件,Apk安装校验时,取到的该文件的摘要与MANIFEST.MF中对应的摘要不同,则安装不成功

2、

Signature signature = Signature.getInstance("SHA1withRSA"); //对生成的Manifest使用SHA1withRSA算法signature.initSign(privateKey); //用私钥签名, PrivateKey privateKey = readPrivateKey(new File(args[1]));outputJar.putNextEntry(new JarEntry("META-INF/CERT.SF")); //为CERT.SF, 创建Jar文件实体类、输出writeSignatureFile(manifest, new SignatureOutputStream(outputJar, signature));//经该函数,生成CERT.SF签名文件

//用私钥通过RSA算法对manifest里的摘要信息进行加密(安装的时候只能通过公钥解密,解密之后才能获得正确的摘要,再对比摘要是否一致,不同则安装不成功)

3、
outputJar.putNextEntry(new JarEntry("META-INF/CERT.RSA"));
//为CERT.RSA, 创建Jar文件实体类、输出
writeSignatureBlock(signature, publicKey, outputJar); // 对输出Jar文件进行私钥签名,公钥加密
//最后就是如何生成CERT.RSA,打开这个文件看到的是乱码,说明整个文件都被编码加密了,而且这个文件和公钥有关,从源码中看出他是通过PKCS7将整个文件加密了

4、copyFiles(manifest, inputJar, outputJar);

android 签名工具 autoSign jarsigner相关推荐

  1. android签名方法,Android : apk系统签名的多种方法

    方法一:使用自己的Android签名工具给apk重新签名: (1)该目录下有 media.pk8.media.x509.pem.platform.pk8.platform.x509.pem.share ...

  2. android apk签名工具_关于keytool和jarsigner工具签名的使用小结

    在我们日常Android应用开发中,我们都要对我们开发的apk做签名处理,或者加固,增强我们apk的安全性,防止被逆向反编译,在apk签名这块,我们一般采用JDK自动工具来签名,下面就对相关工具做个简 ...

  3. 使用jdk 自带的jarsigner 签名工具签名的apk 和android规范有区别

    jdk 自带的签名工具签名后的 apk : ebuy 是签名文件的 Alias名称. android sdk 签名和jdk 签名之后的apk 对比: android sdk 签名: jdk jarsi ...

  4. 【Android 安全】DEX 加密 ( DEX 加密使用到的相关工具 | dx 工具 | zipalign 对齐工具 | apksigner 签名工具 )

    文章目录 一.dx 工具 二.zipalign 对齐工具 三.apksigner 签名工具 生成多个 DEX 文件 , 需要使用一些工具 , 本博客中简要介绍这些工具 ; 一.dx 工具 dx 工具 ...

  5. android apk签名工具_Android 应用修改为系统签名的方法(macOS)

    在做 Android 工控机应用开发时,经常会涉及到一些要系统签名才能做的功能,比如应用静默更新,关机重启等功能. 本文介绍系统签名的具体操作方法. 需要准备的东西,相关的签名文件.签名工具.要签名的 ...

  6. 【转】Android之apk文件签名——keytool 和 jarsigner

    一.生成密钥库将位置定位在jdk的bin文件中,输入以下命名行: keytool -genkey -alias ChangeBackgroundWid get.keystore -keyalg RSA ...

  7. android 自动签名工具下载,安卓批量签名工具使用说明

    安卓批量签名工具使用Python编写,利用此工具对未签名apk实现修改AndroidManifest.xml的多个meta-data信息,并自动签名(可实现多个签名) 如果只需要进行多渠道打包,可参考 ...

  8. qt for android集成微信分享及签名工具的使用

    签名工具 关于[微信开放平台Android应用签名的本质及如何获取]转自https://blog.csdn.net/github_2011/article/details/60966976 签名工具下 ...

  9. android签名的应用-- 禁止未经授权签名的apk安装

    点击打开链接 最近项目有需求: 只有使用特定签名签的apk才可以安装,其他任何apk都不能安装(root版,使用adb push进去的除外).n多度娘.google之后最终实现,把实现代码罗列一下,以 ...

  10. Android签名机制---签名过程

    大神文章:http://blog.csdn.net/jiangwei0910410003/article/details/50402000 一.知识点 1.数据摘要(数据指纹).签名文件,证书文件 2 ...

最新文章

  1. 8.8-9 fsck、dd
  2. 央视消息 | 没考驾照的人可能要恭喜了!
  3. 从零开始学前端:过渡和动画 --- 今天你学习了吗?(CSS:Day20)
  4. pcm 采样率转换_高速模数转换器 ADC 树立了实时监测和控制的标准
  5. java代码实现读写txt文件(txt文件转换成java文件)
  6. Java String trim()方法示例
  7. 线性模型第4讲:弹性网络
  8. linux 0891端口,凯立德导航专用版本号及分辨率、端口、波特率
  9. 利用Python提取网络图片的像素尺寸、格式等相关信息
  10. go sync.once用法
  11. t’触发器真值表和状态方程_T触发器的特性表.ppt
  12. python俄罗斯方块算法详解_python俄罗斯方块
  13. (MATLAB)把视频读得明明白白
  14. 主流量化交易与程序化交易平台整理
  15. 大数据发展前景及发展战略分析
  16. UEFI开发探索82- YIE002USB开发板(05 制作HID设备)
  17. python中pixels函数_Python的PIL库中getpixel方法的使用
  18. php int 32 64,php从32位升级到64位需要注意的几点
  19. xlsx无法导入MySQL?
  20. 二、Unity编辑器开发之ContextMenu

热门文章

  1. 常用芯片数据手册—— INA333 低功耗、精密仪表放大器(德仪)
  2. 22岁阻止席卷网络的病毒,却因开发恶意软件被捕,这是传奇黑客马库斯的故事...
  3. VXlan 技术实现原理
  4. 佳能Canon imageCLASS MF4712 打印机驱动
  5. iZotope RX 7 Advanced混音插件使用教程
  6. 分布式机器学习主要笔记
  7. 认知的四个层次,读懂改变一生
  8. 数据库系统原理与应用教程(014)—— 关系数据库练习题(一)
  9. cmos逻辑门传输延迟时间_终于有人能把常用的三种电平:TTL、CMOS、RS232电平讲明白了...
  10. matlab结构数组22,matlab结构数组