日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android软件更新模块实现的技术和方法,Android APK签名原理及方法

發布時間:2025/3/20 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android软件更新模块实现的技术和方法,Android APK签名原理及方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 Android簽名機制及原理

Android系統在安裝APK的時候,首先會檢驗APK的簽名,如果發現簽名文件不存在或者校驗簽名失敗,則會拒絕安裝,所以應用程序在發布之前一定要進行簽名。給APK簽名可以帶來以下好處:

應用程序升級

如果想無縫升級一個應用,Android系統要求應用程序的新版本與老版本具有相同的簽名與包名。若包名相同而簽名不同,系統會拒絕安裝新版應用。

應用程序模塊化

Android系統可以允許同一個證書簽名的多個應用程序在一個進程里運行,系統實際把他們作為一個單個的應用程序。此時就可以把我們的應用程序以模塊的方式進行部署,而用戶可以獨立的升級其中的一個模塊。

代碼或數據共享

Android提供了基于簽名的權限機制,一個應用程序可以為另一個以相同證書簽名的應用程序公開自己的功能與數據,同時其它具有不同簽名的應用程序不可訪問相應的功能與數據。

應用程序的可認定性

簽名信息中包含有開發者信息,在一定程度上可以防止應用被偽造。例如網易云加密對Android APK加殼保護中使用的“校驗簽名(防二次打包)”功能就是利用了這一點。

簽名原理

對一個APK文件簽名之后,APK文件根目錄下會增加META-INF目錄,該目錄下增加三個文件:

MANIFEST.MF

NETEASE.RSA

NETEASE.SF

其中.RSA文件還可能是.DSA文件,RSA與SF文件的文件名可以更改,但是它們的命名必須一樣。

MANIFEST.MF中保存了APK里所有文件的SHA1校驗值的BASE64編碼,格式如下(一個文件對應一條記錄):

Name: res/anim/abc_fade_in.xml

SHA1-Digest: ohPEA4mboaFUu9LZMUwk7FmjbPI=

Name: res/anim/abc_fade_out.xml

SHA1-Digest: MTJWZc22b5LNeBboqBhxcQh5xHQ=

SF文件里保存了MANIFEST.MF文件的SHA1校驗值的BASE64編碼,同時還保存了MANIFEST.MF中每一條記錄的SHA1檢驗值BASE64編碼,格式如下:

SHA1-Digest-Manifest: ZRhh1HuaoEKMn6o21W1as0sMlaU=

Name: res/anim/abc_fade_in.xml

SHA1-Digest: wE1QEZhFkLBWMw4TRtxPdsiMRtA=

Name: res/anim/abc_fade_out.xml

SHA1-Digest: MfCV1efdxSKtesRMF81I08Zyvvo=

RSA文件則包含了簽名的公鑰、簽名所有者等信息,還保存了http://my.oschina.net/u/816213/blog/685762?fromerr=RSS3IhKo用SHA1withRSA簽名算法對SF文件的簽名結果信息。

Android系統就是根據這三個文件的內容對APK文件進行簽名檢驗的。

二 Android 簽名方法

1、apksign、jarsinger

一般的簽名過程可以由apksign.jar或者jarsinger.jar完成。apksign.jar由Android SDK提供,使用方法如下:

java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk

它接受一個PEM公鑰文件,PK8私鑰文件,對update.apk進行簽名,簽名后的文件保存到update_signed.apk。

jarsinger是由JDK提供,使用方法如下:

jarsigner -verbose -keystore d:\\debug.keystore -signedjar update_signed.apk update.apk androiddebugkey -digestalg SHA1 -sigalg MD5withRSA -keypass android -storepass android

其中:

-keystore表示keystore文件的路徑

androiddebugkey 表示keystore中的一個別名

-digestalg表示摘要算法

-sigalg 表示簽名算法

-keypass 表示別名密碼

-storepass表示keystore密碼

經過測試,發現以上兩個傳統的簽名工具存在以下缺點:

1)、jarsigner在對一個已經有META-INF目錄的APK進行簽名的時候,有可能會報錯:

jarsigner: 無法對 jar 進行簽名: java.util.zip.ZipException: invalid entry compressed size (expected 1368 but got 1379 bytes)

2)、如果APK中已經有簽名文件且簽名文件中的RSA(或DSA)、SF文件的命名不是CERT的時候,用這兩個簽名工具進行簽名后,會出現:

