您现在的位置是: 首页 > 经典语录 经典语录

apk签名信息在哪个文件查看

ysladmin 2024-05-13 人已围观

简介apk签名信息在哪个文件查看       大家好,今天我想和大家探讨一下关于apk签名信息在哪个文件查看的问题。在这个话题上,有很多不同的观点和看法,但我相信通过深入探讨,我们可以更好地理

apk签名信息在哪个文件查看

       大家好,今天我想和大家探讨一下关于apk签名信息在哪个文件查看的问题。在这个话题上,有很多不同的观点和看法,但我相信通过深入探讨,我们可以更好地理解它的本质。现在,我将我的理解进行了归纳整理,让我们一起来看看吧。

1.如何查看apk签名和生成签名文件

2.android 怎么查看签名文件

3.如何检测android 文件签名成功

4.如何获取android 签名信息

5.如何通过eclipse 查看apk的签名

6.android studio默认apk签名怎么查看

apk签名信息在哪个文件查看

如何查看apk签名和生成签名文件

       一般在证书包里面有个文档,上面都是有签名的。

       如果没有,那么久需要下载一个工具GenSignature安装到手机上面。

       安装好上述工具之后把apk包下载到手机上安装好。

       安装好之后打开GenSignature,然后输入你apk文件的包名,就可以查看签名了。

android 怎么查看签名文件

       签名的apk自己无法查看,是安装的时候android系统验证用的。

       1.签名的意义

       为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。

       2.签名的步骤

       a.创建key

       b.使用步骤a中产生的key对apk签名

       3.具体操作, 命令行下对apk签名(原理)

       创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入

       D:\>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore/*说明:-genkey 产生密钥 -alias demo.keystore 别名 demo.keystore -keyalg RSA 使用RSA算法对签名加密 -validity 40000 有效期限4000天 -keystore demo.keystore */D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore 密钥库位置 -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/

       注意事项:android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。

如何检测android 文件签名成功

       方法/步骤

       对apk的签名需要把项目导入到android

       studio软件中,进行点击菜单中“build”选项,弹出的下拉菜单中的“generate

       signed

       apk”.

       进入到generate

       signed

       apk中界面框中,因第一次对apk的签名,就需要先创建签名文件钥匙,点击”create

       new“的按钮。

       进行选择钥匙保存的位置,指定到磁盘的位置,然后在文件昵称填入,点击“ok”的选项。

       进入到new

       key

       store的界面中,根据界面中提示信息输入内容信息,输入完成之后点击“ok”。

       钥匙创建完成之后,进行点击"next下一步"操作。

       在进入到这个界面中选择apk生成保存的位置,然后在build

       type中选择release的选项,然后点击“finish”的选项,这样就生成到apk的保存路径中。

如何获取android 签名信息

       右键解压apk,打开其中的META-INF文件,得到其中的CERT.RSA文件,通过命令keytool.exe命令查看证书信息。可以查看签名的MD5、SHA1、SHA256值及签名算法

       命令行如下:

        // META-INF/CERT.RSA 为你解压出来的CERT.RSA的路径

        keytool -printcert -file META-INF/CERT.RSA

       如果得到的签名信息跟你签名是一致的,即成功。

如何通过eclipse 查看apk的签名

       android中有时候需要获取应用的签名信息,签名信息一般有:公钥,算法名,MD5值,序列号。要想获取这些信息首先该APK应用要有系统权限。

       1. 在配置文件里添加系统权限:android:sharedUserId="android.uid.system"

       2. 获取签名信息的字符信息:

        String signature_key = "";

        try{

       PackageInfo packageInfo = context.getPackageManager().getPackageInfo(pkgName,

       PackageManager.GET_SIGNATURES);

       Signature[] signatures =

       packageInfo.signatures;

       SignatureKey.parseSignature(signatures[0].toByteArray());

       } catch (NameNotFoundException e) {

        e.printStackTrace();

       } catch (NullPointerException e) {

        e.printStackTrace();

       }

       (1).其中packageInfo 得到的是指定包名的签名信息的字符串。另提及多说一句:在程序中我们一般使用

       List list =

       mPackageManager.getInstalledPackages(0);来得到所有的安装包的信息,这其中包括应用名,包名,大小....

       (2).

       其中[]signatures里是存放的签名的字符串数组。我们一般取用第一个signatures[0]来做为该应用的签名信息。这里有一个疑惑就是为什么得到的是一个字符串的数组列表,而不是一个字符串,也有的开发者采用:

       StringBuilder builder = new StringBuilder();

       for(Signature sign: signatures

       ){

        builder.append(sign.toCharsString());

        builder.append("/n");

       }来得到所有的签名信息。在这里我验证过,signatures

       的长度为1,所以指定apk的签名信息就为signatures[0]。

       至于第二种方法有待发现。

       3 .获取签名的MD5值

        public static final String getMD5String(byte[] paramArrayOfByte)

       {

        char[] asciiTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,

       97, 98, 99, 100, 101, 102 }; // ascii表对应的数字和字符的编码

        try

       {

        MessageDigest md5MessageDigest =

       MessageDigest.getInstance("MD5");

        md5MessageDigest.update(paramArrayOfByte);//

        byte[]

       tempByte = md5MessageDigest.digest();

        int i =

       tempByte.length;

        char[] tempChar = new char[i *

       2];

        int j = 0;

        int k =

       0;

        while (true) { //

       将二进制数组转换成字符串

        if (j >= i)

       {

        return new

       String(tempChar);

        }

        int m

        = tempByte[j];

        int n = k +

       1;

        tempChar[k] = asciiTable[(0xF & m >>>

       4)];

        k = n +

       1;

        tempChar[n] = asciiTable[(m &

       0xF)];

        j++;

        }

        }

       catch (Exception e)

       {

        e.printStackTrace();

        }

        return

       null;

        }

       (1). 其中参数就是上一步得到的签名的byte数组。

       4. 获取公钥,签名算法,签名序列号

        public static void parseSignature(byte[] signature)

       {

        try

       {

        CertificateFactory

       certFactory =

       CertificateFactory.getInstance("X.509");

       X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new

       ByteArrayInputStream(signature));

       String pubKey =

       cert.getPublicKey().toString(); //公钥

       String signNumber =

       cert.getSerialNumber().toString();

       System.out.println("signName:" +

       cert.getSigAlgName());//算法名

       System.out.println("pubKey:" +

       pubKey);

       System.out.println("signNumber:" +

       signNumber);//证书序列编号

       System.out.println("subjectDN:"+cert.getSubjectDN().toString());

       } catch (CertificateException e)

       {

       e.printStackTrace();

        }

        }

        5. 电脑查看APK签名信息

       查看三方应用或是系统应用签名

       用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件

       1.keytool

       -printcert -file META-INF/CERT.RSA

        命令是:keytool -printcert -file

       <签名文件RSA的路径>

       2.jarsigner -verify -verbose -certs Superuser.apk

       此条未验证成功

