Android spk重簽名

重簽名

前言:當我們做自動化測試時候,特別是黑盒測試,因爲apk是開發編寫的,apk的簽名和我們測試程序的簽名不一致,當我們使用robotium測試框架測試,會出現測試失敗。故而我們必須對待測apk進行重簽名

一、刪除待測apk簽名文件

1.將待測apk後綴名字改爲zip,如:talkback_leelen.apk,改爲talkback_leelen.zip

2.刪除掉簽名文件META-INF,具體步驟:選擇talkback-leelen.zip,後,使用WinRAR打開(其他解壓工具打開也一樣),然後選擇根目錄下的META-INF文件夾,刪除掉整個文件夾(我看到有些網友是刪掉META-INF文件夾裏除MANIFEST.MF以外的東西,我試過,但出了點問題,所以建議你們還是和我一樣刪除整個文件夾,簡單利落)


3,將無簽名的待測apk後綴改回.apk

二、將自己eclipse的簽名文件和無簽名的待測apk放在同一目錄下

1.查找自己eclipse簽名文件,詳細步驟:1.打開eclipse-Windows-preferences,在preferences界面選擇Android-build後看到default debug keystore(默認調試密鑰存儲庫),其對應的文本框中就是簽名文件及路徑,如下圖,我的路徑是:D:\adt-bundle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk\.android,而簽名文件就是debug.keystore


2.複製eclipse的簽名文件到相應的目錄或文件夾下,必須和待測的apk(無簽名),放在一起,如放在D:/test 目錄下

三、輸入重簽名命令,進行重簽名(重要)

1.進入到D:/test,在上方導航輸入框輸入cmd後回車,進入到cmd命令界面,如下圖:


2.在cmd命令界面輸入重簽名命令,jarsigner -verbose -keystore debug.keystore(簽名文件,可按需替換) -storepass android -signedjar leelen_singer.apk(簽名後的apk名,可修改) -digestalg SHA1 -sigalg MD5withRSA talkback_leelen.apk androiddebugkey 後回車,


系統自動執行,


簽名成功後,在D:/test就能看的新生成的重簽名包


命令詳解:jarsigner  是Java的簽名工具 ; verbose 顯示詳細信息

                keystore 簽名文件 ;storepass android表示Android指定密碼庫密碼

                   signedjar 指定簽名後的apk 名; -digestalg SHA1 -sigalg MD5withRSA 算法和簽名算法的相關參數

          androiddebugkey 祕鑰





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章