安卓是个开放平台,许多源代码都是开放的,这也注定了这个系统必定是会千姿百态的,对于喜欢个性化系统的童鞋来说,修改完后的apk文件(除系统apk外)一般都是要重新签名才能正常安装使用的,电脑端的就不说了,这里讲下手机端的签名方法,快捷方便,不用装java和配置环境变量哈。
工具/原料
ZipSigner手机签名工具(搜一下这个名字就能找到apk软件);
安卓手机;
方法/步骤1
大家都知道,其实安卓apk实际上是一个zip压缩包,所以首先我们要对apk文件进行改名与后缀,将其连同后缀一起改掉,如1zip:
这时文件就变成一个zip压缩包了,我们可以提取解压这个压缩包,打开这个解压的文件,你就会看到里面构成程序文件的很多东西,然后你根据网上教程对程序进行简要修改(当然如果要反编译的话就不是这样子了,不过直接解压也是可以修改很多东西的),这里修改 *** 作建议在电脑端完成比较方便,修改后重新将这些文件压缩成zip格式:
下载安装ZipSigner手机签名工具,并打开:
点击输入,浏览文件目录找到你刚修改好并重新压缩的zip文件,在输出选项可以修改其名称,然后点击签名,模式为auto-testkey就可以了,等一会就签名未完成了:
然后在输出目录中找到你签名并输出的文件,这时为signedzip,再将其后缀改成apk,就可以显示出程序图标了,然后安装上去就行,这里要注意,如果已经安装的文件不是你自己签名,而是官方的,会提示签名不一样无法安装,所以你要删除原来的程序才能安装上你自己修改的程序哦。
不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名。·所有的程序都必须签名,没有被签名的程序,系统将不能安装。
·可使用自签署证书签署应用程序,无须授权凭证。
·系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用。
·可以使用标准工具-Keytool and Jarsigner-生成密钥,来签名应用程序的apk文件。
Android SDK 工具可以在调试时给应用程序签名。ADT插件和Ant编译工具都提供了两种签名模式-debug模式和release模式
·debug模式下,编译工具使用JDK中的通用程序Keytool通过已知方法和密码创建秘锁和密钥。每次编译的时候,工具使用debug密钥签名应用程序的apk文件。因为密码是已知的,工具不需要在每次编译的时候提示输入密锁和密钥。
以下介绍查看自己的应用签名及三方APK或系统APK签名信息,包含其中的MD5、SHA1、SHA256值和签名算法等信息。
1、查看自己的应用签名可以通过两种方式查看(1) debug的apk通过Eclipse查看,如下图:
(2) 某个keystore签名的应用,通过以下命令查看
keytool -list -keystore E:\Trinea\keystore\appsearchkeystore,会要求输入签名密码,默认为android,如下图:
2、查看三方应用或是系统应用签名用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERTRSA文件,通过keytool -printcert -file META-INF/CERTRSA命令打印证书信息,如微信证书信息如下图:
可以查看签名的MD5、SHA1、SHA256值及签名算法
根据这个页面提供的一个工具 签名生成工具
>
签名比较深奥 这是具有唯一性的 你什么游戏或者软件提示签名不一致了 去原网站下载就好了 比如你原来用安卓市场 就不用理那些别的安卓市场更新提醒 不然很容易就会签名不一致
publicvoidgetSingInfo(){try{PackageInfopackageInfo=getPackageManager()getPackageInfo("comexampleyao",PackageManagerGET_SIGNATURES);Signature[]signs=packageInfosignatures;Signaturesign=signs[0];parseSignature(signtoByteArray());}catch(Exceptione){eprintStackTrace();}}publicvoidparseSignature(byte[]signature){try{CertificateFactorycertFactory=CertificateFactorygetInstance("X509");X509Certificatecert=(X509Certificate)certFactorygenerateCertificate(newByteArrayInputStream(signature));StringpubKey=certgetPublicKey()toString();StringsignNumber=certgetSerialNumber()toString();Systemoutprintln("pubKey:"+pubKey);Systemoutprintln("signNumber:"+signNumber);}catch(CertificateExceptione){eprintStackTrace();}}
以上就是关于手机app怎么修改签名全部的内容,包括:手机app怎么修改签名、如何对Android的APP进行签名、如何查看android应用签名文件的信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)