Android中對apk文件進(jìn)行二次簽名

這幾日研究了下二次打包,最后的時(shí)候需要對apk進(jìn)行簽名替換滔驾,二次簽名谒麦,然后才能重新安裝。第一次接觸哆致,感覺有點(diǎn)雜绕德,所以寫篇文章捋一下過程,方便理解摊阀。關(guān)于二次打包的實(shí)踐耻蛇,可參考:http://www.reibang.com/p/6bcc42542997

話不多說踪蹬,直接看我們二次簽名的整體流程步驟,本次實(shí)踐還是以二次打包時(shí)的某應(yīng)用為例:

一臣咖、前提準(zhǔn)備
  • 1.首先到應(yīng)用市場下載某應(yīng)用的官方apk文件到電腦
  • 2.使用JDK自帶的apktool工具生成自己的簽名文件demo.keystore
keytool -genkey -alias androidauto.keystore -keyalg RSA -validity 20000 -keystore android.keystore
二跃捣、具體實(shí)踐步驟
  • 1.將下載的某應(yīng)用的apk文件格式進(jìn)行修改為.zip后綴,并進(jìn)行解壓夺蛇,查看目錄疚漆,將其中的META-INF目錄刪除。解釋:META-INF目錄中xx.RSA,xx.SF和MANIFEST.MF三個(gè)文件刁赦,這三個(gè)文件中存放的就是一些關(guān)于簽名的信息娶聘。


    解壓后的文件目錄
  • 2.后退工作目錄,將修改過后的解壓目錄重新進(jìn)行壓縮生成新的.zip包文件甚脉,然后修改后綴名為.apk文件丸升。
  • 3.使用之前生成好的demo.keystore文件對新的zip包進(jìn)行簽名,具體如下:
jarsigner -keystore demo.keystore -storepass password -signedjar demo.apk demo_signed.apk demo.keystore

有一個(gè)問題牺氨,如果是使用的jdk1.7版本的話狡耻,中間簽名過程可能會因報(bào)一個(gè)警告而失敗,警告信息如下:

簽名時(shí)報(bào)的警告信息

當(dāng)初樓主遇到該問題時(shí)還小曲折了一下波闹,將英文警告信息進(jìn)行g(shù)oogle酝豪,只說時(shí)jdk1.7版本會有警告,具體如何解決沒找到精堕。最后是翻譯了之后在csdn上找到的解決方案孵淘,鏈接:http://blog.csdn.net/changcsw/article/details/45643607
修改后的命令如下:

jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore demo.keystore -storepass password -signedjar demo.apk demo_signed.apk demo.keystore

使用如上命令警告信息問題解決。然后不出意外歹篓,簽名就能成功瘫证,生成經(jīng)過自己二次簽名的新簽名包。

  • 4.接下來就是安裝驗(yàn)證庄撮。正確的驗(yàn)證方式是先確保相同包名的應(yīng)用已卸載背捌,然后再安裝,最后安裝官方簽名的發(fā)現(xiàn)簽名沖突洞斯,安裝失敗毡庆,達(dá)到驗(yàn)證效果。即:
//先卸載原來安裝的包
adb uninstall packageName
//安裝使用自己簽名文件簽名的包
adb install packageName
//最后安裝官方簽名包 安裝失敗 驗(yàn)證成功
三烙如、安裝驗(yàn)證的過程可能會出現(xiàn)的問題
  • 1.INSTALL_FAILED_INVALID_APK 出現(xiàn)這個(gè)錯(cuò)誤多半是簽名包沒有簽名成功么抗;回去仔細(xì)檢查下簽名過程。
  • 2.INSTALL_FAILED_UPDATE_INCOMPATIBLE 出現(xiàn)這個(gè)問題很可能是系統(tǒng)中同包名的應(yīng)用還沒有卸載所導(dǎo)致的亚铁。當(dāng)處我測試實(shí)踐的時(shí)候蝇刀,我自己手動(dòng)刪除/data/data目錄下的包,/data/local/tmp下的包刪掉徘溢,修改了packages.xml文件吞琐。安裝還是報(bào)這個(gè)錯(cuò)誤捆探。最后還是先試用了adb uninstall 命令進(jìn)行卸載,然后重新安裝才成功站粟。
    我在測試驗(yàn)證的時(shí)候就遇到了這兩個(gè)問題黍图,如果有其他問題,歡迎大家繼續(xù)補(bǔ)充提出卒蘸,一起討論學(xué)習(xí)進(jìn)步雌隅。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缸沃,隨后出現(xiàn)的幾起案子恰起,更是在濱河造成了極大的恐慌,老刑警劉巖趾牧,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件检盼,死亡現(xiàn)場離奇詭異,居然都是意外死亡翘单,警方通過查閱死者的電腦和手機(jī)吨枉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哄芜,“玉大人貌亭,你說我怎么就攤上這事∪想” “怎么了圃庭?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長失晴。 經(jīng)常有香客問我剧腻,道長,這世上最難降的妖魔是什么涂屁? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任书在,我火速辦了婚禮,結(jié)果婚禮上拆又,老公的妹妹穿的比我還像新娘儒旬。我一直安慰自己,他們只是感情好帖族,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布义矛。 她就那樣靜靜地躺著,像睡著了一般盟萨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上了讨,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天捻激,我揣著相機(jī)與錄音制轰,去河邊找鬼。 笑死胞谭,一個(gè)胖子當(dāng)著我的面吹牛垃杖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丈屹,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼调俘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旺垒?” 一聲冷哼從身側(cè)響起彩库,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎先蒋,沒想到半個(gè)月后骇钦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竞漾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年眯搭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片业岁。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳞仙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笔时,到底是詐尸還是另有隱情棍好,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布糊闽,位于F島的核電站梳玫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏右犹。R本人自食惡果不足惜提澎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望念链。 院中可真熱鬧盼忌,春花似錦、人聲如沸掂墓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽君编。三九已至跨嘉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吃嘿,已是汗流浹背祠乃。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工梦重, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人亮瓷。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓琴拧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘱支。 傳聞我的和親對象是個(gè)殘疾皇子蚓胸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容