1. 程式人生 > >Android APK的數字簽名的作用和意義

Android APK的數字簽名的作用和意義

(1)有利於程序升級 當新版程式和舊版程式的數字證書相同時,Android系統才會認為這兩個程式是同一個程式的不同版本。如果新版程式和舊版程式的數字證書不相同,則Android系統認為他們是不同的程式,併產生衝突,會要求新程式更改包名。 (2)有利於程式的模組化設計和開發。 Android系統允許擁有同一個數字簽名的程式執行在一個程序中,Android程式會將他們視為同一個程式。所以開發者可以將自己的程式分模組開發,而使用者只需要在需要的時候下載適當的模組。 (3)可以通過許可權(permission)的方式在多個程式間共享資料和程式碼。 Android提供了基於數字證書的許可權賦予機制,應用程式可以和其他的程式共享概功能或者資料給那那些與自己擁有相同數字證書的程式。如果某個許可權(permission)的protectionLevel是signature,則這個許可權就只 能授予那些跟該許可權所在的包擁有同一個數字證書的程式。

5. 在簽名時,需要考慮數字證書的有效期

(1)數字證書的有效期要包含程式的預計生命週期,一旦數字證書失效,持有改數字證書的程式將不能正常升級。

(2)如果多個程式使用同一個數字證書,則該數字證書的有效期要包含所有程式的預計生命週期。

(3)Android Market強制要求所有應用程式數字證書的有效期要持續到2033年10月22日以後。 6. 數字證書的要點:

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

              (1)所有的應用程式都必須有數字證書,Android系統不會安裝一個沒有數字證書的應用程式

              (2)Android程式包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證

              (3)如果要正式釋出一個Android ,必須使用一個合適的私鑰生成的數字證書來給程式簽名,而不能使用adt外掛或者ant工具生成的除錯證書來發布。

              (4)數字證書都是有有效期的,Android只是在應用程式安裝的時候才會檢查證書的有效期。如果程式已經安裝在系統中,即使證書過期也不會影響程式的正常功能。

              (5)Android使用標準的java工具 Keytool and Jarsigner 來生成數字證書,並給應用程式包簽名。

              6)使用zipalign優化程式。 數字簽名的兩種模式 我們都知道Android系統不會安裝執行任何一款未經數字簽名的apk程式,無論是在模擬器上還是在實際的物理裝置上。所以我們會有一個疑問,為何在日常開發過程中我沒有進行任何簽名的操作,程式都會在模擬器和真機上執行?下面我們來講講 APK程式的兩種模式: 除錯模式(debug mode)和釋出模式(release mode)
1. 除錯模式(debug mode)  : 在除錯模式下, ADT會自動的使用debug金鑰為應用程式簽名,因此我們可以直接執行程式。 debug金鑰:   一個名為debug.keystore的檔案 兩個風險:       debug簽名的應用程式有這樣兩個風險:
      1)debug簽名的應用程式不能在Android Market上架銷售,它會強制你使用自己的簽名;
      2)debug.keystore在不同的機器上所生成的可能都不一樣,就意味著如果你換了機器進行apk版本升級,那麼將會出現上面那種程式不能覆蓋安裝的問題。           不要小視這個問題,如果你開發的程式只有你自己使用,當然無所謂,解除安裝再安裝就可以了。但要是你的軟體有很多使用客戶,這就是大問題了,就相當於軟體不具備升級功能!  所以一定要有自己的數字證書來簽名; 2. 釋出模式(release mode) : 當要釋出程式時,開發者就需要使用自己的數字證書給apk包簽名 使用自己的數字證書給APK簽名的兩種方法:

(1)通過DOS命令來對APK簽名。

(2)使用ADT Export Wizard進行簽名 mac 下keystore的生成: 1、去到JDK的bin目錄 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin

2、輸入命令 sudo keytool -genkey -alias androiddebugkey -keyalg RSA -validity 20000 -keystore lau_market.keystore

其中20000是keystore的有效期,儘量設定長一點,lau_market.keystore就是最終生成的keystore名。 3、填寫步驟 注意這裡keystore的密碼設定為android
4、最終將會在bin下面生成lau_market.keystore檔案。

相關推薦

Android APK數字簽名作用意義

(1)有利於程序升級 當新版程式和舊版程式的數字證書相同時,Android系統才會認為這兩個程式是同一個程式的不同版本。如果新版程式和舊版程式的數字證書不相同,則Android系統認為他們是不同的程式,併產生衝突,會要求新程式更改包名。 (2)有利於程式的模組化設計和開發。 Android系統允許擁有

android apk簽名許可權問題

