當前位置:首頁 » 安卓系統 » androidstudio證書

androidstudio證書

發布時間: 2025-03-18 13:15:05

① 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 studio怎麼查看md5碼

第一種方法,使用keytool

首先我們得在系統的環境變數中配置下keytool,keytool是位於我們JDK安裝的bin目錄下,如下圖

好了到這里就結束了,在實際開發中為了避免注冊時弄錯簽名,建議時打包後在獲取apk的簽名.

熱點內容
php函數this 發布:2025-03-19 09:23:41 瀏覽:524
javalinux路徑 發布:2025-03-19 09:23:35 瀏覽:188
柴油乘用炮哪個配置性價比高 發布:2025-03-19 09:17:56 瀏覽:486
安卓如何取消鴻蒙升級提醒 發布:2025-03-19 09:17:04 瀏覽:621
清空本地緩存在哪 發布:2025-03-19 09:16:27 瀏覽:160
東方歸言錄日服賬號密碼如何設置 發布:2025-03-19 09:11:27 瀏覽:252
vue前台緩存組件 發布:2025-03-19 09:11:27 瀏覽:747
英雄聯盟手游用什麼安卓手機 發布:2025-03-19 08:59:58 瀏覽:933
foxmail不能新建文件夾 發布:2025-03-19 08:45:39 瀏覽:32
安卓系統怎麼關閉電腦上的廣告 發布:2025-03-19 08:44:41 瀏覽:657