META-INF目錄下會有兩個RSA/SF文件,會導致APK在安裝的時候失敗。

3)、簽名花費時間長。這兩個簽名工具在生成簽名后的APK時,是按Zip中一個entry接一個entry 依次拷貝的,效率十分低。因為游戲類型APK類文件數量一般比較多,所以這一缺陷在簽名游戲類型APK時,體現得尤為明顯。

2、極速簽名工具(ApkSinger)

極速簽名工具克服了signapk.jar與jarsigner在簽名過程的缺點,使用方法:

java -jar ApkSigner.jar [-appname test] -keystore keystorePath -alias alias [-pswd password] [-aliaspswd aliasPassword] apkPath(or directory)

-appname 待簽名的應用程序名,可選,但建議不同的APP填上對應的app名

-keystore 后跟.keystore簽名文件

-alias 后跟簽名別名

-pswd 后跟對應簽名的密碼,可選,如果不填,則簽名的時候需要手動輸入

-aliaspswd 對應別名alias的密碼,如果沒有則默認使用keystore Password

最后跟待簽名的APK路徑或者目錄路徑 ,如果跟的是目錄則是批量簽名.

總結

以上是生活随笔為你收集整理的android软件更新模块实现的技术和方法,Android APK签名原理及方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 美女搞黄在线观看 | 国内自拍视频在线播放 | 老鸭窝av在线 | 免费毛片一区二区三区久久久 | 麻豆精品 | 娇小6一8小毛片 | 成人激情小视频 | 9191久久 | 一级片在线免费观看视频 | 黄一区二区三区 | 久久男女 | 国产精品久久精品 | 青娱网电信一区电信二区电信三区 | 日韩啪啪网站 | 香蕉视频在线观看免费 | 免费视频www在线观看网站 | 午夜影院0606 | 日韩精品一区在线视频 | 国产美女在线精品 | 91禁在线动漫 | 国产综合久久 | 国产无遮挡又黄又爽又色视频 | 日韩中文字幕一区 | 26uuu精品一区二区在线观看 | 亚洲热在线观看 | 婷婷在线网 | 国产午夜精品一区二区三区欧美 | 日韩av在线一区二区 | 亚洲日本不卡 | 日韩中出在线 | 这里只有精品66 | 伊人影院在线播放 | 久久久精品视频在线 | 少妇高潮露脸国语对白 | 中文字幕素人 | 欧类av怡春院 | 国产成人一级 | 亚洲色图1 | 亚洲国产一区二区三区四区 | 亚洲av无码乱码国产麻豆 | 午夜亚洲福利在线老司机 | 国产污网站 | 亚洲网站免费观看 | 日日噜噜夜夜狠狠久久波多野 | www.婷婷.com | 蜜桃网av | 中文字幕无码毛片免费看 | 日韩欧美在线视频 | 黄色成年视频 | 午夜在线播放 | 色哟哟国产精品 | 亚洲天堂一 | 韩国三级hd中文字幕的背景音乐 | 综合色网站 | 日韩欧美精品免费 | 成人91网站 | aaaa毛片| 欧美激情3p| 亚洲天堂自拍偷拍 | 日本五十路女优 | 熟女人妻在线视频 | 成人h视频在线 | 丁香六月色婷婷 | 欧美色图88 | 热久久亚洲 | 爱情岛论坛亚洲自拍 | 羞羞漫画在线 | 色av资源| 午夜毛片电影 | 亚洲一区二区日韩欧美 | 欧美小视频在线 | 午夜理伦三级做爰电影 | 色妞ww精品视频7777 | 懂色a v| 日韩欧美国产电影 | 亚洲图片激情小说 | 日韩经典一区二区三区 | 九九亚洲视频 | 特黄三级 | 国产又粗又猛又爽又黄无遮挡 | 久草在现| 黄色一级片欧美 | 亚洲啪av永久无码精品放毛片 | 99激情视频 | www.黄色网址| 欧美在线视频一区 | 久久一二三区 | 亚洲aⅴ网站 | 亚洲精品高清在线 | 日本视频一区二区三区 | www.日韩视频 | 久草中文在线 | 国产精品一区二区免费在线观看 | 海角社区登录 | 免费操人视频 | 国产精品免费一区二区区 | 麻豆影视免费观看 | 深夜成人在线 | 视频二区|