當前位置:首頁 » 安卓系統 » android獲取apk的簽名

android獲取apk的簽名

發布時間: 2023-02-02 22:19:44

⑴ 怎樣查看android的apk文件的簽名

以下介紹查看自己的應用簽名及三方APK或系統APK簽名信息,包含其中的MD5、SHA1、SHA256值和簽名演算法等信息。

1、查看自己的應用簽名
可以通過兩種方式查看
(1) debug的apk通過Eclipse查看,如下圖:

可以查看簽名的MD5、SHA1、SHA256值及簽名演算法

⑵ 獲取APK/簽名文件的SHA1證書,MD5

在發布應用的時候,需要通過keystore文件對apk包進行簽名,才能發布到市場上。
在使用微信平台服務時或者其他需要提供MD5值的時候,該如何獲取APK/簽名文件的SHA1證書,MD5呢?

提供三種種方式:
1.通過Android Studio的命令輸入來獲取:
keytool -list -v -keystore xxx.jks
keytool -list -v -keystore xxx.keystore

2.通過解壓apk來獲取:
1) 將apk修改後綴為 .rar文件後解壓;
2) 進入解壓後的META-INF目錄,該目錄下會存在文件CERT.RSA
3) 在該目錄下打開cmd,輸入命令 :keytool -printcert -file CERT.RSA

3.通過Eclipse獲取
依次在 Eclipse 中打開 Window -> Preferances -> Android -> Build。

Well done!

⑶ Android開發對apk文件進行簽名

對apk簽名的步驟(適用於找回apk,對空包進行簽名)

1.復制java的jdk,bin目錄的絕對路徑(如果是默認安裝應該和我的路徑差不多)C:\Program Files\Java\jdk1.8.0_111\bin

2.進入cmd窗口,進入bin目錄(如果是新手,輸入cd C:\Program Files\Java\jdk1.8.0_111\bin)

輸入命令   jarsigner -verbose -keystore d:\project\360Wallpaper.keystore -signedjar d:\qihusign.apk d:\Qihuunsign.apk QIHU360

將簽名修改成自己簽名的路徑 ,生成的apk文件的名字路徑修改一下,再輸入需要簽名的apk文件路徑,最後輸入自己簽名的別名就可以

(新手,歡迎指正)

⑷ Android apk 系統簽名

因工作需要對系統的wifi和乙太網進行配置,需要獲取到系統許可權以後才能進行操作,因此研究了下對apk 進行系統簽名以獲取系統許可權,其實本來打算如果root可以的話直接通過root的方式(設備已經root),後來找了半天發現沒有api進行修改,無奈只能進行系統簽名了,有童鞋知道root方式修改不妨告訴我一下。

這些文件可以問系統廠商獲取,如果是原生系統可以到系統源碼目錄下獲取。

如果報以下的錯誤 ,這時候就用到准備的libconscrypt_openjdk_jni.so 文件

為了檢測我們的應用是否已經簽名成功 可以獲取系統許可權,看看能否獲取到。

結果:

在上一種方式中,我們成功對我們的apk進行了系統簽名,並且能使用系統許可權,但是必須每次打包出apk再進行簽名 對調試很不方便,下面我們可以生成帶有系統簽名的簽名文件,在項目中使用,就不需要每次手動進行簽名。

bubble可以替換為自己喜歡的名稱,這一步要輸入密碼,我嘗試輸入其他不行,只能輸入android。

bubble 可替換為自己喜歡的password和alias

到這里 兩種對app進行系統簽名的方式完成,如有不足,歡迎指出.

⑸ 如何獲取apk的簽名信息

在網站需要管理apk的功能時,經常需要校驗上傳者提供的apk文件,校驗開發者簽名,包名和版本等。如何獲取apk文件的簽名信息呢?

通過如下幾個步驟便可實現:

apksigner.jar通常包含在Android SDK中可。如果你不是Android開發者, 可找Android開發同學拿一下,路徑一般在Android SDK/build-tools/ {SDK版本} /lib/apksigner.jar
不同的SDK版本中均有一個,取最新版本的就好了。

輸出示例: (個人信息已加***處理, 請以實際輸出為准)

