windows下eclipse中,涉及源码编译的apk开发使用系统签名机制
来源:互联网 发布:数据库系统概论(第5版) 编辑:程序博客网 时间:2024/06/06 07:37
转自:http://blog.csdn.net/java2010czp/article/details/6535009
我认为学习需要靠交流,我把我的一点心血发上来,希望可以促进大家交流
刚学android一个月,由于是在windows xp上开发的,也不会makefile,ndk还没仔细研究,或许对一些初学者有用。一、Android Apk签名
Apk签名首先要有一个keystore的签名用的文件。
keystore是由jdk自带的工具keytool生成的。
具体生成方式参考:
开始->运行->cmd->cd到你安装的jdk的目录里,我的是C:/Program Files/Java/jdk1.6.0_10/bin
然后输入:
keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
-alias 后面跟的是别名这里是 asaiAndroid.store
-keyalg 是加密方式这里是RSA
-validity 是有效期 这里是20000
-keystore 就是要生成的keystore的名称 这里是asiAndroid.keystore
然后按回车键
按回车后首先会提示你输入的密码:这个在签名时要用的,要记住
然后会再确认你的密码。
之后会依次叫你输入姓名、组织单位、组织名称、城市区域、省份名称、国家代码(CN)等。
开始签名。
在 C:/Program Files/Java/jdk1.6.0_10/bin 还提供一个工具 jarsigner.exe
运行命令给APK签名:
jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk asaiAndroid.keystore
-keystore: keystore的名称
LotteryOnline_signed.apk: 签名后的APK
LotteryOnline.apk: 签名前的APK
然后按回车:会要求输入刚才设置的密码,输入后按回车就开始签名了。
二、eclipse源码编译,无需用make来编译(android源码目录<D:/myandroid_mx27>):
1、首先,AndroidManifest.xml中manifest节点中加入android:sharedUserId="android.uid.system"这个属性
2、用eclipse编译出apk(ClockSetting.apk)文件,但这个文件不能用,删掉META-INF目录下的CERT.SF和CERT.RSA两个文件
3、使用当前android系统(android系统可能不同)的platform密钥来重新给apk文件签名(可能还未用用户米要签名)。
首先,找到密钥文件,在我的Android源码目录中的位置是"build/target/product/security",下面的platform.pk8和platform.x509.pem两个文件。
然后,用Android提供的SignApk工具来签名,signapk的源代码是在"build/tools/signapk"下,这时得为下面的编译工作做些准备:
<1>、编译jar
命令行cd到signapk.java代码目录下,
javac signapk.java
获取SignApk$SignatureOutputStream.class和SignApk.class
建立目录s/com/android/signapk,将两个class文件放入目录下
jar cvfm signapk.jar SignApk.mf -C s/ .
注意:"s/"后面的"."前面有空格
生成signapk.jar文件,得到了Android提供的签名程序signapk.jar
<2>、用目标系统的platform密钥签名
将platform.pk8和platform.x509.pem文件复制到"D:/myandroid_mx27/build/tools/signapk"目录下,即signapk.jar和SignApk.mf所在的目录。
java -jar signapk.jar platform.x509.pem platform.pk8 D:/ClockSetting.apk D:/ClockSettingSigned.apk
我的未签名(ClockSetting.apk)和已签名(ClockSettingSigned.apk)apk文件都放在D盘,这样就得到了用Android源码编译的文件。
<3>、打开真机,安装:
adb connect IPort (IP为真机IP地址,Port为端口)
adb install D:/ClockSettingSigned.apk
签名带来问题:
这也有一个问题,就是这样生成的程序只有在原始的Android系统或者是自己编译的系统中才可以用,因为这样的系统才可以拿到platform.pk8 和platform.x509.pem两个文件。要是别家公司做的Android上连安装都安装不了。试试原始的Android中的key来签名,程序在 模拟器上运行OK,不过放到G3上安装直接提示"Package ... has no signatures that match those in shared user android.uid.system",这样也是保护了系统的安全。
- windows下eclipse中,涉及源码编译的apk开发——使用系统签名机制
- windows下eclipse中,涉及源码编译的apk开发使用系统签名机制
- windows下eclipse中,涉及源码编译的apk开发使用系统签名机制
- windows下eclipse中,涉及源码编译的apk开发——使用系统签名机制
- windows下eclipse中,涉及源码编译的apk开发——使用系统签名机制解决方法
- eclipse源码编译的apk开发,使用系统签名机制.
- eclipse源码编译的apk开发,使用系统签名机制. (可让自己的写的apk有权限卸载其他应用)
- windows下eclipse中——使用系统签名机制
- eclipse源码编译的apk开发,使用系…
- eclipse源码编译的apk开发,使用系…
- windows下编译android源码的apk
- 在Android源码中编译带.so库文件的APK,使其具体系统签名和系统权限
- Android中使用Eclipse生成正式签名的APK文件
- Android初学------编译系统签名的apk
- 在Android系统源码下编译apk
- 在Android系统源码下编译apk
- 如何将Android 源码中编译出的apk进行自己的签名
- android apk使用系统签名之windows批处理
- C/C++"野指针"问题
- VB.NET 与 C# 基础语法区别(一)
- UBUNTU开samba服务
- flex AdvancedDataGrid显示列表和分组显示列表
- #pragma
- windows下eclipse中,涉及源码编译的apk开发使用系统签名机制
- SIP消息头域的说明
- Android中记录与调试——Logcat和Debug的使用
- vi全局替换命令(转)
- Nginx模块开发入门
- Linux账号与身份管理
- 左右切换鼠标可控的无缝图片滚动代码
- 考:清华大学出版社<asp.net web应用程序设计及开发(c#版)>三层结构
- 引用与指针的比较