安卓应用如何改包名,怎么用apk修改器修改安装包名

  安卓应用如何改包名,怎么用apk修改器修改安装包名

  因为工作需要修改一个历史悠久的android apk的一些包名参数,但是由于年久失修,找不到原来的包项目,所以没有办法通过打包来修改apk的包名处理。这里有一个不用工程打包修改包名的解决方案。

  一、需准备的工具1。你需要一个可以运行jdk的环境,还有apk解包工具apktool,这里用的就是——2 . 3 . 4 . jar。

  2.python可以运行的环境

  2.明白原理1。可以使用命令Java-jar apk tool-2.3.4.jar d-f aa。apk-o bb。

  Aa.apk是你要解包的apk,bb是解包后生成的文件夹名。

  android项目解包后,一般的目录结构就固定了,如下图。

  AndroidManifest.xml包含包名,所以这里我们需要修改包名处理。这个文件中的所有原始包名都应该改为您想要的目标包名。

  2.smali目录下有很多文件,一般认为是你的代码生成的文件。然而,这里有一个区别。如果你的包名是aa.bb.cc,它是以aa/bb/cc的形式存在的,你要按照这里的规则进行替换。

  全部修改完毕,apk修改包名,基本完成。但是,这项工作一定要人工完成吗?太麻烦了。经常需要换的话,每次都要搜遍整个情况,一个一个换?不太聪明,所以我做了一个python脚本,批量替换包名。

  三。批量替换脚本#-*-编码:UTF-8-*-从shut导入复制导入平台导入OS def change _ file(real _ path,last _ package,new _ package):last _ package 1=last _ package . replace( . ,/)new _ package 1=new _ package . replace( . ,/)print(real _ path)st1= is _ write=False for line in open(real _ path):if line . find(last _ package)=0:line=line . replace(last _ package,new _ package)is _ write=True elif line . find(last _ package 1)=0:line=line . replace(last _ package 1,new _ package 1)is _ write=True st1=line if is _ write==True:open(real _ path, w )。write(st1)def change_dir(root,last_package,new _ package):for file _ name in OS . listdir(root):real _ path=OS . path . join(root,file _ name)real _ path=real _ path . replace( ,/)if OS . path . isdir(real _ path):change _ dir(real _ path,last_package,new _ package)else:change _ file(real _ path,last_package,new _ package)version=platform . python _ version code=int(version/bb if version code=3:last_package=input( input旧包名n) new_package=input(input新包名 n )else:last_package=raw _ input( input新包名n)print(root_dir,last _ package,new _ package)change _ dir(root _ dir,last _ package,new _ package)if version code=3:input( enter any key n )else:raw _ input( enter

  第四,打包回apk包。将之前解压缩的目录文件夹重新打包到apk中。您可以使用命令。

  Java-jar apk tool-2 . 3 . 4 . jar b-o new . apk bb这里的bb是之前解包后的文件夹,如果包完了就是修改了包名的apk。

安卓应用如何改包名,怎么用apk修改器修改安装包名