通過輸出內容可以發現,其中包含apk使用的簽名版本(v1/v2/v3/v4)信息外,還有開發者證書相關的信息。
接下來通過程序裁剪出你想要的信息便大功告成了。

⑹ PHP獲取安卓apk包里的apk簽名

所需工具:aapt,Android SDK中的工具,只有一個exe,可以直接運行。
keytool,JDK中的工具,需要安裝JDK環境。

需要提供目標應用的apk

1、獲取包名

例如:aapt.exe mp badging C:\Users\Administrator\Desktop\demo-apk-1.0.1.8791.apk > C:\Users\Administrator\Desktop\1.txt
獲取到的包名是com.pakgname.swbg

2、獲取簽名

SHA1: 56:BD:02:6B:9D:53:D7:F5:32:B2:BC:BD:BB:34:5B:F1:CD:EF:7F:C0

這里藉助github開源的類apkparser
在項目composer.json中執行下面命令或修改composer.json引入即可

方法二適用於沒有JAVA環境的情況下,一般linux都會有openssl環境。
原理:通過分析方法一中,發現apk包解壓之後,裡面會有.rsa簽名證書,此證書是一個符合pki體系的x509證書,通過openssl命令即可查看信息。

⑺ 怎樣查看android的apk文件的簽名

操作如下:

1,通過apktool工具解壓當前apk(比如:demo.apk),解壓後,會生成CERT.RSA文件
**** apktool d demo.apk。備註:通過這種方式解壓出來的Androidmenifest.xml文件可以通過文件編輯器打開查看

2,通過keytool命令獲取簽名信息
keytool -printcert -file C:-INFCERT.RSA所有者: CN=ryt, OU=ryt, O=ryt, L=nanjing, ST=china, C=cn發布者: CN=ryt, OU=ryt,O=ryt, L=nanjing, ST=china, C=cn

⑻ 獲取apk的簽名信息

在接入第三方功能時,經常要注冊提交apk的簽名信息 (sha1簽名)?,下面列出相關步驟。

獲取apk簽名信息的步驟:

1)修改apk後綴名為zip,解壓得到其中的META-INF文件夾;

2)把META-INF文件夾放到C盤根目錄下;

3)在dos面板中,  敲入命令:  keytool -printcert -file C:\META-INF\CERT.RSA  命令,即可獲取sha1簽名信息

————————————————————————————>

大神說:一步就能搞定

在dos面板中,  敲入命令:keytool -printcert -jarfile debug.apk

⑼ android 系統簽名

也有提到怎麼單獨給一個apk簽名,這里補充一下android的簽名許可權控制機制。

android的標准簽名key有:

     testkey

     media

    latform

    hared

    以上的四種,可以在源碼的/build/target/proct/security裡面看到對應的密鑰,其中shared.pk8代表私鑰,shared.x509.pem公鑰,一定是成對出現的。

    其中testkey是作為android編譯的時候默認的簽名key,如果系統中的apk的android.mk中沒有設置LOCAL_CERTIFICATE的值,就默認使用testkey。

   而如果設置成:

   LOCAL_CERTIFICATE := platform

    就代表使用platform來簽名,這樣的話這個apk就擁有了和system相同的簽名,因為系統級別的簽名也是使用的platform來簽名,此時使用android:sharedUserId="android.uid.system"才有用!

     在/build/target/proct/security目錄下有個README,裡面有說怎麼製作這些key以及使用問題(android4.2):

     從上面可以看出來在源碼下的/development/tools目錄下有個make_key的腳本,通過傳入兩個參數就可以生成一對簽名用的key。

    其中第一個為key的名字,一般都默認成android本身有的,因為很多地方都默認使用了這些名字,我們自定義的話只需要對第二個參數動手腳,定義如下:

    C ---> Country Name (2 letter code) ST ---> State or Province Name (full name) L ---> Locality Name (eg, city) O ---> Organization Name (eg, company) OU ---> Organizational Unit Name (eg, section) CN ---> Common Name (eg, your name or your server』s hostname) emailAddress ---> Contact email addre

    另外在使用上面的make_key腳本生成key的過程中會提示輸入password,我的處理是不輸入,直接enter,不要密碼!後面解釋,用自定義的key替換/security下面的。

    可以看到android源碼裡面的key使用的第二個參數就是上面README裡面的,是公開的,所以要release版本的系統的話,肯定要有自己的簽名key才能起到一個安全控製作用。

    在上面提到如果apk中的編譯選項LOCAL_CERTIFICATE沒有設置的話,就會使用默認的testkey作為簽名key,我們可以修改成自己想要的key,按照上面的步驟製作一個releasekey,修改android配置在/build/core/config.mk中定義變數:

