1、生成keystore文件,这个可以用AndroidStudio生成。

2、假设生成的文件名叫test.keystore,放到工程的app下面。
3、修改app下面的build.gradle文件,增加如下内容:
安卓是个开放平台,许多源代码都是开放的,这也注定了这个系统必定是会千姿百态的,对于喜欢个性化系统的童鞋来说,修改完后的apk文件(除系统apk外)一般都是要重新签名才能正常安装使用的,电脑端的就不说了,这里讲下手机端的签名方法,快捷方便,不用装java和配置环境变量哈。
ZipSigner手机签名工具(搜一下这个名字就能找到apk软件);
大家都知道,其实安卓apk实际上是一个zip压缩包,所以首先我们要对apk文件进行改名与后缀,将其连同后缀一起改掉,如1.zip:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
这时文件就变成一个zip压缩包了,我们可以提取解压这个压缩包,打开这个解压的文件,你就会看到里面构成程序文件的很多东西,然后你根据网上教程对程序进行简要修改(当然如果要反编译的话就不是这样子了,不过直接解压也是可以修改很多东西的),这里修改操作建议在电脑端完成比较方便,修改后重新将这些文件压缩成zip格式:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
下载安装ZipSigner手机签名工具,并打开:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
点击输入,浏览文件目录找到你刚修改好并重新压缩的zip文件,在输出选项可以修改其名称,然后点击签名,模式为auto-testkey就可以了,等一会就签名未完成了:
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
然后在输出目录中找到你签名并输出的文件,这时为signed.zip,再将其后缀改成.apk,就可以显示出程序图标了,然后安装上去就行,这里要注意,如果已经安装的文件不是你自己签名,而是官方的,会提示签名不一样无法安装,所以你要删除原来的程序才能安装上你自己修改的程序哦。
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
1、在AndroidStudio中打开工程,点击“Build”菜单下的“GenerateSignedAPK”。
2、在“Keystorepath”中输入签名文件路径,输入密码,点击“Next”。如果你没有签名文件,请点击以下链接先生成一个签名文件。
3、修改存放apk文件的路径,并确认界面上的信息都准确无误后,点击“Finish”。
4、稍等片刻,在如下的窗口中可以签名是否成功的消息。如果工程没有错误,就会自动生成带签名的apk。点击最下面的“ShowinExplorer”。
5、这时就会打开EventLog窗口,点击窗口最后的“ShowinExplorer”。
6、现在就会自动跳转到以签名的apk所在路径啦。至此,你就可以在各大应用市场发布这个已签名app啦。
当我们有需求对原apk更改签名时,可采用如下方式
有key的可跳到第2步,没有的在androidstudio中新建key
用rar等软件打开apk文件,然后删除“META-INF”文件夹即可。
其中-keystore后面是自己的key名称;
-storepass和-keypass对应上面新建key的两个密码;
-signedjar第一个参数是添加签名后的apk名称,后面是原apk名称;
key0是上面新建key的Alias名称;
-tsa是为了添加时间戳,添加该选项需要联网。
正常连接上数据线可直接安装
1、在应用程序manifest.xml文件根节点中加入属性:Android:sharedUserId="android.uid.system"
2.使用已经存在的签名到处android应用程序的apk
3.使用压缩软件打开apk,进入META-INF目录下,删除应用程序的3个签名文件
4.到android系统目录build/target/product/security/拷贝系统签名文件:platform.x509.pem、platform.pk8到应用apk中。
5.利用签名工具signapk.jar修改应用程序签名:命令为:java-jarsignapk.jarplatform.x509.pemplatform.pk8test.apktestnew.apk
可以使用jarsigner对未签名的加固包进行签名。
建议使用之前对APP签名时使用的keystore对加固包进行签名
your_key_store_path:密钥所在位置的绝对路径
signed_apk_name:签名后安装包名称
信息usigned_apk_name:未签名的安装包名称
your_key_store_alias:密钥的别名就是你自己创建的.keystore文件
平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以Debug面试进行编译的,因此ADT根据会自动用默认的密钥和证书来进行签名,而在以发布模式编译时,apk文件就不会得到自动签名,这样就需要进行手工签名。
给apk签名可以带来以下好处:
应用程序升级:如果你希望用户无缝升级到新的版本,那么你必须用同一个证书进行签名。这是由于只有以同一个证书签名,系统才会允许安装升级的应用程序。如果你采用了不同的证书,那么系统会要求你的应用程序采用不同的包名称,在这种情况下相当于安装了一个全新的应用程序。如果想升级应用程序,签名证书要相同,包名称要相同。
应用程序模块化:Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序,此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。
代码或者数据共享:Android提供了基于签名的权限机制,那么一个应用程序就可以为另一个以相同证书签名的应用程序公开自己的功能。以同一个证书对多个应用程序进行签名,利用基于签名的权限检查,你就可以在应用程序间以安全的方式共享代码和数据了。不同的应用程序之间,想共享数据,或者共享代码,那么要让他们运行在同一个进程中,而且要让他们用相同的证书签名。