android查看簽名工具
⑴ Android中APK簽名工具之jarsigner和apksigner詳解
轉自 https://www.cnblogs.com/slysky/p/9780015.html
一.工具介紹
jarsigner是JDK提供的針對jar包簽名的通用工具,
位於JDK/bin/jarsigner.exe
apksigner是Google官方提供的針對Android apk簽名及驗證的專用工具,
位於Android SDK/build-tools/SDK版本/apksigner.bat
不管是apk包,還是jar包,本質都是zip格式的壓縮包,所以它們的簽名過程都差不多(僅限V1簽名),
以上兩個工具都可以對Android apk包進行簽名.
1.V1和V2簽名的區別
在Android Studio中點擊菜單 Build->Generate signed apk... 打包簽名有兩種簽名選項 V1(Jar Signature) V2(Full APK Signature),
從Android 7.0開始, 谷歌增加新簽名方案 V2 Scheme (APK Signature);
但Android 7.0以下版本, 只能用舊簽名方案 V1 scheme (JAR signing)
V1簽名:
V2簽名:
V2簽名優點很明顯:
注意: apksigner工具默認同時使用V1和V2簽名,以兼容Android 7.0以下版本
2.zipalign和V2簽名
位於Android SDK/build-tools/SDK版本/zipalign.exe
zipalign 是對zip包對齊的工具,使APK包內未壓縮的數據有序排列對齊,從而減少APP運行時內存消耗
zipalign -v 4 in.apk out.apk //4位元組對齊優化
zipalign -c -v 4 in.apk //檢查APK是否對齊
zipalign可以在V1簽名後執行
但zipalign不能在V2簽名後執行,只能在V2簽名之前執行!!!
二.簽名步驟
1.生成密鑰對(已有密鑰庫,可忽略)
Android Studio在Debug時,對App簽名都會使用一個默認的密鑰庫:
1.生成密鑰對
進入JDK/bin, 輸入命令
參數:
提示: 可重復使用此條命令,在同一密鑰庫中創建多條密鑰對
例如: 在debug.keystore中新增一對密鑰,別名是release
keytool -genkeypair -keystore debug.keystore -alias release -validity 30000
2.查看密鑰庫
進入JDK/bin, 輸入命令
keytool -list -v -keystore 密鑰庫名
參數:
例如:
keytool -list -v -keystore debug.keystore
現在debug.keystore密鑰庫中有兩對密鑰, 別名分別是androiddebugkey release
2.簽名
1.方法一(jarsigner,只支持V1簽名)
進入JDK/bin, 輸入命令
從JDK7開始, jarsigner默認演算法是SHA256, 但Android 4.2以下不支持該演算法,
所以需要修改演算法, 添加參數 -digestalg SHA1 -sigalg SHA1withRSA
參數:
例如:
用JDK7及以上jarsigner簽名,不支持Android 4.2 以下
jarsigner -keystore debug.keystore MyApp.apk androiddebugkey
用JDK7及以上jarsigner簽名,兼容Android 4.2 以下
jarsigner -keystore debug.keystore -digestalg SHA1 -sigalg SHA1withRSA MyApp.apk androiddebugkey
2.方法二(apksigner,默認同時使用V1和V2簽名)
進入Android SDK/build-tools/SDK版本, 輸入命令
若密鑰庫中有多個密鑰對,則必須指定密鑰別名
禁用V2簽名
apksigner sign --v2-signing-enabled false --ks 密鑰庫名 xxx.apk
參數:
例如:
在debug.keystore密鑰庫只有一個密鑰對
apksigner sign --ks debug.keystore MyApp.apk
在debug.keystore密鑰庫中有多個密鑰對,所以必須指定密鑰別名
apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
3.簽名驗證
1.方法一(keytool,只支持V1簽名校驗)
進入JDK/bin, 輸入命令
keytool -printcert -jarfile MyApp.apk (顯示簽名證書信息)
參數:
2.方法二(apksigner,支持V1和V2簽名校驗)
進入Android SDK/build-tools/SDK版本, 輸入命令
apksigner verify -v --print-certs xxx.apk
參數:
例如:
apksigner verify -v MyApp.apk
⑵ 通過AndroidStudio獲取簽名文件信息
1、查看apk安姿閉乎裝文件的簽名信息
右鍵解壓apk,態源打開其中的META-INF文件,得到其中的CERT.RSA文件。
在AndroidStudio中打開 Terminal 執行命令keytool -printcert -file XXX(XXX為CERT.RSA文件路跡悉徑)可以查看簽名的MD5、SHA1、SHA256值。
2、直接查看簽名文件的信息
在AndroidStudio中打開 Terminal 執行命令keytool -list -v -keystore XXX(XXX為簽名文件路徑)
再輸入密碼可以查看簽名的MD5、SHA1、SHA256值。
效果圖:
⑶ 如何查看android 應用簽名
1、查看自己的應用簽名可以通過兩種方式查看(1) debug的apk通過Eclipse查看,:
(2) 某個keystore簽名的應用,通過
Java
keytool -list -keystore E:\Trinea\keystore\appsearch.keystore
查看,會要求輸入簽名密碼,默認為android,:
2、查看三方應用或是系統應用簽名用winrar打開待查看的apk,將其中META-INF文件夾解壓出來,得到其中的CERT.RSA文件,通過
Java
keytool -printcert -file META-INF/CERT.RSA
命令列印證書信息,如微信證書信息:
可以查看簽名的MD5、SHA1、SHA256值及簽名演算法
⑷ android 微信開放平台,如何獲取應用簽名
在微信開放平台申請app應用的時候,遇到要填寫 應用簽名 一欄。
找到簽名文件
keytool -list -v -keystore xxx.keystore
證書指紋節點下岩卜彎的MD5值轉成小寫,去掉冒號。
首先跟隨 生成keystore和應用簽名 ,生成 .jks 簽名文件,
然後跟隨 微信開放平台Android應用簽名的本質及如何獲取 的第三、四步,生成帶簽名的apk,並用專門的工具查看應用簽名。
最後用工具查看到應用簽名後,我們發現,其實它就是keystore文件的MD5值。
這樣,我們就能夠 查看應用簽名了
如果你在 修改簽名 後,進入微信授權頁面失敗,且提粗悶示"應用簽名與微信開放平台上的簽名不一致",有可能是 微信緩存 的緣故。
根據 android之微信開放平台修改簽名 ,只要清理微信緩存,或重裝微信即可。
接下來還有一個問題沒解決:
解決方法參考 Android Studio直接運行調試簽名包
但這樣的做法會顯示暴露keystore信息,所以跟隨 Android Studio的兩種模式及簽名配置 的後半部分,可以讓弊螞項目間接引入keystore信息。
⑸ android怎樣獲取應用簽名信息
android 應用簽名獲取方法如下:
1、選擇程序,右鍵--->android tools --->簽名發布,按步驟生成一個簽名keystore和畢沖一個經過簽名的apk,安裝該APK到手機;
2、選擇自己的程序,右鍵運行到手機
3、下載簽名應用,在手機中運行,根據提示輸入程序的包名羨培獲得一個apk簽名字元串,最後將這個字元串填到第一步的應用簽名欄處。保存即可正常調試應用了。
android 應用簽名查看方法如下:
(1) debug的apk通過Eclipse查看,如下圖:
⑹ Android查看應用簽名方法
查看應用簽名的MD5、SHA1、SHA256值及簽名演算法。
查看keystore文件簽名信息,前提要有keystore文件和密鑰,才能夠獲取keystore文件的簽名信息。
方法一:(適用於 AS)
1)打開 AS工具窗口欄右邊的 Gradle -> Project -> app -> Tasks -> android -> signingReport,雙擊運行 signingReport;
在沒有keystore文件和密鑰的情況下,要想查看我們所需應用的簽名信息,就需要藉助 keytool 工具來完成。
首先解壓要查看的apk包,通過數據證書管理工具 keytool 查看早禪姿apk的簽名信息。具體步驟如下:
1)將apk修改後綴為 .rar 文件後進行解壓;
2)進入解壓後的 META-INF 目錄,找到該目錄下的 xxx.RSA 文件;
3)通過命令 cmd 打開DOS窗口,輸入命令 : keytool -printcert -file [RSA文件路徑]
在查看應用簽名信陸絕息過程中,可能會遇到以下幾個問題:
定位 keytool.exe 工具所在的目錄,使用相關操作命令查襲敗看簽名信息;
JKS(Java KeyStore) :是 Java 的 keytools 證書工具支持的證書私鑰格式。jks 包含了公鑰和私鑰,可以通過 keytool 工具來將公鑰和私鑰導出。因為包含了私鑰,所以 jks 文件通常通過一個密碼來加以保護。一般用於 Java 或者 Tomcat 伺服器。
PKCS #12 :定義了一種存檔文件格式,用於實現存儲許多加密對象在一個單獨的文件中。通常用它來打包一個私鑰及有關的 X.509 證書,或者打包信任鏈的全部項目。
定位 keytool.exe 工具所在的目錄,使用操作命令轉換證書格式;
⑺ Android系統簽名
有時候,我們開發的apk需要用到系統許可權,需要在AndroidManifest.xml中添加共享系統進程屬性:
這時候apk的簽名就需要是系統簽名(platform、shared或media)才能正常使用。
常用系統簽名方式
這種方式比較麻煩,你需要有編譯過的源碼環境,並按如下步驟:
1、拷貝App源碼到Android源碼的packages/apps/目錄下,且App源碼是普通(Eclipse)格式的
2、配置Android.mk,在其中添加
3、使用mm編譯App,生成的apk即系統簽名
這種方式比在源碼環境下簽名簡單,App可以在Eclipse或Android Studio下編譯,然後給apk重新簽名即可。
但這種方式在頻繁調試的時候比較痛苦,即使寫成腳本,也需要重復一樣的操作。
相關文件
platform.x509.pem、platform.pk8、signapk.jar
文件位置
platform.x509.pem、platform.pk8:
signapk.jar:
signapk源碼路徑:
簽名命令
步驟
1、將相關文件及源apk文件置於同一路徑下
2、檢查源apk包,去掉META-INF/CERT.SF 和 META-INF/CERT.RSA 文件
3、執行簽名命令即可
讓Android Studio集成系統簽名,需要用到一個工具 keytool-importkeypair ,詳見下文。
這個工具的作用是將系統簽名的相關信息導入到已有的簽名文件里。
工具的使用方法可以通過–help或README.textile來尋求幫助
platform.x509.pem、platform.pk8、keytool-importkeypair、demo.jks、signature.sh
我的做法是在App根目錄新建Signature文件夾專門存放簽名相關文件。
步驟
1、生成demo.jks簽名文件
2、編寫簽名腳本signature.sh,內容如下:
為腳本文件添加可執行許可權:
執行腳本:
3、配置builde.gradle
在android區域下(與defaultConfig同級)添加配置:
這樣debug或release apk就帶有系統簽名了。
如果想直接Run app就是release版且帶系統簽名的apk,還需修改:
這樣直接Run app就是帶系統簽名的release版apk了。
⑻ Android Apk簽名工具
目前發布APK之前大家都會採用第三方加固方案來實現應用安全,鋒冊態
在Windows下 360有簽名工具可以直接簽名,騰訊樂固目前取消了簽名工具採用雲端加固,但是之後需要自己重簽名(因為加固之前會先去掉簽名)。
在Mac下沒有簽名工具,這就比較難受了。
一般來說,我們可以通過命令行來簽名Apk,打開命令行或者終端 輸入如下命令
但是這樣容易比較麻煩,還容易出錯,其實我們還可以使用腳本來完成自動簽名。
這里來簡單說明一下吧,我是採用python來實現的, Mac與Windows均可使用
本文python環境:python 3.8.2
sign.json 與signTool.py文件需要在同一文件夾下
其中sign.json 是簽名文件配置項(在工具中可以快捷選擇,銀源也可以不配置)
如下:
這樣就配置好了
signTool.py 是簽名工具,通過命姿侍令行或者終端運行該文件就行了
signTool.py文件如下:
運行如下:
配置好相關文件之後,點擊簽名就行了
好了,完成了一個簡單而又實用的工具
⑼ android 怎麼查看簽名文件
展開全部
以下介紹查看自己的應用簽名及三方APK或系統APK簽名信息,包含其中的MD5、SHA1、SHA256值和簽名演算法等信息。
1、查看自己的應用簽名
可以通過兩種方式查看
(1)
debug的apk通過Eclipse查看,如下圖:
(2)
某個keystore簽名的應用,通過以下命令查看
keytool
-list
-keystore
E:\Trinea\keystore\appsearch.keystore,會要求輸入簽名高轎密碼,默認為android,如下圖:
2、查看三戚皮肆方應用或是握橡系統應用簽名
用winrar打開待查看的apk,將其中META-INF文件夾解壓出來,得到其中的CERT.RSA文件,通過keytool
-printcert
-file
META-INF/CERT.RSA命令列印證書信息,如微信證書信息如下圖:
可以查看簽名的MD5、SHA1、SHA256值及簽名演算法