在主makefile文件裡面:

ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/target/proct/security/releasekey)

  BUILD_VERSION_TAGS += release-key

這樣的話默認的所有簽名將會使用releasekey。

修改完之後就要編譯了,如果上面的這些key在製作的時候輸入了password就會出現如下錯誤:

我在網上找到了合理的解釋:

其實會出現這個錯誤的最根本的原因是多線程的問題。在編譯的時候為了加速一般都會執行make -jxxx,這樣本來需要手動輸入密碼的時候,由於其它線程的運行,就會導致影響當前的輸入終端,所以就會導緻密碼無法輸入的情況!

再編譯完成之後也可以在build.prop中查看到變數:

這樣處理了之後編譯出來的都是簽名過的了,系統才算是release版本

我發現我這樣處理之後,整個系統的算是全部按照我的要求簽名了。

網上看到還有另外的簽名release辦法,但是應該是針對另外的版本的,借用學習一下:

make -j4 PRODUCT-proct_mol-user dist

這個怎麼跟平時的編譯不一樣,後面多了兩個參數PRODUCT-proct_mol-user 和 dist. 編譯完成之後回在源碼/out/dist/目錄內生成個proct_mol-target_files開頭的zip文件.這就是我們需要進行簽名的文件系統.

我的proct_mol 是full_gotechcn,後面加「-user」代表的是最終用戶版本,關於這個命名以及proct_mol等可參考http://blog.csdn.net/jscese/article/details/23931159

編譯出需要簽名的zip壓縮包之後,就是利用/security下面的准備的key進行簽名了:

./build/tools/releasetools/sign_target_files_apks -d /build/target/proct/security  out/dist/full_gotechcn-target_files.zip   out/dist/signed_target_files.zi

簽名目標文件 輸出成signed_target_files.zi

如果出現某些apk出錯,可以通過在full_gotechcn-target_files.zip前面加參數"-e =" 來過濾這些apk.

然後再通過image的腳本生成imag的zip文件,這種方式不適用與我目前的工程源碼,沒有做過多驗證!

Android簽名機制可劃分為兩部分:(1)ROM簽名機制;(2)第三方APK簽名機制。

Android APK實際上是一個jar包,而jar包又是一個zip包。APK包的簽名實際上使用的是jar包的簽名機制:在zip中添加一個META的子目錄,其中存放簽名信息;而簽名方法是為zip包中的每個文件計算其HASH值,得到簽名文件(*.sf),然後對簽名文件(.sf)進行簽名並把簽名保存在簽名塊文件(*.dsa)中。

在編譯Android源碼生成ROM的過程中,會使用build/target/proct/security目錄中的4個key(media, platform, shared, testkey)來對apk進行簽名。其中,*.pk8是二進制形式(DER)的私鑰,*.x509.pem是對應的X509公鑰證書(BASE64編碼)。build/target/proct/security目錄中的這幾個默認key是沒有密碼保護的,只能用於debug版本的ROM。

要生成Release版本的ROM,可先生成TargetFiles,再使用帶密碼的key對TargetFiles重新簽名,最後由重簽名的TargetFiles來生成最終的ROM。

可以使用Android源碼樹中自帶的工具「development/tools/make_key」來生成帶密碼的RSA公私鑰對(實際上是通過openssl來生成的): $ development/tools/make_key media 『/C=CN/ST=Sichuan/L=Cheng/O=MyOrg/OU=MyDepartment/CN=MyName』 上面的命令將生成一個二進制形式(DER)的私鑰文件「media.pk8」和一個對應的X509公鑰證書文件「media.x509.pem」。其中,/C表示「Country Code」,/ST表示「State or Province」,/L表示「City or Locality」,/O表示「Organization」,/OU表示「Organizational Unit」,/CN表示「Name」。前面的命令生成的RSA公鑰的e值為3,可以修改development/tools/make_key腳本來使用F4 (0×10001)作為e值(openssl genrsa的-3參數改為-f4)。

