当前位置: 首页 > news >正文

安卓多渠道打包(五)360加固walle多渠道打包

在这里插入图片描述

背景:

1、360加固宝,签名收費了,脚本上传加固也针对特定帐号才可实现。

内容

本文将会分享安卓项目中,使用360加固,再用walle签名,产出多渠道加固包的全流程。

环境

win10
jdk11
as2022+
gradle7.5

最终效果

通过walle获取加固包的渠道名字正确。

实现思路

整体思路如下:
项目产出release包–360加固–对齐,签名–walle多渠道
四个步骤。
当然,实现多渠道加固的方式,千差万别,这里仅仅时其中一种方式而已,有更好的方式可以评论区留言。

开始实现

(1)引入walle依赖
整个多渠道的核心,是以walle展开的,再以360加固为辅助。
所以这里的第一步,就是引入walle的依赖。
而walle有两个较好的版本,一个是官方的版本,一个是民间大神升级适配gradle7.0+的版本,具体选择哪个,看项目。这里的demo,我选择的是民间版本。

https://github.com/Petterpx/walle(fork升级版)
https://github.com/Meituan-Dianping/walle (官方原版)

具体配置方法,上述两个链接都有,这里粗略提一下就算了。


//walle配置核心-start--------------------------远程仓库地址
maven { url 'https://jitpack.io' }classpath:
classpath 'com.github.Petterpx.walle:plugin:1.0.5'主项目app,build.gradle中配置:apply plugin: 'walle'walle {def outputFile = new File("${rootProject.rootDir}/walle/")outputFile.deleteDir()outputFile.mkdirs()// 指定渠道包的输出路径apkOutputFolder = outputFile// 定制渠道包的APK的文件名称apkFileNameFormat = '${channel}-v${versionName}.apk'// 渠道配置文件channelFile = new File("${rootProject.rootDir}/channel")
}implementation 'com.github.Petterpx.walle:library:1.0.5'特别注意,一定要配置好项目的密钥,否则walle编译会报错//walle配置核心-end-------------------------

对比官方,我这里重写了walle输出时候的目录构建方式,先删除,后创建。每次打包都是新的目录。

注意!!请认真阅读walle括号内的相关配置。

说这么多,上述的配置看看就行,跑通就行。因为不会用到官方原版的多渠道,这里只是配置一下而已。实际对多渠道包没有根本上的影响。

配置完成后,项目可安装,可打正式包,可以rebuild。即认为引入成功!

最后,在Activity中配置代码,用于查看后续的渠道信息:

val channel: String? = WalleChannelReader.getChannel(this.applicationContext)
Log.d("渠道", "当前渠道:${channel}")

(2)360加固
基于步骤(1)的情况下,点击项目的build–>signapk->打一个release包出来。
然后打开360加固宝进行加固。
在这里插入图片描述
点击添加,选择刚刚打好的release包,等待加固完成即可。
加固完成如下图:
在这里插入图片描述
这个时候下载的包,是没有签名的,仅仅是已经加固过了的。这个时候,我们要对这个包,进行签名,对齐。多渠道。

(3)重新签名
签名指令,相信做过发包的都已经知道了,下面举个代码例子:

jarsigner -verbose -keystore jiagu.jks -storepass 123456 -signedjar jiagu_signed.apk app-release_10_jiagu.apk jiaguzipalign -p -f -v 4 jiagu_signed.apk jiagu_signed2.apkapksigner sign --ks jiagu.jks --ks-key-alias jiagu --ks-pass pass:123456 --v1-signing-enabled true --v2-signing-enabled true -v --out .\jiagu_signed3.apk .\jiagu_signed2.apk

通过jarsigner,aipalign,apksigner进行签名和对齐,即可实现。这里值得一提的是,一定要先配置好windows系统环境,然后再去执行指令,否则会执行失败。
这里用到的jdk是11,sdk build-tools30。
具体就在window环境变量path添加对应的路径即可。

好了,环境配置好,执行完上述指令。那么,目录下,就会有一个apk_signed3.apk的包了。这个时候,就要对这个安装包,进行walle多渠道。

(3)walle多渠道
具体指令看官网:
https://github.com/Petterpx/walle/blob/main/walle-cli/README.md
这里用到的是walle-cli-all.jar进行打包,github可以找到然后下载。

具体指令如下:

java -jar wallejar/walle-cli-all.jar batch -f channel apk_signed3.apk

channel就是夺渠道的文件
具体要看你分发的市场配置,我这边的配置如下图:
在这里插入图片描述
这里就是单行文字进行渠道配置的。
最后,执行完指令,就可以看到目录下的渠道包了。然后安装,观察log具体输出是否符合预期即可。

注意注意注意!!!

