建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

貴賓會網址:Android 數字簽名學習筆記

?

在Android系統中,所有安裝到系統的利用法度榜樣都必有一個數字證書,此數字證書用于標識利用法度榜樣的作者和在利用法度榜樣之間建立相信關系,假如一個permission的protectionLevel為signature,那么就只有那些跟該permission所在的法度榜樣擁有同一個數字證書的利用法度榜樣才能取得該權限。Android應用Java的數字證書相關的機制來給apk加蓋數字證書,要理解android的數字證書,必要先懂得以下數字證書的觀點和java的數字證書機制。Android系統要求每一個安裝進系統的利用法度榜樣都是顛末數字證書署名的,數字證書的私鑰則保存在法度榜樣開拓者的手中。Android將數字證書用來標識利用法度榜樣的作者和在利用法度榜樣之間建立相信關系,不是用來抉擇終極用戶可以安裝哪些利用法度榜樣。這個數字證書并不必要勢力巨子的數字證書署名機構認證,它只是用來讓利用法度榜樣包自我認證的。

同一個開拓者的多個法度榜樣盡可能應用同一個數字證書,這可以帶來以下好處。

(1)有利于法度榜樣進級,當新版法度榜樣和舊版法度榜樣的數字證書相同時,Android系統才會覺得這兩個法度榜樣是同一個法度榜樣的不合版本。假如新版法度榜樣和舊版法度榜樣的數字證書不相同,則Android系統覺得他們是不合的法度榜樣,并孕育發生沖突,會要求新法度榜樣變動包名。

(2)有利于法度榜樣的模塊化設計和開拓。Android系統容許擁有同一個數字署名的法度榜樣運行在一個進程中,Android法度榜樣會將他們視為同一個法度榜樣。以是開拓者可以將自己的法度榜樣分模塊開拓,而用戶只必要在必要的時刻下載適當的模塊。

(3)可以經由過程權限(permission)的要領在多個法度榜樣間共享數據和代碼。Android供給了基于數字證書的權限付與機制,利用法度榜樣可以和其他的法度榜樣共享概功能或者數據給那那些與自己擁有相同數字證書的法度榜樣。假如某個權限(permission)的protectionLevel是signature,則這個權限就只能賦予那些跟該權限所在的包擁有同一個數字證書的法度榜樣。

在署名時,必要斟酌數字證書的有效期:

(1)數字證書的有效期要包孕法度榜樣的估計生命周期,一旦數字證書掉效,持有改數字證書的法度榜樣將不能正常進級。

(2)假如多個法度榜樣應用同一個數字證書,則該數字證書的有效期要包孕所有法度榜樣的估計生命周期。

(3)Android Market強制要求所有利用法度榜樣數字證書的有效期要持續到2033年10月22日今后。

Android數字證書包孕以下幾個要點:

(1)所有的利用法度榜樣都必須稀有字證書,Android系統不會安裝一個沒稀有字證書的利用法度榜樣

(2)Android法度榜樣包應用的數字證書可所以自署名的,不必要一個勢力巨子的數字證書機構署名認證

(3)假如要正式宣布一個Android ,必須應用一個相宜的私鑰天生的數字證書來給法度榜樣署名,而不能應用adt插件或者ant對象天生的調試證書來宣布。

(4)數字證書都是有有效期的,Android只是在利用法度榜樣安裝的時刻才會反省證書的有效期。假如法度榜樣已經安裝在系統中,縱然證書過時也不會影響法度榜樣的正常功能。

(5)Android應用標準的java對象 Keytool and J貴賓會網址arsigner 來天生數字證書,并給利用法度榜樣包署名。

(6)應用zipalign優化法度榜樣。

Android系統不會安裝運行任何一款未經數字署名的apk法度榜樣,無論是在模擬器上照樣在實際的物理設備上。Android的開拓對象(ADT插件和Ant)都可以幫忙開拓者給apk法度榜樣署名,它們都有兩種模式:調試模式(debug mode)和宣布模式(release mode)。

在調試模式下,android的開拓對象會在每次編譯時應用調試用的數字證書給法度榜樣署名,開拓者無須關心。

當要宣布法度榜樣時,開拓者就必要應用自己的數字證書給apk包署名,可以有兩種措施。

(1)在敕令行下應用JDK中的和Keytool(用于天生數字證書)和Jarsigner(用于應用數字證書署名)來給apk包署名。

(2)應用ADT Export Wizard進行署名(假如沒稀有字證書可能必要天生數字證書)。

應用Keytool和Jarsigner給法度榜樣署名