一. android apk的簽名問題(http://blog.csdn.net/lyq8479/article/details/6401093) 1.為什麼要給Android應用程式簽名?       如果只能用一句簡單的話語來回答這個問題的話,我會說:“這是Android系統所要求的”。

Android Apk的反編譯加密

打不開 源文件 資源 left 結果 blog 9.png 規則 找到   這幾天在上海出差,忙裏偷閑學習了一下Apk的反編譯工具的基本使用。下面就簡單介紹一下如何將我們從網上下載的Apk文件進行反編譯得到我們想要獲得的資源文件和源碼。 一、Apk文件組成   Androi

企業建設網站有什麽作用意義——企業公司必看!!!

用戶 提升 競爭 規模 永久 物流 網上 方便 開始 1,企業形象的展示與提升有利於提升企業形象企業網站的作用更類似於企業在報紙和電視上所做的宣傳 企業本身及品牌的廣告。不同的是,企業網站的容量較大,企業可以把任何客戶想 要的信息和公眾的內容放到網站上。此外,企業網站的投資

解析url中的#、&、?的作用意義

twitter改版,一個顯著變化,就是URL加入了"#!"符號。比如,改版前的使用者主頁網址為 http://twitter.com/username 改版後,就變成了 http://twitter.com/#!/username 這是主流網站第一次將"#"大規模用於重要

PWM死區(Dead Zone)的作用意義

PWM輸出時的Dead Zone(死區)作用是在電平翻轉時插入一個時間間隔,避免關閉前一個裝置和開啟後一個裝置時因為開關速度的問題出現同時開啟狀態而增加負荷的情況(在沒有徹底關閉前打開了後一個裝置),尤其是電流過大時容易造成短路等損壞裝置,如:互補PWM波輸出在逆變器(直流轉交流)中的應用。 &

詳解Android介面Interface的使用意義

本文介紹是Android的一個重要的東西,介面Interface,詳解兩個方面: (1)Java是繼承的,介面Interface是可以多個的,恰恰彌補了這個缺點。 (2)回撥,介面Interface裡面的是抽象方法,需要回調進行相應操作。 通俗地講講上面兩點講的是什麼(懂了就不用看了,

解析url中的#、&、?的作用意義

twitter改版,一個顯著變化,就是URL加入了"#!"符號。比如,改版前的使用者主頁網址為 http://twitter.com/username 改版後,就變成了 http://twitter.com/#!/username 這是主流網站第一次將"#"

android apk重新[簽名]

1,刪除之前的簽名檔案 用解壓縮工具開啟,刪除 [META-INF] 資料夾 2,開啟命令列視窗 3,[保證簽名檔案和apk在同一級目錄下] 然後執行如下命令,將 (xx) 處替換自己的簽名、apk 資訊即可 jarsigner -verbose -keystore (簽名檔案 jks/keystor

Android 中獲取簽名md5 sha1

Win+R開啟執行視窗輸入cmd回車 然後輸入: keytool -v -list -keystore C:\Users\AAAA\Desktop\keystore.jks -alias nam

Android開發之簽名V1V2的區別

在我們使用Android studio打包簽名的時候可以選擇兩種簽名方式。如下圖 對於V2的官網解釋如下 官網地址:https://android-developers.googleblog.

meta-inf資料夾的作用意義

 網上搜索meta-inf看到的回答最多的是:meta-inf資料夾相當於一個資訊包,目錄中的檔案和目錄獲得Java 2平臺的認可與解釋,用來配置應用程式、擴充套件程式、類載入器和服務。其中的 manifest.mf檔案,在用jar打包時自動生成。 這裡轉載了另外一個

Android APK簽名

生成apk最懶惰的方法是: 只要你執行過android專案,到工作目錄的bin資料夾下就能找到與專案同名的apk檔案,這種apk預設是已經使用debug使用者簽名的。 如果想要自己給apk簽名: 1.簽名的意義   為了保證每個應用程式開發商合法ID,防止部分開放商可能通過使用相同的Package Name

Linux根目錄下各個目錄的作用意義

/bin 存放使用者最長用的命令,如:cp、ls、cat,等等。 /boot 啟動linux時使用的一些核心檔案。 /dev 是device(裝置)的縮寫,這個目錄下是所有linux的外圍裝置。 D:\document\Chat\MyIM\MyIM\bin\Release/

關於android apk系統簽名

signapk.jar與eclipse export外掛預設賦予程式一個DEBUG許可權的簽名 signapk.jar包含有系統許可權(system api, permission),而eclipse export外掛預設賦予程式一個DEBUG許可權的簽名。 注: signapk.jar   位於 out/

Android應用數字簽名詳解

目錄 概述 Android系統要求所有的應用必須被證書進行數字簽名之後才能進行安裝。Android系統通過該證書來確認應用的作者,該證書是不需要權威機構認證的,一般情況下應用都是用開發者的自簽名證書,該證書是確保應用程式和應用程式作者之間建立信

Android中requestfocus的作用使用

該標籤用於指定螢幕中的焦點view。 例如點選Tab鍵或Enter鍵,焦點會自動下一個輸入框。 使用方法:將標籤置於<Views>標籤內部。 <EditText id="@+id/text"

android apk v1 簽名驗證分析

作者:jafon.tian Android的應用包格式具有防篡改,防重打包的能力,這是如何做到的?祕密就隱藏在META-INF資料夾中,下面通過QQ安裝包的分析來進行詳細的說明和分析。 1. 準備 1 到QQ官網下載Android安裝包mobileq

apk數字簽名

1、準備工作 apk的簽名工作可以通過兩種方式來完成: 1)通過ADT提供的圖形化介面完成apk簽名; 右鍵專案——》 Android Tools ——》Export Signed Application Package... ——》 開啟圖形介面 2)完全通過shell

有限狀態機在程式設計中作用意義

1.簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。 2.關於狀態機的一個極度確切的描述是它是一個有向圖形,由一組節點和一組相應的轉移函式組成。狀態機通過響應一系列事件而“執行”。每個事件都在屬於“當前” 節點的轉移函式的控制範圍內,其中函式的範