在签名,对齐的情况,会有可能有很多问题,如:
(1)as jdk版本和系统环境jdk版本对不上,导致了签名失败,这个时候就要调整至一致的jdk环境,包括window中类似的Java_home变量,也要调整到和项目一致的jdk。
(2)保证生成的签名文件xxx.jks所使用的jdk环境和项目匹配。
一定要保证上述两个步骤的环境一致,签名才会执行成功,才能进行后续的多渠道打包。

that’s all-------------------------------------------------------------------------------------------------------------

相关文章:

安卓多渠道打包(五)360加固walle多渠道打包

背景: 1、360加固宝,签名收費了,脚本上传加固也针对特定帐号才可实现。 内容 本文将会分享安卓项目中,使用360加固,再用walle签名,产出多渠道加固包的全流程。 环境 win10 jdk11 as2022 gradle7.5 最…...

Jmeter 实现 mqtt 协议压力测试

1. 下载jmeter,解压 https://jmeter.apache.org/download_jmeter.cgi 以 5.4.3 为例,下载地址: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip linux下解压: unzip apache-jmeter-5.4.3.zip 2. 下载m…...

蓝桥杯官网练习题(凑算式)

类似填空题: ①算式900: https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501 ②九宫幻方③七星填数④幻方填空:https:/…...

机器学习实战-系列教程5:手撕线性回归4之非线性回归(项目实战、原理解读、源码解读)

🌈🌈🌈机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 手撕线性回归1之线性回归类的实现 手撕线性回归2之单特征线性回归 手撕线性回归3之多特征线性回归 手撕线性回归4之非线性回归 1…...

【C语言基础】那些你可能不知道的C语言“潜规则”

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

android framework之Applicataion启动流程分析(三)

现在再回顾一下Application的启动流程,总的来说,虽然进程的发起是由ATMS服务发起的,但是进程的启动还是由AMS负责,所以需要调用AMS的startProcess()接口完成进程启动流程,AMS要处理的事情很多,它将事务交给…...

使用Scrapy框架集成Selenium实现高效爬虫

引言: 在网络爬虫的开发中,有时候我们需要处理一些JavaScript动态生成的内容或进行一些复杂的操作,这时候传统的基于请求和响应的爬虫框架就显得力不从心了。为了解决这个问题,我们可以使用Scrapy框架集成Selenium来实现高效的爬…...

Maven 和 Gradle 官方文档及相关资料的网址集合

文章目录 官方MavenGradle 笔者MavenGradle 官方 Maven Maven 仓库依赖包官方查询通道:https://mvnrepository.com/ Maven 插件官方文档:https://maven.apache.org/plugins/ 安卓依赖包官方查询通道*:https://maven.google.com/web/ Gra…...

docker概念、安装与卸载

第一章 docker概念 Docker 是一个开源的应用容器引擎。 Docker 诞生于2013年初,基于 Go 语言实现,dotCloud 公司出品,后改名为 Docker Inc。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发…...

elasticsearch访问9200端口 提示需要登陆

项目场景: 提示:这里简述项目相关背景: elasticsearch访问9200端口 提示需要登陆 问题描述 提示:这里描述项目中遇到的问题: 在E:\elasticsearch-8.9.1-windows-x86_64\elasticsearch-8.9.1\bin目录下输入命令 ela…...

【深度学习】 Python 和 NumPy 系列教程(一):Python基本数据类型:1、数字(整数、浮点数)及相关运算;2、布尔值

目录 一、前言 二、实验环境 三、Python基本数据类型 1. 数字 a. 整数(int) b. 浮点数(float) c. 运算 运算符 增强操作符 代码整合 d. 运算中的类型转换 e. 运算函数abs、max、min、int、float 2. 布尔值&#xff08…...

无swing,高级javaSE毕业之贪吃蛇游戏(含模块构建,多线程监听服务)

JavaSE,无框架实现贪吃蛇 文章目录 JavaSE,无框架实现贪吃蛇1.整体思考2.可能的难点思考2.1 如何表示游戏界面2.2 如何渲染游戏界面2.3 如何让游戏动起来2.4 蛇如何移动 3.流程图制作4.模块划分5.模块完善5.0常量优化5.1监听键盘服务i.输入存储ii.键盘监…...

HDD-FAT32 ZIP-FAT32 HDD-FAT16 ZIP-FAT16 HDD-NTFS

FAT32、FAT16指的是分区格式, FAT16单个文件最大2G FAT32单个文件最大4G NTFS单个文件大于4G HDD是硬盘启动 ZIP是软盘启动 U盘选HDD HDD-NTFS...

王道数据结构编程题 二叉树

二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };非递归后序遍历 题目描述 编写后序遍历二叉树的非递…...

登录怎么实现的,密码加密了嘛?使用明文还是暗文,知道怎么加密嘛?

在Java中登录功能的实现通常包括以下步骤,其中密码应该以加密形式存储在数据库中,而不以明文形式存储,以增强安全性: 登录功能的实现步骤: 用户输入: 用户在登录页面上输入用户名和密码。 传输到服务器&a…...

