出处!:http://jeff-pluto-1874.iteye.com/blog/847366

我觉得写的不错就转载了。

一、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

apk签名《转》的更多相关文章

  1. Android5.1.1 - APK签名校验分析和修改源码绕过签名校验

    Android5.1.1 - APK签名校验分析和修改源码绕过签名校验 作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件“frameworks/base/cor ...

  2. eclipse将android项目生成apk并且给apk签名

    转载:http://www.cnblogs.com/tianguook/archive/2012/09/27/2705724.html 生成apk最懒惰的方法是:只要你运行过android项目,到工作 ...

  3. 关于APK签名的一些东西

    什么是APK 了解APK签名之前,首先要知道什么是apk文件:APK是AndroidPackage的缩写,即Android安装包(apk),APK文件其实就是zip格式的文件,只是后缀被改为了apk, ...

  4. Android APK 签名 (转发)

    Cordova 3.5 为 Android APK 签名,生成可发布的 APK 程序文件  任侠  2014-06-07 00:04  移动开发  抢沙发  16,288 views  目录 [隐藏] ...

  5. 一次简单的绕过apk签名校验

    朋友发来一个apk,需要分析其中的一些算法,分析过程涉及到了重新打包apk,打包后的apk运行失败,估计是apk内部有检验是否被篡改的代码.检验apk是否被篡改,简单的方法是直接校验签名,如果apk签 ...

  6. apk签名(不打包)

    apk提交给应用市场加固后,需要重新签名 签名工具:360签名 下载地址:http://yunpan.cn/cm8GqVWL7Y8Eh 签名步骤:http://jiagu.360.cn/qcms/he ...

  7. 获取APK签名

    获取apk签名工具类 import android.content.Context; import android.content.pm.PackageInfo; import android.con ...

  8. Shell脚本查看apk签名信息

    用shell写了一个查看apk签名的脚本.代码很少也很简单 支持递归目录查询 #!/bin/bash #使用方法 ./getcertificate.sh xx.apk get_signature() ...

  9. 为App签名(为apk签名)

    为App签名(为apk签名) 原文地址 这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商 ...

  10. Android开发中Ant命令编译和APK签名的一些心得

    本文章麦子学院跟小伙伴们详细的分享一下关于Android Ant命令行编译和APK签名详解一些实现方法,这是一个朋友在自己做安卓开发时写的,希望对大家会有所帮助呀. 最近在做Android开发时,需要 ...

随机推荐

  1. 优雅的使用 PhpStorm 来开发 Laravel 项目

    [目录] Prerequisites plugin installation and configuration 1 Ensure Composer is initialized 2 Install ...

  2. createjs 使用记录

    createjs由几个库组成: l,easeljs,这个是核心,包括了显示列表.事件机制: 2,preloadjs,用于预加载图片等: 3,tweenjs,用于控制元件的缓动: 4,soundjs,用 ...

  3. Visual Studio.NET、asp.net和C#间的关系是怎样的?

    asp.net是一种技术,要实现这种技术,就得有底层的实现技术编程语言,这个语言就是C#,(只是绝大多数首选C#),要想用C#实现asp.net技术,就得有编程的工具软件,这个软件我一直用visual ...

  4. JAXB - Hello World

    We'll stick with the tradition and use a sort of "Hello World" XML document to illustrate ...

  5. Azure Redis Cache作为ASP.NET 缓存输出提供程序

    前一篇文章<Azure Redis Cache作为ASP.NET Session状态提供程序 >我们已经知道如何将ASP.NET应用程序Session存储在Redis Cache中,这里我 ...

  6. 【Excel VBA】金额大写转换

    =IF(ROUND(A1,2)<0,"金额为负无效",IF(ROUND(A1,2)=0,"零元",IF(ROUND(A1,2)<1,"&q ...

  7. Warning: Attempt to present * on * which is already presenting *

    Warning: Attempt to present (要被presented的控制器)  on (哪个控制器来presenting) which is already presenting (已经 ...

  8. Java实战之03Spring-03Spring的核心之AOP(Aspect Oriented Programming 面向切面编程)

    三.Spring的核心之AOP(Aspect Oriented Programming 面向切面编程) 1.AOP概念及原理 1.1.什么是AOP OOP:Object Oriented Progra ...

  9. Batch: Display & Redirect Output

    Batch How To ... Display & Redirect Output http://www.robvanderwoude.com/battech_redirection.php ...

  10. svn 项目转移

    http://www.cnblogs.com/techMichaelLee/p/3193197.html (参考) svnadmin dump /home/svn/project > /home ...