android签名和微信功能调试

转载 2016年02月17日 10:25:17

1.签名的意义
  为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

2.签名的步骤
  a.创建key
  b.使用步骤a中产生的key对apk签名

3.具体操作

  方法一: 命令行下对apk签名(原理)
  创建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采用上述步骤签名。

  方法二:使用Eclipse导出带签名的apk
  Eclipse直接能导出带签名的最终apk,非常方便,推荐使用,步骤如下:
  第一步:导出。
 \
  第二步:创建密钥库keystore,输入密钥库导出位置和密码,记住密码,下次Use existing keystore会用到。
 \
  第三步:填写密钥库信息,填写一些apk文件的密码,使用期限和组织单位的信息。
\
  第四步:生成带签名的apk文件,到此就结束了。
\
  第五步:如果下次发布版本的时候,使用前面生成的keystore再签名。

\

\
  第六步:Next,Next,结束!

  方法三:使用IntelliJ IDEA导出带签名的apk 
  方法步骤基本和Eclipse相同,大概操作路径是:菜单Tools->Andrdoid->Export signed apk。

4.签名之后,用zipalign(压缩对齐)优化你的APK文件。
  未签名的apk不能使用,也不能优化。签名之后的apk谷歌推荐使用zipalign.exe(位于android-sdk-windows\tools目录下)工具对其优化:

D:\>zipalign -v 4 demo_signed.apk final.apk

  如上,zipalign能够使apk文件中未压缩的数据在4个字节边界上对齐(4个字节是一个性能很好的值),这样android系统就可以使用mmap()(请自行查阅这个函数的用途)函数读取文件,可以在读取资源上获得较高的性能,
  PS:1.在4个字节边界上对齐的意思就是,一般来说,是指编译器吧4个字节作为一个单位来进行读取的结果,这样的话,CPU能够对变量进行高效、快速的访问(较之前不对齐)。
          2.对齐的根源:android系统中的Davlik虚拟机使用自己专有的格式DEX,DEX的结构是紧凑的,为了让运行时的性能更好,可以进一步用"对齐"进一步优化,但是大小一般会有所增加。

5、微信功能调试

在开发的过程中要注意一下debug keystore。就是Window->Preferences->Android->Build里面。

这里,我们要添加Custom debug keystore。上面的那个debug keystore不会和微信通信。

而我们添加的这个keystore 也要符合一些规范所以要改一改。

那就是keystore的密码改为:android

keytool -storepasswd -keystore my.keystore (在cmd里执行的命令)

其中,my.keystore是要修改的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。

alias的名称要改为:androiddebugkey

keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey

这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。

keystore的alias密码也改为:android

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!

这样修改完keystore之后把这个keystore放到上面ADT的custom debug keystore里面。就可以直接调试微信相关的功能了。

大概就这几点吧。

安卓APP动态调试技术

0x00 前言 随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域。越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ、游戏、导航地图、微博、微信、手机支付等等,尤其2015年...
  • maspchen
  • maspchen
  • 2016年01月19日 16:51
  • 3785

Android逆向之旅---动态方式破解apk前奏篇(Eclipse动态调试smail源码)

今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了:Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用apktoo...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2016年05月20日 13:22
  • 25947

微信项目开发与本地调试、移动调试(一)

微信服务号现在真的很强大,里面有各种各样的服务和功能。现在的移动端应用,可以说,微信已经超过了APP。对于微信开发而言,它和普通的web项目其实并没什么区别。微信项目也是web项目的一种,只不过它是在...
  • u010882234
  • u010882234
  • 2017年02月26日 15:32
  • 3445

微信web开发者工具 X5 Blink 内核调试

X5 Blink内核调试: 1.使用自己的微信号来调试微信网页授权 2.调试、检验页面的 JS-SDK 相关功能与权限,模拟大部分 SDK 的输入和输出 3.使用基于 weinr...
  • DXB601
  • DXB601
  • 2017年06月14日 18:03
  • 1086

Android逆向之动态调试总结

转自:http://www.52pojie.cn/thread-293648-1-1.html 一、在SO中关键函数上下断点 刚学逆向调试时。大多都满足于在SO中某关键函数上下...
  • threadroc
  • threadroc
  • 2017年07月18日 11:36
  • 200

Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)

今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为了安全或者...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2016年05月26日 15:35
  • 32249

微信web开发者工具调试

前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大。这篇文章只是做一个记录,方便自己以后使...
  • u011382589
  • u011382589
  • 2017年02月10日 11:32
  • 1274

本地调试微信接口方法

调试微信接口,例如调试微信消息收发接口,我们需要提供一个公网访问url,正常情况下,我们需要建立web工程,然后打包,不部署服务器,提供服务器外网访问url。但是想要将自己本地电脑上运行的项目发布到公...
  • p793049488
  • p793049488
  • 2015年03月31日 10:15
  • 10584

android优化(三)---App调试之UI布局篇

android优化(三)---App调试之UI布局篇 使用抽象布局标签(include, viewstub, merge),具有去除不必要的嵌套和View节点、减少不必要的infalte及其他L...
  • xiabing082
  • xiabing082
  • 2015年08月20日 09:20
  • 810

Android IDA So的动态调试大法

今天已是国庆的第五天,白天去武馆训练过后,晚上回来品一杯龙湖西井,更一篇博客,一来帮助需要之人,二来加深自己的理解。 下面就说关于在IDA中Android so的动态调试的问题以及在so的三个层次下断...
  • feibabeibei_beibei
  • feibabeibei_beibei
  • 2016年10月05日 19:48
  • 11950
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android签名和微信功能调试
举报原因:
原因补充:

(最多只允许输入30个字)