也可以使用JDK中的keytool來生成公私鑰對,第三方APK簽名一般都是通過keytool來生成公私鑰對的。

可以使用openssl x509命令來查看公鑰證書的詳細信息: $ openssl x509 -in media.x509.pem -text -noout or, $ openssl x509 -in media.x509.pem -inform PEM -text -noout

還可以使用JDK中的keytool來查看公鑰證書內容,但其輸出內容沒有openssl x509全面: $ keytool -printcert -v -file media.x509.pem

有了key之後,可以使用工具「build/tools/releasetools/sign_target_files」來對TargetFiles重新簽名: $ build/tools/releasetools/sign_target_files_apks -d new_keys_dir -o target_files.zip target_files_resigned.zip 其中,new_keys_dir目錄中需要有四個key(media, platform, shared, releasekey)。注意:這里的releasekey將代替默認的testkey(請參考build/tools/releasetools/sign_target_files腳本實現),也就是說,如果某個apk的Android.mk文件中的LOCAL_CERTIFICATE為testkey,那麼在生成TargetFiles時是使用的build/target/proct/security/testkey來簽名的,這里重新簽名時將使用new_keys_dir/releasekey來簽名。

uild/tools/releasetools/sign_target_files_apks是通過host/linux-x86/framework/signapk.jar來完成簽名的。也可以直接使用host/linux-x86/framework/signapk.jar來對某個apk進行簽名: $ java -jar signapk [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar 其中,」-w」表示還對整個apk包(zip包)進行簽名,並把簽名放在zip包的comment中。

對於第三方應用開發者而言,對APK簽名相對要簡單得多。第三方應用開發一般採用JDK中的keytool和jarsigner來完成簽名密鑰的管理和APK的簽名。

使用keytool來生成存儲有公私鑰對的keystore: $ keytool -genkey -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000

查看生成的密鑰信息: $ keytool -list -keystore my-release-key.keystore -alias mykey -v or, $ keytool -list -keystore my-release-key.keystore -alias mykey -rfc (註:獲取Base64格式的公鑰證書,RFC 1421)

導出公鑰證書: $ keytool -export -keystore mystore -alias mykey -file my.der (註:二進制格式公鑰證書,DER) $ keytool -export -keystore mystore -alias mykey -file my.pem -rfc (註:Base64格式公鑰證書,PEM)

對APK進行簽名: $ jarsigner -verbose -keystore my-release-key.keystore my_application.apk mykey

驗證簽名: $ jarsigner -verify -verbose -certs my_application.apk

在進行Android二次開發時,有時需要把build/target/proct/security下面的公私鑰對轉換為keystore的形式,可以參考這篇文章:把Android源碼中的密碼對轉換為keystore的方法。

⑽ 查看apk的簽名信息

1.將 apk 解壓;

2.找到 META-INF 下的 .RSA 文件;

3.進入 cmd 環境,進入 .RSA 文件文件所在路徑,命令: keytool -printcert -file XXX.RSA 即可查看簽名信息。

1. cmd 環境下進入 C:\Users\用戶名\.android目錄 下;

2. keytool -list -v -keystore debug.keystore ;

熱點內容
我的世界minez網易伺服器 發布:2024-04-27 05:09:26 瀏覽:384
易網頁源碼 發布:2024-04-27 04:51:06 瀏覽:864
攜程伺服器是什麼牌子 發布:2024-04-27 04:31:50 瀏覽:745
醫院新冠肺炎疫情防控演練腳本 發布:2024-04-27 04:04:45 瀏覽:652
天津智慧網關伺服器雲伺服器 發布:2024-04-27 03:56:51 瀏覽:422
移門製作下料尺寸演算法 發布:2024-04-27 03:15:02 瀏覽:641
c語言5常量 發布:2024-04-27 02:38:49 瀏覽:991
源碼怎麼搭建 發布:2024-04-27 02:33:44 瀏覽:97
java獲取參數 發布:2024-04-27 02:22:21 瀏覽:501
unixlinuxwindows 發布:2024-04-27 02:10:55 瀏覽:445