android studio默认apk签名怎么查看

       给apk文件签名主要分三步:1、创建证书2、签名3、优化(可选)1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore 2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk 3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。

怎么查看apk的签名 keystore

       android

       studio和eclipse有点不同就是生成apk不是直接右键项目,而是在菜单项的building中的去通过sign去签名apk,然后会在这个项目的构建环境的output中生成apk文件

       1、查看 keystore

       $ keytool -list -v -keystore debug.keystore

       $ keytool -list -v -keystore debug.keystore

       Enter keystore password:

       ***************** WARNING WARNING WARNING *****************

       * The integrity of the information stored in your keystore *

       * has NOT been verified! In order to verify its integrity, *

       * you must provide your keystore password. *

       ***************** WARNING WARNING WARNING *****************

       Keystore type: JKS

       Keystore provider: SUN

       Your keystore contains 1 entry

       Alias name: androiddebugkey

       Creation date: Apr 8, 2015

       Entry type: PrivateKeyEntry

       Certificate chain length: 1

       Certificate[1]:

       Owner: CN=Android Debug, O=Android, C=US

       Issuer: CN=Android Debug, O=Android, C=US

       Serial number: 509aeb88

       Valid from: Wed Apr 08 20:48:48 CST 2015 until: Fri Mar 31 20:48:48 CST 2045

       Certificate fingerprints:

        MD5: 38:43:E1:B6:AB:F2:7F:80:93:CD:E5:EF:75:B9:A5:6C

        SHA1: 9D:53:DB:6C:DA:D4:08:B3:D4:A6:E5:26:17:BD:80:FA:5A:E4:4F:AB

        SHA256: D5:FF:04:4A:A2:F8:A4:EA:2A:44:53:28:0C:20:16:45:E8:71:AC:B1:74:76:F6:B4:01:90:86:83:73:E0:B0:8A

        Signature algorithm name: SHA256withRSA

        Version: 3

       Extensions:

       #1: ObjectId: 2.5.29.14 Criticality=false

       SubjectKeyIdentifier [

       KeyIdentifier [

       0000: B2 FF B2 0D 9C 54 BA BA A2 EF E3 BA E2 47 90 7F .....T.......G..

       0010: 17 8A 35 A8 ..5.

       ]

       ]

       *******************************************

       2、查看三方应用或是系统应用签名

       打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件

       $ keytool -printcert -file META-INF/CERT.RSA

       打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERT.RSA文件

       $ keytool -printcert -file META-INF/CERT.RSA

       Owner: CN=Android Debug, O=Android, C=US

       Issuer: CN=Android Debug, O=Android, C=US

       Serial number: 514ab2e1

       Valid from: Thu Mar 21 15:12:33 CST 2013 until: Sat Mar 14 15:12:33 CST 2043

       Certificate fingerprints:

       MD5: E0:F4:90:EE:CD:77:17:0E:B8:C4:AC:64:B2:F6:FC:83

       SHA1: 7F:E5:11:D8:37:4F:DA:D7:75:EA:A5:8C:47:06:85:95:6D:1D:3F:2B

       Signature algorithm name: SHA1withRSA

       Version: 3

       3、给空白包签名 (注意 alias 值)

       jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]

       jarsigner命令格式:-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件

       keystorePath参数代表keyStore的绝对路径,如D:\keystore

       apkOut参数代表签名后的apk路径,如D:\signed.apk

       apkin参数代表在腾讯应用中心下载的未签名apk,默认名称为tap_unsign.apk

       alias参数代表签名用的alias名称(创建keyStore时所填写),如timdong

       $ jarsigner -verbose -keystore debug.keystore -signedjar test2.apk tap_unsign1.apk timdong

       Enter Passphrase for keystore:

        adding: META-INF/MANIFEST.MF

        adding: META-INF/ANDROIDD.SF

        adding: META-INF/ANDROIDD.RSA

        signing: res/drawable/ic_launcher.png

        signing: res/layout/main.xml

        signing: AndroidManifest.xml

        signing: resources.arsc

        signing: classes.dex

       今天关于“apk签名信息在哪个文件查看”的讨论就到这里了。希望通过今天的讲解,您能对这个主题有更深入的理解。如果您有任何问题或需要进一步的信息,请随时告诉我。我将竭诚为您服务。