①. 上过马甲包的同学都知道,Google审核马甲包特别的严格变态,一般来说,审核时间越久,越容易出问题,通常都是机器审核后有问题,会交给人工审核, 一般机器审核差不多两到三个工作日,如果,三到四个工作日没出结果,十有八九这个马甲是有问题的
②. 关联问题,最为严重的和值得思考的问题,咋也不知道Google的审核是怎么判断关联的,个人通过上架很多马甲包得出这几个途径,
1:class文件高度相似,2:res资源文件和xml布局文件 3:后台数据返回格式 4:Google账号及环境 5:马甲UI 6:电脑关联
其实仔细想一想,差不多这几大类。
①:再此之前,可以了解下 Google混淆 这篇文章,提升马甲时间
②:想解决马甲被封,被关联,最重要的就是要新,最好不要和上一个马甲有任何关联,视作一个新包来看待
③:自己总结的几点经验:从项目来说
1.必须要创建新的项目,创建新的包名,
2.项目中所有的lib和module最好打乱,路径子目录最好每次都打乱,
3.所有的类名,路径,xml中的id必须更换名字,res图片让ui更换MD5,马甲ui首页最好每次都换种不同的风格
4.混淆可以用上面这个,部分java类可以转kotlin,kotlin可以转转java等,保证最大程度与旧包不一致
5.关联问题: 每次必须用新的Google账号,包括电脑,上一个马甲,必须换掉电脑,每个电脑只能上架一个马甲包,每个电脑,每个马甲包,必须都要有一个大陆外的手机卡,用来测试,或者上架时,当作vpn来打包使用,也就是一个马甲包一个大陆之外得IP
6.最好不要测试,先上架,审核通过后,再从GooglePlay中下载测试,
7.新马甲项目,必须要在新的电脑上,创建jks文件,不要再自己电脑上创建,创建jks文件的时候,可以连接新手机(大陆之外的手机卡)进行创建,包括生成sha1和256及散列密钥,这些都要保证在新的设备上获取
8.打包aab的时候,也必须链接新手机(大陆之外的手机卡)进行打包。有些同学说vpn不行吗,说实话,如果做过vpn的话,就知道,这个真不行,不信可以用vpn进行打包,
9.大致就是:每个马甲都要对应一套新设备如:大陆之外手机卡 新电脑 新项目 新账户,以免产生关联 代码 目录结构,能多改就多改!ui,能变就变!数据返回格式,能改就改(不用太大改动,就比如每个马甲包返回的时候,外层再套一层大的data)!
Google混淆 这个是大佬的最新的一篇混淆文章,可以用这个,节省时间
在这里,自己也用几次,打算把整个实现流程写下来,说实话,这个是真的很好用,希望后面的同学不要在这个地方踩坑,在这里就不过多描述了直接上步骤,简单易懂
1.万物万事先倒依赖
maven{ url'https://raw.githubusercontent.com/martinloren/AabResGuard/mvn-repo' }
classpath"com.bytedance.android:aabresguard-plugin:0.1.6"
classpath"com.github.liujingxing:XmlClassGuard:1.0.1"

2. 在app中添加,多module中,其余的不用配,只需要在app中
applyplugin:"xml-class-guard"
applyfrom:'aabresguard.gradle'

3.运行

4.这个工具需要在新版上运行 要下载最新版as,gradle必须是7.2 别的版本会报错 as官网


如有报错,或者 xml-class-mapping.txt 文件抱错,请在评论区留言,
最后,aabresguard 白名单配置,在app目录下 如下,,请自行创建白名单文件,这里发不了

