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, 则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。