當前位置:首頁 » 安卓系統 » androidstudio查看簽名

androidstudio查看簽名

發布時間: 2024-11-23 21:14:54

㈠ 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簽名工具之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

㈢ Android Studio 之簽名

通過簽名可以確保數據來源的可靠性和數據的不可篡改性

對 Apk 進行簽名,也就是在 Apk 中寫入一個指紋,寫入指紋後,Apk 中有任何修改,都會導致這個指紋無效,Android 系統在安裝 Apk 進行簽名校驗時就會不通過,進而無法安裝該 Apk

如上圖:

通常的簽名驗簽過程中,接收方收到消息後,會先向 CA 機構驗證證書的合法性,再進行簽名校驗。但 Apk 的證書通常由開發者自己製作,沒有向 CA 機構申請,Android 系統在安裝 Apk 時也並沒有校驗證書本身的合法性,只是從證書中提取公鑰和加密演算法,因此,如果對第三方 Apk 重新簽名,也能安裝到沒有安裝過這個 Apk 的系統中

keystore 文件包含私鑰、公鑰和數字證書,分為很多種,Android 使用的是 Java 標准 keystore 格式 JKS(Java Key Storage)

Android App Bundle:用於通過 Google Play 發布的應用,需要升級到AS 3.2 以上版本才支持App Bundle 格式;
APK:用於創建可部署到設備上的簽名 APK

點擊 Finish 就會生成簽名文件與簽名後的 Apk

當我們需要升級 Apk 版本的時候,需要再次對 Apk 文件進行簽名,可以通過配置 build.gradle 讓其自動生成簽名後的 Apk

如果你的項目是開源的,需要把你的簽名信息寫在 local.properties 中,然後在 .gitignore 配置文件中加入 local.properties ,這樣 local.properties 就不會提交到開源項目中,簽名信息也就不會被人獲取

local.properties:

app/build.gradle:

有時候我們的 apk 中某些功能需要系統簽名,例如靜默安裝。測試系統簽名的 apk,需要 root 許可權,而帶 Google APIs 的模擬器不能 root,因此要注意不能選擇帶 Google APIs 的模擬器

下面執行的操作都是在 linux 中,如果 apk 是 window 中生成的,需要拷貝到 linux 操作,再將生成的系統簽名過得 apk 再拷貝到 window,比較麻煩,可以考慮後面的自動系統簽名,還是需要在 linux 操作一次,不過之後就可以只在 window 操作了

這兩個文件在目錄 aosp/build/target/proct/security 下,如下圖

在目錄 aosp/prebuilts/sdk/tools/lib 下,如下圖

將前面獲取的 platform.pk8 、 platform.x509.pem 和 signapk.jar 文件放到需要簽名的 apk 同一個目錄,執行以下命令

如果出現上面的錯誤:Failed to load any of the given libraries: [conscrypt_openjdk_jni-linux-x86_64, conscrypt_openjdk_jni-linux-x86_64-fedora, conscrypt_openjdk_jni]

解決方法:

到目錄 aosp/prebuilts/sdk/tools/linux/lib64 下,復制 libconscrypt_openjdk_jni.so 文件到需要簽名 apk 的同一個目錄,並將命令改為

自動進行系統簽名的原理是:先生成一個 system.jks 文件,使用 keytool-importkeypair 對 system.jks 文件進行系統簽名,再 build.gradle 和 local.properties 進行配置,直接使用帶有系統簽名的 system.jks 對 apk 進行簽名,這樣編譯生成的apk文件就自帶系統簽名了

按照前面的方法,生成一個 system.jks 文件,此時是在 window 系統中操作的

進入 keytool-importkeypair 目錄,將 system.jks、platform.pk8、platform.x509.pem 文件拷貝進來,拷貝之後的目錄結構為

使用 linux 中修改過的帶有系統簽名的 system.jks 文件將 window 中最開始生成的 system.jks 覆蓋掉,再像前面的自動簽名部分一樣,修改 build.gradle 和 local.properties 的配置,之後生成的 apk 就是系統簽名過的了

測試方法是,在 AndroidManifest.xml 中添加 android:sharedUserId="android.uid.system" 後安裝到 非 Google APIs 的模擬器上 , Google APIs 的模擬器不能 root,無法安裝

會發現只有使用 system.jks 文件簽名後才能安裝,否則安裝失敗,會報以下的錯誤:

㈣ 獲取Android應用簽名的幾種方式

打開 Android Studio,然後選擇右邊的 Gradle 標簽,選擇一則老個項目,然後選擇 signingReport 這個 Task,雙擊運行

然後選擇右下角的 Gradle Console,就可以看到簽名信息了

使用解壓工具解壓 APK 文件,在 META-INF 文件夾拿到 CERT.RSA 文件。假設 CERT.RSA 文件的路徑是 C:\Users\Administrator\Desktop\CERT.RSA 。在 CMD 中輸入

就可以得到簽名信息了

jks 作為簽名文件,也可以通過命令行來查看的其中的簽名跡盯帆信姿雹息,假設簽名文件的名稱是 test_release.jks ,在終端中輸入

即可得到簽名信息

㈤ android studio簽名文件在哪

1.簽名文件在哪:C:UsersAdministrator.android debug.keystore

2.怎樣查看獲取SHA1或者MD5:
(1)打開命令窗口:進入c盤的.android目錄下

㈥ android studio生成原包後需要簽名嗎

默認Android Studio簽名生成apk文件或不簽名的apk文件

點擊「Build——>Build APK」生成默認簽名和默認不簽名的兩種文件

點擊「Build——>General Signed apk」指定自定義簽名文件後,生成發布版本的簽名文件,如果沒有簽名文件,先創建一個

熱點內容
pythontile 發布:2024-11-24 00:10:04 瀏覽:546
修改pdf加密文件 發布:2024-11-24 00:09:50 瀏覽:223
DVFFORTRAN編譯器 發布:2024-11-24 00:03:50 瀏覽:615
sublimetext如何配置php 發布:2024-11-23 23:54:22 瀏覽:436
linux文件系統分區 發布:2024-11-23 23:54:15 瀏覽:736
sql儲存過程 發布:2024-11-23 23:50:51 瀏覽:996
取整c語言 發布:2024-11-23 23:50:32 瀏覽:910
學習c語言要背什麼 發布:2024-11-23 23:34:02 瀏覽:41
透視ftp 發布:2024-11-23 22:39:55 瀏覽:342
平板配置好點的有哪些 發布:2024-11-23 22:32:09 瀏覽:657