Nginx和Tomcat负载均衡实现session共享

以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架。 此框架的优势: 1、支持Tomcat6和Tomcat7 2、操作粘性或不黏性Session 3、没有单点故障 4、T…...

【算法题】210. 课程表 II

题目: 现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。 例如,想要学习课程 0 ,…...

“数据类型不一致”会走索引吗?

分析&回答 字符串类型的索引 id_1 varchar(20) NOT NULL这样下面两条语句的结果是一样的: SELECT * FROM ix_test WHERE id_11; SELECT * FROM ix_test WHERE id_11;执行计划是不同的: mysql> explain select * from ix_test where id_11; | 1 …...

Leetcode 1572.矩阵对角线元素之和

给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1: 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:25 解释:对角线的和为&#xff…...

[PG]将一行数据打散成多行数据

原始数据 比如有如此表结构定义: 假如查询数据如下: select dt as "日期",bj_count as "北京", sh_count as "上海",gz_count as "广州", sz_count as "深圳" from city_stats order by dt--------------------…...

从像素到现实:5分钟搞懂OpenCV中的坐标系转换(附Python代码)

从像素到现实:5分钟搞懂OpenCV中的坐标系转换(附Python代码) 当你用手机拍下一张照片时,屏幕上那些彩色的像素点其实对应着现实世界中的三维物体。这种从二维图像到三维空间的映射关系,正是计算机视觉中最基础也最重要…...

ISE仿真流程详解:从Verilog代码到Isim仿真的完整指南

1. ISE仿真流程概述 第一次接触FPGA开发的朋友们,常常会被复杂的工具链和仿真流程搞得晕头转向。今天我就以最常用的ISE设计套件为例,手把手带大家走完从Verilog代码编写到Isim仿真的完整流程。这个教程特别适合刚入门FPGA的开发者,我会尽量避…...

WPF无边框窗口最大化时避免遮挡任务栏的终极方案

1. 为什么无边框窗口会遮挡任务栏? 很多开发者在使用WPF开发自定义窗口时,都会遇到一个头疼的问题:当窗口设置为无边框(WindowStyle"None")并最大化时,窗口会遮挡系统的任务栏。这个问题看似简单…...

AI原生缓存架构生死线:当缓存失效导致LLM幻觉率上升22%,你还有3天重构窗口期

第一章:AI原生缓存架构的范式迁移与危机本质 2026奇点智能技术大会(https://ml-summit.org) 传统缓存系统建立在确定性访问模式与静态数据生命周期假设之上,而大语言模型推理、RAG实时检索、多模态流式生成等AI原生工作负载正持续冲击这一根基&#xf…...

ViGEmBus:Windows内核级游戏控制器虚拟化技术方案

ViGEmBus:Windows内核级游戏控制器虚拟化技术方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus ViGEmBus是一款Windows内核级驱动程序&#xf…...

郭老师-人生是一场意识的修行

人生是一场意识的修行 ——六句真言,唤醒心灵智慧“生命不是为了抵达某个终点, 而是为了—— 在每一场经历中, 认出自己。”🌿 真正的成长,是心力的成长; 真正的智慧,是心灵的智慧。&#x1f33…...

TP4328锂电池电源管理芯片

简介 TP4328 是一款集成锂电池充电管理,LED 指示功能,升压转换器的移动电源管理芯片,外围 只需极少的元件,就可以组成功能强大的移动电源方案。 TP4328 内部集成了 0.8A 的线性充电模式,支持对 0V 电池充电&#xff1b…...

Qwen3.5-2B保姆级教程:Gradio界面快捷键/拖拽上传/历史搜索技巧

Qwen3.5-2B保姆级教程:Gradio界面快捷键/拖拽上传/历史搜索技巧 1. 前言:认识Qwen3.5-2B Qwen3.5-2B是通义千问团队推出的轻量化多模态基础模型,属于Qwen3.5系列的小参数版本(20亿参数)。这个模型主打低功耗、低门槛…...

Unocss入门指南:如何用这个轻量级框架提升你的前端开发效率

Unocss实战指南:解锁原子化CSS的高效开发范式 在追求极致性能与开发体验的前端领域,原子化CSS框架正掀起新一轮效率革命。作为这一理念的集大成者,Unocss以其独特的按需生成机制和近乎零配置的轻量化设计,正在重塑我们对样式开发…...

DVWA靶场JavaScript通关实战:从源码混淆到手动生成Token的完整指南

DVWA靶场JavaScript通关实战:从源码混淆到手动生成Token的完整指南 1. 初识DVWA JavaScript挑战 DVWA(Damn Vulnerable Web Application)作为经典的Web安全学习靶场,其JavaScript Attacks模块专门设计用于训练前端安全分析能力。这…...