非全局替换,重打包修改apk包名

查看 89|回复 10
作者:choson   
有些人想app多开,或者想同时安装几个一样的app在手机上,除了用多开工具之外,还有一个办法就是修改包名,让多个包名不冲突,这样就可以安装多个一样功能的包到手机上。
目前,在网上大部分的apk重打包修改包名方法都是全局查找包名进行字符串替换。这样有个问题,就是当app上有native方法时,如果进行了全局替换,有些native方法将无法访问。最近有个需求我尝试研究非全局替换的方式修改包名,竟然成功了,过程给有需要的朋友参考一下。
实验apk:菜谱大全(非加固的app,加固的app本方法无效)原包名:net.meishi360.app修改后包名:net11.meishi360.app
重打包工具:Android Killer
apktool版本:2.4.1
一、先把apk拖进Android Killer反编译,然后不作任何修改重打包一次,在手机上可以顺利安装和使用。


QQ截图20200729161001.png (150.84 KB, 下载次数: 0)
下载附件
1
2020-7-29 16:49 上传

二、打开AndroidManifest.xml,首先修改包名package="net.meishi360.app" 为package="net11.meishi360.app",再次重打包,竟然可以顺利成功重打包。


QQ截图20200729161133.png (157.78 KB, 下载次数: 0)
下载附件
2
2020-7-29 16:53 上传

三、在手机安装打包后的apk,在没有卸载原来的apk时,发现安装过程中出错,新apk安装不进去。查看adb logcat,发现有些provider、intent名称已经被原apk注册进系统,q名称有冲突所以apk安装被中止。
四、继续修改provider、intent等名称。再次重打包,可以成功安装,并可以正常使用。修改包名成功。


QQ截图20200729162530.png (302.25 KB, 下载次数: 1)
下载附件
3
2020-7-29 17:03 上传

附:
修改前AndroidManifest.xml
[XML] 纯文本查看 复制代码
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
        
        
        
        
            
               
               
            

        
        
        
        
        
        
        
        
        
            
               
               
               
               
            

        
        
        
        
        
            
               
            

        
        
            
               
               
            

        
        
        
        
            
        
        
        
            
        
        
        
        
        
        
        
        
            
               
               
               
            

        
        
            
               
               
               
               
            

        
        
            
               
               
            

        
        
            
               
               
            

            
               
               
            

            
               
               
               
            

        
        
        
        
        
            
               
               
            

        
   
修改后AndroidManifest.xml
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
        
        
        
        
            
               
               
            

        
        
        
        
        
        
        
        
        
            
               
               
               
               
            

        
        
        
        
        
            
               
            

        
        
            
               
            

        
        
        
        
            
        
        
        
            
        
        
        
        
        
        
        
        
            
               
               
            

        
        
            
               
               
               
               
            

        
        
            
               
            

        
        
            
               
            

            
               
               
            

            
               
               
               
            

        
        
        net11.meishi360.app.
DataProvider
" android:exported="false" android:name="cn.jpush.android.service.DataProvider" android:process=":pushcore"/>
        
        
            
               
            

        
   

全局, 下载次数

州哥在江湖   

重点就是包名:package="net.meishi360.app"

        
AndroidManifest.xml内除了的别的全部替换即可
普通软件应用可以,稍微复杂一点的就不行了,
桂花糕乀   

收藏 支持
绫音   

学习 一下
office1   

看起来头大。。。?
fenglianyun   

这也是个办法,针对部分APK能用。
jacy   

感谢楼主指导  回头练下手
邹邹邹   

学习了,谢谢
zhao1619   

小白表示代码部分看了有点头大
shileiye   

整个项目所有文件搜索替换不就完了?
您需要登录后才可以回帖 登录 | 立即注册