android修改包名
1. APK包名修改 請問如何修改APK包名
基本過程如下:
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均可以從http//code.google.com/p/android-apktool/上下載,下載好之後,將涉及的命令行目錄及exe目錄添加到電腦的path路徑中,這樣就便於操作了,如檢測apktool是否可以,可以在命令行中輸入apktool,如果可以識別就表示OK了。
參考了國內的技術文章後,有人發帖以上面的思路進行操作,但沒有發技術文章,所以筆者只能去國外論壇中逛逛了,在Stack Overflow中,找到了相關的帖子,有老外留言"you can't do this",這個的確有違技術道德,但這里只做學習參考或交流。找到了一片帖子http://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:apkToolqq4這個目錄下內容如下:
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:apkToolqq4smali目錄下,有很多子目錄,子目錄下的文件多以smali結尾,這中文件的語法有點類似於匯編語言,具體原理就不深究了。
將smali目錄下的所有文件中的原包名的聲明形式com/tencent/qbx改為新包名com/tianxiao/tencentweb
具體如下,用UEdit在文件中替換即可,將目標目錄指向E:apkToolqq4smali,這個將近1000條左右
如果之前改為action裡面的包名,也要將字元串形式的包名com.tencent.qbx改為com.tianxiao.tencentweb
如果有provider也要講原來的authorities值改為在AndroidManifest.xml中新改的authorities值。
4、將E:apkToolqq4重新打包為apk
apktool b qq4 newqq.apk
5、將新的newqq.apk 重新簽名
簽名的方法很多,一主要是手動生成簽名,用命令行簽名
我採用的現成的,下載了一個Auto-sign的文件夾,進行了簽名,這個比較簡單,網上帖子很多,就不贅述。
新簽名後的apk名為 newqq4signed.apk
6、驗證簽名 是否正確
jarsigner -verify -verbose -certs newqq4signed.apk
一般來說,沒問題,略過
7、優化apk
zipalign -v 4 newqq4signed.apk latestqq.apk 優化過的apk名為latestqq.apk
8、安裝新的apk,驗證是否成功
這個最好把Eclipse打開,手機連上,查看logcat的安裝信息。
我嘗試了3次才成功,主要是忘了provider的authorities的處理,
出錯信息如下:Can't install because provider name qbx_bookmarks (in package com.tianxiao.tencentweb) is already used by com.tencent.qbx
原因很清楚,所以debug還是相當給力的,原來不喜歡debug,看debug過程可以更好的了解執行過程。
2. android 怎麼修改應用包名
操作如下:
3. 安卓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.
4. 怎樣修改安卓軟體內部代碼的packname名字,安卓軟體是在商店下載的
Android
源碼自帶了很多應用程序,想改個包名方便修改?很簡單,兩步搞定,以packages/apps/Settings為例:
1、打開AndroidManifest.xml,把
<manifest xmlns:android="http://schemas.android.com/apk/res/android
"
android:sharedUserId="android.uid.system"
package="com.android.settings">
改成
<manifest xmlns:android="http://schemas.android.com/apk/res/android
"
android:sharedUserId="android.uid.system"
package="com.android.settings2">
2、打開package Explorer
找到src 下主包com.android.setting
右鍵refactor->rename改成com.android.setting2,四個選項全部勾選,等一會就OK了
在模擬器里運行會時,會讓你選擇有原生的還是更改後的
5. Android程序裡面 包的名字怎麼改啊
右鍵要改的包->Refactot->Rename->New name中輸入新名字->把Update references打上鉤->ok
如果以上操作以後還有錯誤就點擊Project->Clean->OK
如果還有錯誤可能是修改包名後gen里的R文件丟失了,R文件如果丟失,可以刪除工程(不要在彈出的對話框的選項打鉤),再重新導入工程即可。
6. 怎麼用android studio修改app包名
這里修改包名有兩個操作,一就是修改包的名稱,還有就是修改application id,後者的目的修改了程序的唯一標識。舉一個例子,相信大家就會明白修改application id的作用了。若手機中安裝了一個應用,然後又修改了這個應用,當你再次安裝這個應用時,將會覆蓋你原來所裝的,而當你修改應用後同時又修改了application id的話,當再次安裝時便不會覆蓋。
在圖一中右鍵單擊所要修改的包。
然後單擊 Refactor --> Rename。
彈出對話框,單擊 Rename Package。
彈出對話框,輸入新的包名,單擊 Refactor。
然後,就可以看到步驟一中單擊的包的名稱已經改變了。但是AndroidManifest文件中的包名卻沒改變,重新打開項目之後就好了。
修改application id
找到Gradle Scripts中的build.gradle(Mole:app),打開。
找到application id,直接修改即可。
然後會出現提示,單擊 sync now即可。
7. 如何將更改android app的包名
1.選擇任意一個APP反編譯軟體,為避免廣告嫌疑,小編在這里就不推薦使用什麼APP反編譯軟體啦,大家可以自行網路或者google。用APP反編譯軟體打開你想要修改的APP。
2.打開AndroidManifest.xml,APP的包名就記錄在該文件中。在AndroidManifest.xml中,搜索"package=",該參數記錄APP報名。APP的報名均以com.開頭
3.將包名替換成我們想要改的名字,com.頭不能修改,建議修改最後一個欄位
4.將修改好的AndroidManifest.xml保存,編譯成APP即可,這樣我們修改好的程序就是新的包名啦!
如何修改安卓APP包名
8. android包名修改了,還能用以前的簽名嗎
android包名修改了,仍然可用以前的簽名,用什麼簽名與包名無關。
同一個開發者的多個程序盡可能使用同一個數字證書 ,這可以帶來以下好處:
1、有利於程序升級,當新版程序和舊版程序的數字證書相同時,Android系統才會認為這兩個程序是同一個程序的不同版本。如果新版程序和舊版程序的數字證書不相同,則Android系統認為他們是不同的程序,並產生沖突,會要求新程序更改包名;
2、有利於程序的模塊化設計和開發。Android系統允許擁有同一個數字簽名的程序運行在一個進程中,Android程序會將他們視為同一個程序。所以開發者可以將自己的程序分模塊開發,而用戶只需要在需要的時候下載適當的模塊;
3、 可以通過許可權(permission)的方式在多個程序間共享數據和代碼。Android提供了基於數字證書的許可權賦予機制,應用程序可以和其他的程序共 享概功能或者數據給那那些與自己擁有相同數字證書的程序。如果某個許可權(permission)的protectionLevel是signature, 則這個許可權就只能授予那些跟該許可權所在的包擁有同一個數字證書的程序。