批量修改安卓apk包名
1.准备工作
1.1 反编译工具apktool下载
1.2 java, android SDK安装
1.2 python安装
2.反编译现有包
apktool.bat d test.apk
3. 直接上代码
import re
import os
import shutil
file_path = 'F:\\apk\\test\\AndroidManifest.xml'
root_path = "F:\\apk\\test\\smali\\com\\test\\package" #smali文件夹下包名目录
def modify_package(package_org, package_name):
with open(file_path, 'r') as f:
file_content = f.read()
new_file = file_content.replace(package_org, package_name)
with open(file_path, 'w') as f:
f.write(new_file)
list_dirs = os.walk(root_path)
other_package = package_name.replace('.', '/')
other_package_org = package_org.replace('.', '/')
for root, dirs, files in list_dirs:
for file_name in files:
path = root_path + '/' + file_name
modify_file = ''
with open(path, 'rb') as f:
file_s = f.read()
modify_file = file_s.replace(other_package_org, other_package)
with open(path, 'wb') as f:
f.write(modify_file)
copy_name = "F:\\apk\\" + package_name + "org.apk"
dist_name = "F:\\apk\\" + package_name + ".apk"
os.system('apktool b F:\\apk\\test') #重新打包
shutil.copy('F:\\apk\\test\\dist\\test.apk', copy_name)
shell_cmd = 'jarsigner -verbose -keystore key.key -storepass password -keypass password -signedjar ' + dist_name + ' ' + copy_name + ' alianame'
os.system(shell_cmd) # 添加签名
if __name__ == '__main__' :
filelines = ''
with open('channel.txt', 'rb') as f_c: #channel.txt是需要切的包的包名,一行一个包名
filelines = f_c.readlines()
package_org = 'com.test.pacakge'
for line in filelines :
modify_package(package_org, line.strip())
package_org = line.strip()
批量修改安卓apk包名的更多相关文章
- 获取安卓应用APK包名的方法
应用商店按照符合Android标准的原则进行设计,使用包名(Package Name)作为应用的唯一标识.即:包名必须唯一,一个包名代表一个应用,不允许两个应用使用同样的包名.包名主要用于系统识别应用 ...
- Appium自动化测试3之获取apk包名和launcherActivity后续
接着“Appium自动化测试3之获取apk包名和launcherActivity”章节介绍 测试脚本 1.测试脚本如下: # -*- coding:utf-8 -*- import os, time, ...
- Android获取APK包名的几种方法
Android获取APK包名的几种方法:1.adb shell pm list package -f | findstr 关键字 #只能获取到包名,主Activity名无法获取到 2.使用aapt-- ...
- Python Python实现批量安装android apk包
基于Python实现批量安装android apk包 by:授客 QQ:1033553122 1.相关软件包及文件下载 下载地址:adb软件包及批量安装apk包的py文件.zip 2.测试环境 Win ...
- 获取软件的apk包名、查看手机设备名称等
获取软件的apk包名 1.下载aapt,这里使用的是SDK自带的aapt,找到SDK路径下面的aapt.exe,本机路径:E:\downloads\android-sdk_r23.0.2-window ...
- 查看APK包名签名等信息
有些游戏第三方比如分享需要配置游戏包名和签名,不同渠道包名签名又不同,所以时常需要查看不同apk包等签名信息,之前是使用等微博开放平台的手机客户端查看apk签名,前提是知道包名,网上找了下查看签名和包 ...
- Android 使用 aapt 命令查看 apk 包名
一.aapt 是什么 aapt 即Android Asset Packaging Tool,在SDK的build-tools目录下.该工具可以查看,创建, 更新ZIP格式的文档附件(zip, jar, ...
- AndroidStudio修改程序的包名,可以修改com.example.xxx之类的详解
转载请说明出处.原创作品. 首先说明一下,当时公司需要修改androidStudio 项目的包名 于是上网查了一下,只看到了修改后面的包名,而不可以修改 前缀的com.example.xxx.所以很无 ...
- gradle修改apk包名和apk文件名
需求1:根据渠道不同给包名添加不同的后缀名 方案: //先定义默认包名,用来复用 def packageName = "xxx.xxxx.xxxx" defaultConfig { ...
随机推荐
- openssh6.7.deb download packed for debian7/ubuntu12.04 amd64
openssh the openssh-server on debian7/ubuntu12.04 is too old and out of date. so now we replace and ...
- STM8S TIM4 初始化设置
#define TIM4_DIV1 (unsigned char)0 #define TIM4_DIV2 (unsigned char)1 #define TIM4_DIV4 (unsigned ch ...
- Android开发之简单的电子相册实现
电子相册的效果图和结构图: 图片资源的文件: package com.example.electronicalbum; public interface ImageResource { //用一个 ...
- es6笔记1^_^let、string、number、math
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本 ...
- 【.net 深呼吸】细说CodeDom(9):动态编译
知道了如果构建代码文档,知道了如何生成代码,那么编译程序集就很简单了. CodeDomProvider 类提供了三个可以执行编译的方法: 1.CompileAssemblyFromSource——这个 ...
- php文件上传及头像预览
php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php 程序将文件保存在 ...
- C语言之自增和自减运算符
一 自增和自减 自增(++):就是给自己的值再加1 自减(--):就是给自己的值减1 tips: ++(--)可以放在前面,也可以放在后面,效果都是一样,都是会给自身+1(-1) 前缀++(--):会 ...
- 再谈加密-RSA非对称加密的理解和使用
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- python绝技 — 使用PyGeoIP关联IP地址和物理位置
准备工作 要关联IP与物理位置,我们需要有一个包含这样对应关系的数据库. 我们可以使用开源数据库GeoLiteCity,它能够较为准确地把IP地址与所在城市关联起来 下载地址:http://dev.m ...
- CentOS 7安装nginx
CentOS 7安装nginx 参考网上其他文章做的 安装Nginx 我们从nginx官方的RPM源来安装一个预构建的稳定版本的nginx包. rpm --import http://nginx.or ...