Android应用程序签名

Android应用程序签名相关的理论知识包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。

1、什 么是签名?

如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就 是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不 正是在尽可能地模拟现实吗?所以,计算机中所说的签名和生活中所说的签名在本质上是一样的,它所起到的作用也是一致的!

2、为什么要给Android应用程序签名?

如果只能用一句简单的话语来回答这个问题的话,我会说:“这是 Android系统所要求的”。

Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果 一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来标识应用程序的作者和在应用程 序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数 字证书签名机构认证,它只是用来让应用程序包自我认证的。

3、为什么我开发的Android应用程序没有做什么签名也能 在模拟器和手机上运行?

你没有给Android应用程序签名并不代表Android应用程序没有被签名。为了方便我们开发调试程序 ,ADT会自动的使用debug密钥为应用程序签名。debug密钥?它在哪?debug密钥是一个名为debug.keystore的文件,它的位置:

Ubuntu: ~/.android/debug.keystore (win7: c:/user/.Android/debug.keystore;  xp: C:/Documents and Settings/user/.Android/debug.keystore)

“user”对应于你自己的windows操作系统用户名,这也就意味着,如果我们想 拥有自己的签名,而不是让ADT帮我们签名的话,我们也要有一个属于自己的密钥文件(*.keystore)。

4、Android应用 程序签名步骤

1)准备工作

apk的签名工作可以通过两种方式来完成:

1)通过ADT提供的图形化界面完成apk签名;

右键项目——》 Android Tools ——》Export Signed Application Package... ——》 打开图形界面

2)完全通过 shell/dos命令来完成apk签名

我比较喜欢第2)种方式,所以下面将讲解如何通过命令的方式完成apk签名。

给apk签名一 共要用到3个工具,或者说3个命令,分别是:keytool、 jarsigner、 zipalign,下面是对这3个工具的简单介绍:

1) keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;

2)jarsigner:使用数字证书给apk文 件签名;

3)zipalign:对签名后的apk进行优化,提高与Android系统交互的效率(Android SDK1.6版本开始包含此工具)

从这3个工具的作用也可以看出,这3个工具的使用顺序。通常我们自己所开发的所有应用程序,都是使用同样的签名,即使用同 一个数字证书,这就意味着:如果你是第一次做Android应用程序签名,上面的3个工具都将用到;但如果你已经有数字证书了, 以后再给其它apk签名时,只需要用到jarsigner和zipalign就可以完成。

为了方便使用上面3个命令,首先需要将上面3个工 具所在路径添加到环境变量path中(我说的是为了方便使用,没有说必须要这么做)。怎么配置环境变量请参见我先前的博客( Windows 或 Ubuntu),这里需要说一下这3个工具默认所在的路径:

1)keytool:该工具位于jdk安装路径的bin目录下;

2)jarsigner:该工具位于jdk安装路径的bin目录下;

3)zipalign:该工具位于Android-sdk-windows/tools/目录下

不知道大家是否注意到keytool和jarsigner两个工具是jdk自带的,也就意味着生成数字证书和文件签名不是Android的专利;另 外从字面上理解jarsigner也能猜得出该工具主要是用来给jar文件签名的。

时间: 2024-08-22 14:41:19

Android应用程序签名的相关文章

Android应用程序签名详解

1.什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都 知道签名的含义.可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了.计算机 所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说的签名和生活 中所说的签名在本质上是一样的,它所起到的作用也是一致的! 让我们来看看,在现实生活中的签名.比 如下面这张图片: 这是女星孙俪的签名.签名就意味 着在纸上或别处写下自己的名字,或者说在某处打上一个标记作

Android应用程序签名步骤及相关知识介绍_Android

本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名.为什么要给应用程序签名.如何给应用程序签名等. 1.什么是签名?      如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义.可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了.计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说的签名和生活中所说的签名在本质上是一样的,它所起到的作用也是一致的!      让我们来看

Android应用程序签名步骤及相关知识介绍

本文主要讲解Android应用程序签名相关的理论知识,包括:什么是签名.为什么要给应用程序签名.如何给应用程序签名等. 1.什么是签名?      如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义.可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了.计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说的签名和生活中所说的签名在本质上是一样的,它所起到的作用也是一致的!      让我们来看

Android应用程序签名概述

在Android 系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系. 1. 为什么要签名 如果只能用一句简单的话语来回答这个问题的话,我会说:"这是Android系统所要求的". 应用程序签名是一个这样的过程,即使用私有密钥数字地签署一个给定的应用程序,以便达到如下3个目的: ◆识别代码的作者 ◆检测应用程序是否发生了改变 ◆在应用程序之间建立信任 基于这一信任关系,应用程序可以安全地共享代码和数据.如果一个 permis

android apk 程序签名

Java开发环境中的Keytool 和 Jarsigner,注意配置好环境路径,输入命令后有如下提示信息: C:Documents and SettingsF1034740桌面博客文章>Keytool keytool 用法: -certreq     [-v] [-protected]              [-alias <?e名>] [-sigalg <?章演算法>]              [-file <?{??章要求?n案>] [-keypass

关于Android应用apk的程序签名详解

证书并不用让于用户控制可以安装哪些程序,证书也不需要授权中心来签名.在Android系统中,应用程序使用自己签名的证书是完全允许而且是很普遍的. 关于Android应用程序签名主要有以下几个重点: •所有的应用程序都必须签名.系统不会安装任何一个没有签名的程序.这条规则适用于任何运行Android系统的地方,不管是真机还是模拟器.因此必须在模拟器或真机上运行/调试程序之前对程序进行签名. •可以使用自己的证书来签名.不需要任何授权中心. •要为最终用户发布应用程序的时候,必须签入一个合适的密钥.

给Android的APK程序签名和重新签名的方法_Android

签名工具的使用Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的.使用格式: java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar -w 是指对ROM签名时需使用的参数 publickey.x509[.pem] 是公钥文件 privatekey.pk8 是指 私钥文件 input.jar 要签名的apk或者rom output.jar 签名后生成的

android 中的签名问题

问题描述 android 中的签名问题 在android应用程序中用户在程序的表格中做了签名,签名必须要编辑,清除,保存,我做了保存和清除,但是编辑这项功能却不能运行.我的代码如下,怎么修改呢? mContent = (LinearLayout) findViewById(R.id.linearLayout);mSignature = new signature(this null);mSignature.setBackgroundColor(Color.WHITE);mContent.addV

利用FRIDA攻击Android应用程序(三)

利用FRIDA攻击Android应用程序(三)       前言 在我的有关frida的第二篇博客发布不久之后,@muellerberndt决定发布另一个OWASP Android crackme,我很想知道是否可以再次用frida解决.如果你想跟着我做一遍,你需要下面的工具. OWASP Uncrackable Level2 APK Android SDK和模拟器(我使用的是Android 7.1 x64镜像) frida(和frida-server) bytecodeviewer radar