『壹』 如何修改安卓APK包名和版本信息
目的聲明:本文只是為了滿足DIY的需要,並不是為了成為打包黨,竊取別人的勞動成果,本文所涉及的工具也均為開源的,僅供學習交流之用。
DIY前提:在國內的論壇里,搜索了一下,找到了各種解包,打包的技術內容,以及各種漢化、去廣告的帖子,但這個並不是本文的目的。以前見過打包黨不僅修改了別人apk的廣告用來獲利,還將別人apk的包名修改了,所以有人早就實現了,但未能找到相關的技術文章,本文涉及的知識都還是比較淺顯的,沒有深入的研究底層原因,也參考了網上幾個帖子。
PS:在國內論壇上,找一篇原創的帖子很難,基本都是轉載的,還不附原文鏈接,引入了的很多錯誤,想找到原文都很難,真是很悲劇。國內論壇里,熱心人還是少了點,很多問題都死了,無人回答,筆者嘗試在CSDN、ITEYE、EOE發過幾個帖子,但很少能解決問題,於是只能求助於國外論壇,這也是一個悲劇。
這個問題解決完了,也很簡單,至少我這個比較簡單,我是想多安裝幾個QQ瀏覽器(有IT屌絲安裝了10個微信的,這個我表示很汗),基本過程如下:
1、將apk解包成一個文件夾
2、修改androidManifest.xml中對應的包名
3、修改smali目錄下中的包
4、將文件夾打包成apk
5、將apk重新簽名
6、驗證apk的簽名
7、優化apk
8、安裝apk,並測試
基本前提條件:
1、java的環境
2、Eclipse及android的開發環境(這個主要是用來進行調試)
3、text文本編輯器,本人用的是UEdit,也可以用類似的,主要是利用其查找及替換功能
這篇文章主要用來反編譯apk得到源碼,但google進行了反制,只能得到一些可讀性不高的源碼,這里主要是利用反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件.
參考文獻里提到的apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip均可以從code.google.com/p/android-apktool/上下載,下載好之後,將涉及的命令行目錄及exe目錄添加到電腦的path路徑中,這樣就便於操作了,如檢測apktool是否可以,可以在命令行中輸入apktool,如果可以識別就表示OK了。
參考了國內的技術文章後,有人發帖以上面的思路進行操作,但沒有發技術文章,所以筆者只能去國外論壇中逛逛了,在Stack Overflow中,找到了相關的帖子,有老外留言"you can't do this",這個的確有違技術道德,但這里只做學習參考或交流。找到了一片帖子stackoverflow.com/questions/9218641/renaming-the-package-name-inside-an-apk,這篇帖子的回答給了比較詳細的步驟(如上),他的情況比這個還稍微復雜點,簡化後就是我要的結果,我就是按照這個基本步驟來的,回答的英文比較好懂(很有可能是國人)。
下面就按照上面的步驟一步步操作:我是已QQ瀏覽器4.0版的apk來操作的。
1、我的apktool安裝到了E盤下的apktool目錄下,所以的操作也在這個目錄下進行 E:\apkTool
將apk復制到E:\apkTool目錄下,重命名為qq4.0.apk(這個沒有要求,隨意就好)
將apk解包 命令行下cd到E:\apkTool這個目錄 apktool d qq4.o.apk qq4 將apk解包到qq4(這個也可以隨意)這個目錄
E:\apkTool\qq4這個目錄下內容如下:
2、修改AndroidManifest.xml中的包名,
將package後面的包名com.tencent.qbx改為你想要的新包名,我改為了com.tianxiao.tencentweb
將涉及原包名的com.tencent.qbx的相關activity的聲明中的包名均改為新包名com.tianxiao.tencentweb
至於intent-filter裡面的action名中包含原包名的,則可以不改,如果改的話,代碼中也要相應的改變
另外,如果有provider,provider的authorities也得改,這個在同一手機上必須唯一,否則安裝會失敗
3、在E:\apkTool\qq4\smali目錄下,有很多子目錄,子目錄下的文件多以smali結尾,這中文件的語法有點類似於匯編語言,具體原理就不深究了。
將smali目錄下的所有文件中的原包名的聲明形式com/tencent/qbx改為新包名com/tianxiao/tencentweb
具體如下,用UEdit在文件中替換即可,將目標目錄指向E:\apkTool\qq4\smali,這個將近1000條左右
如果之前改為action裡面的包名,也要將字元串形式的包名com.tencent.qbx改為com.tianxiao.tencentweb
如果有provider也要講原來的authorities值改為在AndroidManifest.xml中新改的authorities值。
4、將E:\apkTool\qq4重新打包為apk
apktool b qq4 newqq.apk
5、將新的newqq.apk 重新簽名
簽名的方法很多,一主要是手動生成簽名,用命令行簽名
我採用的現成的,下載了一個Auto-sign的文件夾,進行了簽名,這個比較簡單,網上帖子很多,就不贅述。
新簽名後的apk名為 newqq4signed.apk
『貳』 如何更改安卓系統軟體圖標和名稱
1、首先把APK Editor安裝到安卓手機上,然後打開它,選擇第二個選項:選擇一個應用作為APK,然後找到需要修改名稱和圖標的應用。
『叄』 安卓APK軟體包如何修改Package Name
1. 在包名上點右鍵-->refactor-->rename
2. 在AndroidManifest.xml里運行
<manifest xmlns:Android="http://schemas.android.com/apk/res/android"
package="com.newpakageName"
Android:versionCode="1"
Android:versionName="1.0">
將紅色部分修改成你的新包名即可。
3.......
4. 編譯後還是出錯,要改其他部分中存在的包名...
5.......
-------------------------------------------------------
其實,以上步驟都不需要一個個做,只要一個步驟,下面就是重點!
僅2個步驟:
1 右鍵項目 android tools → rename application package 下面寫上我們的包名
2 然後把所有包名refactor(updated)
OK.
『肆』 怎麼改安卓app名字
修改app名稱可以直接在手機上進行操作,但是需要下載安卓apk編輯工具。具體操作步驟如下:
1、點擊打開手機上安裝的apk編輯工具。
2、打開工具頁面後點擊頁面上的文件夾,打開需要修改的軟體所在的文件夾。
3、在進入軟體文件夾後找到後綴為arsc的文件。
4、在彈出的頁面中將app-name選項更改為需要修改的app名稱。
5、在彈出的頁面中點擊保存選項即可完成更改。
注意事項:
所要修改的app名稱文件夾都是以該軟體的中文拼音或英文名稱為文件夾名稱,這樣可以快速找到文件所在位置。