我對Android中apk檔案進行簽名的一點理解

來源:互聯網
上載者:User

    之前,我也不是太清楚,為什麼開發好的android程式,要對其apk檔案進行數位簽章,只是略為知道一點:為了維護自己的著作權,更加合法吧,防止別人侵權。不過現在,我覺得,不光是這樣,下面我來談談自己的看法。

    其實,Android平台需要每個。apk包(每個應用程式封存檔案)上都有數位簽章。如果沒有數位簽章,則不允許相應的.apk運行。說到這裡,大家也許會有疑問,我在使用SDK進行開發應用程式的時候,就沒有進行簽名啊,其實不是這樣的。

     開發過或學習過google map應用程式的人都知道debug.keystore這個檔案(該檔案預設位於使用者主目錄的.android子目錄中)。當我們在eclipse中編寫好自己的程式,啟動並執行時候,處在偵錯模式中。在偵錯模式中,SDK會使用儲存在debug.keystore檔案中的自簽名調試密鑰自動對你的應用的程式進行數位簽章(由於這個簽名,系統已經幫我們自動設定好了,所以我們才感覺到,我們的程式沒有進行簽名,也可以運行)。

     由於調試密鑰和密鑰庫都自動設定好,因此我們在使用SDK進行開發Android應用程式的時候,無需擔心數位簽章。但如果要離開偵錯模式並在adb外部運行呢,這就不行了,這是,就需要我們通過手動設定,來進行簽名。

     具體操作如下,需要用到Keytool命令 和 Jarsinger工具。(當然這一切的前提是,你必須安裝好了JDK,然後在DOS下進行操作)

 

    1.使用 Keytool命令建立自簽名私人密鑰的樣本如下:(這隻是一個例子,可以根據你的情況進行修改)

    C:/Program Files/Java/jdk1.6.0_10/bin>keytool -genkey  -v  -keystore key.keystore -alias  my_key -keyalg RSA

    -validity 10000

    " C:/Program Files/Java/jdk1.6.0_10/bin"這是我JDK所儲存的路徑。該命令以詳細模式(-v)產生一個密鑰(-genkey),它使用key.keystore.keystore庫檔案和別名my_key,同時採用RSA密碼編譯演算法並將有效期間設為10000天。輸入這行命令,一步步的進行操作就可以了。

 

    2.建立一個私人密鑰後,就可以使用Jarsigner簽名應用程式檔案。在使用該工具之前,需要將項目未簽名的.apk封存檔案匯出。使用Eclipse/ADT環境匯出項目的步驟:在項目上,單擊滑鼠右鍵,選擇Android Tools——>Export Unsigned Application Package選項,匯出來就可以了。

 

     具體操作如下:

  jarsigner -verbose -keystore  key.keystore  -signedjar android123_signed.apk   android123.apk  my_key(這一步是和第一步緊密相連的,第一步操作完成後才可以執行這個操作)

   3.最後驗證是否簽名成功,如下所示:

  C:/Program Files/Java/jdk1.6.0_10/bin>jarsigner -verify android123.apk 

 如果成功,則會顯示:

 jar 已驗證

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.