【flutter】上架马甲包过审
flutter上架马甲包过审:
所谓马甲包,就是完全复制主包功能或保留部分功能分身包,而各大应用商店都是不允许马甲包的存在的,所以就要通过技术手段,让马甲包与主包的外表和内在都变得不一样。简单得分为两个步骤:
1、改变马甲包的外表-换肤
其中包括包名,包名称,应用图标和应用主页面布局和整体风格等。
2、改变马甲包的内在-混淆
这里简单记录下我们公司flutter项目马甲包的上架过程,总共提审了vivo、oppo、华为、小米、腾讯应用宝:
资料准备:
因为我们的马甲包是上传在同一个公司主体下,所以需要提前准备一下资料:
1、软著
2、承诺函
3、安全评估报告
4、安全评估提交截图
5、icon
6、五图
7、上架内容(主副标题,一句话简介,应用描述等)
换肤
由于时间比较紧张,并且项目比较庞大,所以我们只是改变了主色系以及登录流程和首页一级tab页的UI布局。
混淆
flutter构建apk是默认混淆的!起初我们没有做任何处理就提审了,结果当然是审核不通过!
这简直就是一模一样啊!于是我们做了以下处理:
1、修改图片资源名
修改图片资源名python脚本代码如下,将所有图片资源名末尾加上一个同样的字符串就好了;
注意:我们的图片资源都是放在/assets/images目录下,脚本代码根据你们项目调整;
#项目目录
projectAbsRootPath = sys.path[0]
#图片所在的资源目录路径
assetPath="/assets/images"
#项目中dart代码所在目录
libPath = projectAbsRootPath+ "/lib"
assetAbPath = projectAbsRootPath+assetPathprint("projectRootPath:" + projectAbsRootPath + " assets:" +assetAbPath + " lib:" + libPath)
print("----------开始查找图片--------------")
#遍历目录,将图片存储到list中的方法
def searchImage(filePath:String):list = []isDir = os.path.isdir(filePath)if isDir:for f in os.listdir(filePath):if f.startswith("."):print(filePath+"/"+f)else:tList = searchImage(filePath+"/"+f)list.extend(tList)else:if imghdr.what(filePath) in {"png"}:list.append(filePath)return list#项目中使用的图片资源路径集合
imageList = searchImage(assetAbPath)for name in imageList:print(name)
for num in range(0,len(imageList)):# if(num<10):pList = imageList[num].split("/")imgName = pList[-1]txt = imageList[num].replace(imgName, '')nList = imgName.split(".")imgName = nList[0]os.rename(imageList[num],txt + '/' + imgName + '_project2.png')
然后通过android studio修改资源的引用路径就可以了,改完记得多测试!
2、原生层加垃圾代码
加垃圾代码,可以用到AndroidJunkCode库:
使用方法
根目录的 build.gradle 中:
buildscript {repositories {mavenCentral()}dependencies {classpath "com.github.qq549631030:android-junk-code:x.x.x"}
}
app 目录的 build.gradle 模块中:
apply plugin: 'com.android.application'
apply plugin: 'android-junk-code'androidJunkCode {variantConfig {release {//变体名称,如果没有设置 productFlavors 就是 buildType 名称,如果有设置 productFlavors 就是 flavor+buildType,例如(freeRelease、proRelease)packageBase = "cn.hx.plugin.ui" //生成 java 类根包名packageCount = 30 //生成包数量activityCountPerPackage = 3 //每个包下生成 Activity 类数量excludeActivityJavaFile = false //是否排除生成 Activity 的 Java 文件,默认 false(layout 和写入 AndroidManifest.xml 还会执行),主要用于处理类似神策全埋点编译过慢问题otherCountPerPackage = 50 //每个包下生成其它类的数量methodCountPerClass = 20 //每个类下生成方法数量resPrefix = "junk_" //生成的 layout、drawable、string 等资源名前缀drawableCount = 300 //生成 drawable 资源数量stringCount = 300 //生成 string 数量}}
}
做完这些处理,再次提交就没啥问题了!!!
最后
最终我们也只通过了vivo、oppo、小米、腾讯应用宝,华为对于马甲包的人工审核太严了需要大改版,只能放弃!
另外在上架应用时需要“全国互联网安全服务管理提交结果截图”,显示结果为成功才行,需要审核人员上门检查比较麻烦,用主包的截图ps一下就好了
【flutter】上架马甲包过审相关推荐
- 微信小游戏马甲包过审(马甲包过包)
什么是微信小游戏马甲包 微信小游戏马甲包 是指同一套游戏源码使用不同的主体上线微信小游戏平台. 如果要过审的马甲包游戏源码上传时没有经过混淆处理,就会被微信识别到代码侵权然后打回,同时主体信用分-5( ...
- 2019 iOS马甲包过审经验4.3和2.1的过包技巧
1. 机审原理 我们虽然无法得知苹果实际的机审原理,但从程序员的角度还是能分析出一些东西的. 1.1 首先OC和C++代码编译出的二进制文件,有点经验和反编译过的应该都知道: 删注释神马的是没用的,因 ...
- App Store提审被拒后成功上架马甲包经历分享
在App Store里,常常会有一些BC游戏App看起来名称不同.icon不同.LOGO介绍也不同,但你可以测试一下,下载后却发现,游戏内容一模一样.这就是我们常说的"马甲包"也可 ...
- GooglePlay马甲包过审详细流程
1. 更改内部的包名 直接选中app/src/main/java下的自定义包名,有可能refactor后还有需要手动调整的地方,编译不过时可以定位. 2. 打包时修改Manifest文件.保证每个包的 ...
- iOS马甲包过审技巧汇总
现在苹果爸爸的审核越来越严格,此前不久就出现大量APP下架事件,后续苹果官网对外宣传的原因是违反了苹果审核条款2.5.2的相关规定,即使用了"热更新"技术.虽然没有直接和马甲包相关 ...
- iOS马甲包过审经验4.3和2.1
Guideline 4.3 - Design This app duplicates the content and functionality of other apps submitted by ...
- iOS马甲包上架招式
一.什么是马甲包 马甲包是利用App store 规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二.为什么 ...
- 技术指南|马甲包上架注意事项
之前我们讲到了马甲包的作用,我们就接着分享如何上架马甲包,有过向 App Store 提交 App 被拒经历的人,大概都听说过这个恐怖的 4.3 条款,和下架14天封号的警告,最怕苹果爸爸深夜的关心, ...
- iOS马甲包开发招式及规避4.3方法合集
看了下上周的留言,有些开发者老是抱怨马甲包又被拒了,该如何上包才安全,我对这块也算略知一二,也有朋友是做这块的,一些规避手段我还是知晓一二,我今天结合了网上的资料以及几位朋友的一些意见,把这些经验分享 ...
最新文章
- 未解决计算机主机与打印机,电脑无法与打印机连接 计算机网考题目2(12)
- 使用FastCoder写缓存单例
- php ajax邮箱,PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
- 1/4美国理工博士生中途离学 | Science:原因何在?
- html写界面,C++|Qt后台处理业务(后台登录例子JavaScript给Qt提供数据)
- 软件开发中的需求文档由谁来编写_使用 RStudio 中的 Rmarkdown 编写演示文档
- MySQL 如何利用一条语句实现类似于if-else条件语句的判断
- 5.分布式服务架构:原理、设计与实战 --- 基于调用链的服务治理系统的设计与实现
- 顺序存储循环队列的基本操作
- openssl 升级
- (Singleton)单例模式的Java实现
- oracle表空间可以更改吗,如何更改Oracle数据库表的表空间?
- 学会python可以上天!20行代码获取斗鱼平台房间数据,就是这么牛逼!
- 为国内软件质量呐喊:《2021年国内质量调查报告》发布
- java代码实现CGCS2000大地坐标系经纬度转换为对应XY值
- 关于徐晓东,传统武术,以及太极拳
- 计算机的二进制算法与易图中,A.黑色素瘤B.脂肪瘤C.纤维瘤D.血管瘤E.皮脂腺囊肿1.好发于皮下、界限清楚、分叶状、生长较慢的肿瘤是()2.好发于皮下、质硬、生长缓慢的舯瘤是()...
- c++游戏编程初步(超简单)教学
- 3.1.1 docker入门
- animals中文谐音_搞笑的英语句子谐音