首先是解包  
注意 这里必须将cmd 的当前位置改到apktool 目录下, 不然就会报错说找不到 aapt.exe  , 当然也可以加入到系统path中

apktool d .apk folder 

这步之后就是修改smali 代码或者是.so文件了
 改好之后使用

apktool b folder   

然后folder 文件里就会出现一个apk  
之后就是签名问题了
签名有3条路走, 一条是使用jdk , 一条是使用android的signapk ,还有就是集成工具

1  创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入

D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
        -alias demo.keystore 别名 demo.keystore
        -keyalg RSA 使用RSA算法对签名加密
        -validity 40000 有效期限4000天
        -keystore demo.keystore */
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
        -keystore  demo.keystore 密钥库位置
        -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/

  注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。

引用  http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html

另外自己在操作过程中遇到一个问题,还有解决方法 :

keytool 错误: java.io.FileNotFoundException: android.keystore (拒绝访问。)

主要原因是JDK安装在C盘,没有写权限,所以报错

可以更改目录解决 改为如下

C:\Program Files\Java\jdk1.7.0_65\bin>keytool -genkey -alias andro
eyalg RSA -validity 30000 -keystore D:/keyStore/android.keystore

放在D盘,完美解决

2  android 源码自带的signapk工具  需要用到证书

1.进入<Android_Source_Path>/build/target/product/security,找到【platform.pk8】和【platform.x509.pem】系统密钥。

2.进入<Android_Source_Path>/build/tools/signapk找到SignApk.java,运行javac编译成SignApk.class

3.执行命令java com.android.signapk.SignApk platform.x509.pem platform.pk8 input.apk output.apk

来源: <http://www.jb51.net/article/50847.htm>

3就是使用自动签名工具了, 比如androidresedit , 原理其实就是上述的第二条,只是自动化了一下。 当然签名目录中证书什么是可以换的

最终这3中方法都是可以生成签过名的apk的 ,当然 大牛看看就行,不要吐槽我们这些菜逼。。。

END

android 打包和签名 大致流程相关推荐

  1. Flutter Android 打包保姆式全流程 2023 版

    大家好,我是 17. Flutter 打包的文章一共有两篇 Flutter Android 打包保姆式全流程 2023 版 Flutter IOS 新建打包发布全流程 2023 版 本篇介绍 Andr ...

  2. 查看 android打包证书签名

    查看 android打包证书签名 用java keytool 查看证书签名 keytool -list -v -keystore 证书路径 输入证书密码之后会看到 MD5\SHA1\SHA256 签名 ...

  3. Android 打包 aar文件的流程以及aar的引用

    打包aar 分为原项目打包成aar 和新建module 打包成aar 1 原项目打包成aar 文件 需要把项目先变成库 把apply plugin: 'com.android.application' ...

  4. Android 打包流程之aapt打包资源文件

    上一篇:Android打包流程之资源管理 Android应用最终是以apk的形式放在手机上安装并运行的,而负责将资源文件和代码进行打包的工具就叫appt,全称Android Asset Packagi ...

  5. Android打包流程-签名

    编译任务 META-INF主要用来存储当前的apk的签名信息, 与AP相关的签名信息有下面两个: validateSigningDebug packageDebug 校验签名文件 会先通过valida ...

  6. 【Android】多渠道打包与签名机制

    [Android]多渠道打包与签名机制 多渠道打包 我们在发布APP时,往往需要生成多个渠道包,以上传到不同的应用市场. 而每个渠道包中,都可以包含各自的渠道信息,当APP和后台交互或进行数据上报时, ...

  7. android打包发布流程,从源文件到APK-Android打包流程

    ====================================================== 原文链接https://juejin.im/entry/58b78d1b61ff4b006 ...

  8. Android程序apk编译、打包、签名

    一直想搞清楚Android apk是怎么编译打包并且签名发布Application的??今天花了几个小时,并在网上查资料,终于把apk编译签名打包整个流程弄清楚了. PS:因为android程序一共有 ...

  9. android多渠道打包签名配置,Gradle For Android(二) 多渠道打包与签名配置

    <Gradle For Android(二) 多渠道打包与签名配置> 转载请注明来自 傻小孩b(gold.xitu.io/user/57e089-喜欢的能够关注我,不按期总结文章!您的支持 ...

最新文章

  1. python 将列和索引的值变换_【编辑小组成长日记】Python学习第二期
  2. puppet自动化运维之资源关系
  3. Sublime Text3 运行Python 出现Error:Decode error - output not utf-8
  4. 去除字符串中的指定字符
  5. 单核工作法19:给创意充电(上)
  6. 统计信息在数据库中的作用_统计在行业中的作用
  7. Linux 基础 (1) - 在Win10上使用Hyper-v虚拟机安装CentOS7
  8. 云存储应用是视频监控系统发展的必然需求
  9. ajax异步验证效果展示,AJAX(二)-实现验证码异步验证功能(示例代码)
  10. QML 自定义鼠标光标
  11. html模板里引入js函数的几种方法
  12. document.documentElement.clientHeight 与 document.body.clientHeight
  13. windbg 分析pchunter导致的蓝屏
  14. python加粗线宽代码_python-增加matplotlib中图例行的线宽
  15. 小程序滑动窗口的实现,固定第一列和第一行
  16. 火狐浏览器启动参数_火狐浏览器启动参数介绍
  17. K8S报error: You must be logged in to the server错误
  18. android 获取N天前的日期或N天后日期
  19. (2022牛客多校五)H-Cutting Papers(签到)
  20. 小区人脸识别门禁系统云平台需求分析文档

热门文章

  1. 基于yolo5制作的AI识别FPS游戏自动化
  2. CSP-202303-3 LDAP
  3. “百合杯“表彰典礼即将于电影频道播出
  4. Everything使用教程
  5. Mysql中提取某列信息的一些函数方法
  6. 愁边动寒角,夜久意难平
  7. LeakyReLU函数解析
  8. 鲜果RSS服务关闭,RSS阅读依旧不灭
  9. 吴恩达深度学习笔记【2】
  10. Python集合的差集difference函数