applyplugin:"com.bytedance.android.aabResGuard"
aabResGuard{
// mappingFile = file("mapping.txt").toPath() // 用于增量混淆的 mapping.txt 文件
// 白名单规则
whiteList = [
"*.R.raw.*",
]
obfuscatedBundleFileName ="mua.aab" // 混淆后的文件名称,必须以 `.aab` 结尾
mergeDuplicatedRes =true // 是否允许去除重复资源
enableFilterFiles =true // 是否允许过滤文件
// 文件过滤规则
filterList = [
"*/arm64-v8a/*",
"META-INF/*"
]
enableFilterStrings =false // 过滤文案
unusedStringPath = file("unused.txt").toPath()// 过滤文案列表路径 默认在mapping同目录查找
languageWhiteList = ["en","in"]// 保留en,en-xx,zh,zh-xx等语言,其余均删除
}
很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个
我有一堆要清理的URL。它们都包含UTM参数,在这种情况下不是必需的,或者是有害的。示例:http://houseofbuttons.tumblr.com/post/22326009438?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+HouseOfButtons+%28House+of+Buttons%29所有可能的参数都以utm_开头。如何使用ruby脚本/结构轻松删除它们而不破坏其他潜在的“好”URL参数? 最佳答案 您可以将正则表达式应用于url以清
我正在尝试为自己创建一个直接连接到我的日历的应用程序……但我从不想参与重新验证。我只想编写一次身份验证代码并完成它。授权码如下:key=Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PKCS12_FILE_PATH,PASSWORD)asserter=Google::APIClient::JWTAsserter.new(SERVICE_ACCOUNT_EMAIL,'https://www.googleapis.com/auth/calendar',key)@client=Google::APIClient.new@client.a
我正在尝试为使用omniauth-google-oauth2gem创建session编写测试。我是否需要将env["omniauth.auth"]变量与post:create一起传递?也许当我试图这样做时,我做错了。我得到的错误如下所示...Rake测试错误1)Error:SessionsControllerTest#test_should_get_create:NoMethodError:undefinedmethod`provider'fornil:NilClassapp/models/user.rb:6:in`from_omniauth'app/controllers/sessi
我正在使用devise登录omniauth,authid。当用户登录时,我得到user_info:name:RiccardoTacconilast_name:Tacconiemail:email@gmail.comfirst_name:Riccardouid:https://www.google.com/accounts/o8/id?id=xxxxxxxxxprovider:google_apps我找到了一个插件:http://stakeventures.com/articles/2009/10/06/portable-contacts-in-ruby获取Google通讯录。我只需要使
我正在努力让google-api-ruby-clientgem按照这里的基本用法示例工作:基本用法require'google/apis/drive_v2'Drive=Google::Apis::DriveV2#Aliasthemoduledrive=Drive::DriveService.newdrive.authorization=...#SeeGoogleauthorSignetlibraries#SearchforfilesinDrive(firstpageonly)files=drive.list_files(q:"titlecontains'finances'")files
我想使用googlecharts创建一个如下所示的图表:GoogleChart.pie_400x200('TacoBell'=>0,'Mediterranean'=>2,'Shivas'=>5)给定一个对象Results(name,count)。如何为GoogleCharts的结构创建一个对象,如上所示?谢谢 最佳答案 从您在评论中列为@results的结果对象开始,以下应该有效:GoogleChart.pie_400x200(@results.map{|r|{r[:title]=>r[:percentage]}})
如果要让用户能够共享一个私有(private)链接,让任何点击它的人都能查看具有隐私限制的特定页面/文档/项目,最好的方法是什么?以我为例:用户创建的事件仅限于数据库中某些关系组(即:friend、friend的friend等)我在事件Controller中有一个:before_filter检查资格当前登录用户的权限,以确保该用户有权查看该事件。如果他们不这样做,他们将被引导到根页面并显示一条错误消息。但是,我希望存在一个特殊场景,用户可以使用相同的隐私设置创建一个事件,此外,还可以通过电子邮件、Facebook等方式与他或她的friend分享一个特殊链接。那些用户不需要帐户(但需要创
我正在为ruby使用googleapi,但不知道如何开始,请给我一个ABC示例,非常感谢? 最佳答案 如果您要创建服务帐户应用程序以访问GoogleAnalytics。通过https://code.google.com/apis/console向Google注册.在APIAccess选项卡上,单击CreateclientID,选择ServiceAccount。存储Google将生成的key文件,并记住该key的密码。这里有一些代码可以帮助您入门require'rubygems'require'google/api_client'
我正在尝试获取GoogleDrive电子表格的内容,但我似乎找不到可以轻松完成此操作的gem。我试过google-drive-ruby,但它涉及一个步骤,我必须从Google的网站获取授权token。这不是很有帮助,因为我必须在服务器端完成所有这些工作。显然在以前版本的gem中有一个登录方法,但被删除了。有什么办法吗?我必须使用OAuth吗?获取token并将该token传递到google-drive-ruby? 最佳答案 我设法在Reddit上得到了答案。您需要一个服务帐户并与您的服务应用程序的电子邮件共享文档。p12key也必须