iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0

昨天我們介紹了數位簽名的原理與 Android 簽名驗證,今天分享如何對APP進行自我簽名。

簽名方法

在 Android Studio 中,可以透過「Generate Signed App Bundle / APK」選項來簽署應用程式,或使用 jarsigner 或 apksigner 工具進行簽名。
以下以 apksigner 為例,展示如何簽署一個 APK 檔案:

echo -e "password\npassword\njohn doe\ntest\ntest\ntest\ntest\ntest\nyes" > params.txt
cat params.txt | keytool -genkey -keystore key.keystore -validity 1000 -keyalg RSA -alias john
zipalign -p -f -v 4 myapp.apk myapp_signed.apk
echo password | apksigner sign --ks key.keystore myapp_signed.apk

說明:
首先建立 params.txt 檔案,預先填寫 keytool 在生成金鑰對(Key Pair)時所需的資訊,以自動回答交互式問題。若僅用於測試,密碼(password)和名稱(name)可簡單填寫。
使用 keytool 生成 RSA 金鑰對,並儲存至 key.keystore 檔案中。
使用 zipalign 對 myapp.apk 中的未壓縮檔案進行 4 位元組對齊,使其更高效地映射至記憶體(mmap),減少記憶體使用量並加速載入速度。
最後使用 apksigner 對對齊後的 myapp_signed.apk 進行數位簽署。

驗證啟動(Verified Boot)

驗證啟動(Verified Boot)是 Android 的一項安全機制,旨在確保作業系統(OS)的完整性。
Android 使用特殊金鑰簽署並驗證 Boot Images,確保開機時先檢查系統完整性,確認簽名是否有效,然後才正常啟動。此外,Android 還會檢查 Rollback Protection,防止載入低於儲存版本號的系統版本。

https://ithelp.ithome.com.tw/upload/images/20250916/20149459El742FlYwt.png

Eio 模式
Eio 模式是 Android 設備在驗證啟動(Verified Boot)過程中,若偵測到儲存區存在未經授權的修改時,顯示的一種警告畫面。其主要目的是提醒使用者,設備可能已被篡改。


上一篇
DAY - 5 Android Security Features 上
下一篇
DAY 7 APK Structure
系列文
我是不可能一直學Android 絕對不會8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言