敕令:keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000

該敕令中,-keystore ophone.keystore 表示天生的證書,可以加上路徑(默認在用戶主目錄下);-alias ophone 表示證書的又名是ophone;-keyalg RSA 表示采納的RSA算法;-validity 20000表示證書的有效期是20000天。

此時,我們會在互用主目錄下看到ophone.keystor貴賓會網址e,即我們剛剛創建的證書。

接著對法度榜樣進行署名:

jarsigner用法: [選項] jar 文件又名

jarsigner -verify [選項] jar 文件

履行:jarsigner -verbose -keystore android.keystore -signedjar android123_signed.apk android123.apk android 就可以天生署名的apk文件,這里輸入文件android123.apk,最畢天生android123_signed.apk為Android署名后的APK履行文件。下面提示輸入的密碼和keytool輸入的一樣就行了。(不過在我的JDK目錄下沒有找到jarsigner這個法度榜樣,不知道是怎么回事)

應用ADT Export Wizard進行署名

利用法度榜樣(apk)署名,在EC中,右鍵單擊利用法度榜樣工程,如圖選擇

選擇證書的寄放路徑,填寫相關資料,完成,即可天生被署名的apk文件。如下圖所示:

如上圖所示,我們可以看到也可以在這里選擇”Create new keystore“來創建一個證書。輸入密碼,點擊下一步,填寫相關信息,如下圖所示。

應用zipalign優化APK

根據官方文檔的描述,Android系統中Application的數據都保存在它的APK文件中,同時可以被多個進程造訪,安裝的歷程包括如下幾個步驟:

Installer經由過程每個apk的manifest文件獲取與當前利用法度榜樣相關聯的permissions信息

Home application讀取當前APK的Name和Icon等信息。

System server將讀取一些與Application運行相關信息,例如:獲取和處置懲罰Application的notifications哀求等。

著末,APK所包孕的內容不僅限于當前Application所應用,而且可以被其它的Application調用,前進系統資本的可復用性。

zipalign優化的最根本目的是贊助操作系統更高效率的根據哀求索引資本,將resource-handling code統一將Data struct貴賓會網址ure alignment(數 據布局對齊標準:DSA)限制為4-byte boundaries。假如不采取對齊的標 準,處置懲罰器無法準確和快速的在內存地址中定位相關資本。今朝的系統中應用fallback mechanism機制處置懲罰那些沒有利用DSA標準的利用法度榜樣,這切實著實大年夜大年夜的方便了通俗開拓者無需關注繁瑣的內存操作問題。然則相反,對付這樣的利用法度榜樣 將給通俗用戶帶來必然的麻煩,不只影響法度榜樣的運行的效率,而且使系統的整體履行效率下降和占用大年夜量不需要的內存資本,以致耗損必然的電池資本 (battery life)。

敕令行要領手動優化:

使用tools文件夾下的zipalign對象。首先調出cmd敕令行,然后履行:zipalign -v 貴賓會網址4 source.apk androidres.apk。這個措施不受API Level的限定,可以對任何版本的APK履行Align優化。

同時可以使用zipalign對象反省當前APK是否已經履行過Align優化。敕令:zipalign -c -v 4 androidres.apk

應用ADT自動優化:

從 ADT 0.9.3版本開始,可以經由過程export wizard自動對宣布的application packages履行align操作。設置措施:鼠標右鍵點擊Project,然后選擇”Android Tools” > “Export Signed Application Package…”。

綜上所述,可以應用Keytool、Jarsigner、zipalign 給法度榜樣署名并優化法度榜樣,這樣就必要三個不合的對象:

keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000

jarsigner -verbose -keystore android.keystore -signedjar android123_signed.apk android123.apk android

zipalign -v 4 android123_signed.apk android123_signed_aligned.apk

當然,也可以經由過程ADT插件中Export Signed Application Package…來履行,圖形界面更為簡單、形象、直不雅。

參考:blog.csdn.net/zgfee/archive/2009/11/11/4796831.aspx

Android SDK:androidappdocs.appspot.com/guide/publishing/app-signing.html

android123.com.cn/androidkaifa/173.html

yarin.javaeye.com/blog/549280

androidres.com/index.php/2009/10/18/use-zipalign-to-optimize-your-application-pac貴賓會網址kages/

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
腾讯qq麻将手机版官方下载 深圳风采开奖结果 华天科技股票 蜂窝配资 浙江快乐12选五开 私募基金配资利率 贵阳捉鸡麻将必胜技 快乐飞艇技巧网上买 东北麻将下蛋 江苏11选5开奖