0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android In Docker 中 Magisk 的部署与简单应用指南

Firefly开源团队 2025-05-28 16:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Magisk—系统级“魔法面具”

Magisk(Magic Mask)是由开发者 topjohnwu 开发的开源 Android 框架,自 2016 年发布以来已成为最受欢迎的 Android 系统修改工具之一。其核心创新在于通过「系统挂载(Systemless)」技术实现无需修改系统分区的 Root 权限获取和模块化功能扩展。

核心功能与优势

1. Systemless Root

通过虚拟挂载覆盖系统分区,实现 Root 权限获取而不修改 /system 分区,避免触发 OTA 更新失败或安全机制(如 Google SafetyNet)检测。

2. Magisk 模块仓库

○ 系统级功能增强与定制

如界面美化(自定义状态栏、字体替换)、性能优化(如通过「BlackHog」模块智能管理内存占用)。

○ 隐私与安全防护

如广告过滤(安装「AdAway」模块实现全局广告拦截)、权限管理(通过「AppOpsX」模块精细化控制应用权限,或伪造设备指纹绕过应用风控检测)、Root隐藏(结合「Shamiko」模块绕过系统安全检测)。

○ 开发者调试与远程管理

如动态分析(集成「Frida-server」模块进行应用逆向与动态Hook)、远程访问模块(部署「MagiskSSH」模块通过SSH协议远程控制设备)、兼容性测试(伪造设备型号和Android版本号,验证应用在不同环境下的运行表现)。

○ 可自定义模块

如开发模块实现批量安装应用、配置网络策略或执行定时任务等。

3. Zygisk 动态注入

自v24版本引入的 Zygisk 技术,通过注入 Android 系统核心进程 Zygote,实现更高效的模块运行和隐藏 Root 检测能力。

4. Hide 模式

可针对特定应用(如银行App、游戏反作弊系统)隐藏 Root 状态,配合「Shamiko」等插件可绕过 90% 以上的 Root 检测机制。

Magisk 部署

本次基于Firefly RK硬件平台,Android in Docker 环境下完成 Magisk Delta(fdac22ba版本)的无损部署,无需修补 boot 分区或修改系统镜像。

部署设备软硬件信息

设备:ROC-RK3588S-PC

固件:ROC-RK3588S-PC_Ubuntu20.04-Minimal-r2407_240929

设备系统环境:已完成【技术案例-Android in Docker】环境搭建

安装步骤

1. 将magisk.tar、magisk_setup.rc、setup.sh 导入宿主机

//若宿主机已连接互联网,可通过 SCP 命令导入宿主机scp ./magisk_delta_fdac22ba/magisk.tar root@xxx.xx.xx.xx:/root/scp ./magisk_delta_fdac22ba/remove.rc root@xxx.xx.xx.xx:/root/scp ./magisk_delta_fdac22ba/setup.sh root@xxx.xx.xx.xx:/root/ //或者通过adb 的方式push到宿主机adb push ./magisk_delta_fdac22ba/magisk.tar /root/adb push ./magisk_delta_fdac22ba/magisk_setup.rc /root/adb push ./magisk_delta_fdac22ba/setup.sh /root/

2. 设置 magisk_setup.rc 权限

root@firefly:~# chmod 644 /root/magisk_setup.rcroot@firefly:~# ls -l /root/magisk_setup.rc-rw-r--r-- 1 root root 979 May 13 07:23 /root/magisk_setup.rc

3. 修改宿主机中的 container/aic.sh 启动脚本

run_cmd "docker run -itd --restart=always --privileged $CONTAINER_NAME $HOST_NAME $DATA_BIND \ $CONFIG_COMMON $CONFIG_PRIVATE \ $CONTAINER_NETWORK $CONTAINER_MAC $CONTAINER_IP $PORT_BIND \+ -v ~/magisk_setup.rc:/vendor/etc/init/magisk_setup.rc \+ -v ~/setup.sh:/setup.sh \+ -v ~/magisk.tar:/magisk.tar \ $ANDROID_IMAGE"

4. 初次启动时执行

./aic.sh -i # 首次初始化./aic.sh -r <安卓镜像.tgz> <容器数量>

Magisk 功能验证与使用

安装验证

1. 宿主机,需要连接外网

2. 查看容器状态

root@firefly:/userdata/container# docker ps -a --format "table {{.ID}}\t{{.Ports}}"CONTAINER ID PORTS725921edb3a2 0.0.0.0:1100->5555/tcp, :::1100->5555/tcp

3. 查看宿主机IP

root@firefly:/userdata/container# ifconfig eth0eth0: flags=4163 mtu 1500 inet 172.16.10.211 netmask 255.255.0.0 broadcast 172.16.255.255 inet6 fe80:d724ffed prefixlen 64 scopeid 0x20 ether 6a:01:8e3f:2c txqueuelen 1000 (Ethernet) RX packets 384418 bytes 118264726 (118.2 MB) RX errors 0 dropped 38243 overruns 0 frame 0 TX packets 127586 bytes 29265180 (29.2 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 92

4. PC 使用 ADB 连接容器,并且投屏

lwy@DESKTOP-KGTB0I2: adb connect 172.16.10.211:1100lwy@DESKTOP-KGTB0I2: scrcpy.exe -s 172.16.10.211:1100

· 首次启动需进入 APP 完成初始化重启

· 验证版本号:fdac22ba-delta(25210(D))


Magisk 核心功能演示

Superuser 授权

lwy@DESKTOP-KGTB0I2: adb -s 172.16.10.211:1100 shell13|rk3588_docker:/ $ surk3588_docker:/ #

终端中输入su, Magisk会弹出一个提示框,点击Grant完成授权。


Zygisk 启用

Magisk 设置界面 ->开启 zygisk ->重启,重启后界面 zygisk 栏显示 yes


应用隐藏

Magisk 设置 -> Hide Magisk -> 选择伪装应用,等待完成后,图标变更为 Settings


Magisk 模块应用演示

Lsposed

//PC直接导入LSPosed-v1.9.1-6990-zygisk.zipadb -s 172.16.10.211:1100 push LSPosed-v1.9.1-6990-zygisk.zip /sdcard/

Magisk 模块界面加载 LSPosed-v1.9.1-6990-zygisk.zip ->重启生效。


MagiskSSH

同理,将SSH_for_Magisk-v0.22_22.zip 导入容器,Magisk模块界面加载后重启

//PC直接导入SSH_for_Magisk-v0.22_22.zipadb -s 172.16.10.211:1100 push SSH_for_Magisk-v0.22_22.zip /sdcard/

使用终端或者Termux 输入命令`ssh user@192.xxx.x.xxx`和登录密码,即可登录,更多使用方式,如免密码登录可参考 SSH_for_Magisk-v0.22_22.zip 的 Readme 文档。


技术资料获取

Magisk 通过 Systemless 架构为 Android 系统构建了可扩展的技术基础,开发者可基于其模块化接口灵活开发定制功能组件。平台提供标准化的开发框架,支持从权限管理到硬件调优的全维度定制能力。

目前案例基于 Firefly 硬件平台演示了 Lsposed 和 MagiskSSH 两个模块,开发者可基于此平台挖掘更多的玩法和系统定制开发。Android in Docker 环境下 Magisk 的完整部署资料,请联系 Firefly 开源团队获取。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    4035

    浏览量

    134468
  • 开发者
    +关注

    关注

    1

    文章

    779

    浏览量

    18061
  • Docker
    +关注

    关注

    0

    文章

    537

    浏览量

    14398
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    借助Docker弹性部署自己的服务

    Docker弹性部署自己的服务
    发表于 04-19 10:15

    dockerjava环境的部署

    docker 部署java环境以及常用应用(持续更新)
    发表于 05-24 15:44

    docker流程部署步骤

    为女朋友写一个小程序(五)— —如何用docker简化部署
    发表于 09-12 08:26

    Docker部署Redis服务器集群的方法

    Docker部署Redis服务器集群
    发表于 06-13 09:12

    如何在RDKx3部署docker镜像?

    一种在RDKx3部署docker镜像跑tros历程的方法 为了保持主系统环境干净整洁,有在docker部署代码的习惯。 docker pu
    发表于 08-02 11:02

    Docker入门指南

    指南介绍了如何使用Docker简化嵌入式设备和服务器上的多体系结构应用程序部署。 快速扩展软件环境可能是一项既困难又耗时的任务。在本指南中,我们将向您展示
    发表于 08-02 06:09

    Magisk定制Android

    ./oschina_soft/Magisk.zip
    发表于 06-10 09:23 3次下载
    <b class='flag-5'>Magisk</b>定制<b class='flag-5'>Android</b>

    Jenkins+docker+springboot一键自动部署项目

    本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。
    的头像 发表于 09-14 09:30 2594次阅读

    linux docker安装部署

    Docker是一种开源的容器化平台,可以帮助开发者在不同的环境快速构建、测试和部署应用程序。它能够解决不同操作系统之间的兼容性问题,简化了应用程序的部署过程,并提供了高效的资源利用。
    的头像 发表于 11-23 09:27 2460次阅读

    docker部署mysql的坏处

    Docker 是一种虚拟化技术,它允许开发人员在容器内打包应用程序及其所有依赖项,从而实现在不同环境运行相同的应用程序的能力。然而,在使用 Docker 部署 MySQL 时,也存在
    的头像 发表于 11-23 09:29 2402次阅读

    docker部署对性能的影响

    Docker 是一个流行的容器化平台,它提供了一种轻量级的虚拟化技术,使得应用程序可以在独立的容器运行。然而,部署应用程序到 Docker 容器
    的头像 发表于 11-23 09:31 3060次阅读

    Windows Docker部署Redis的流程

    由于 Docker 部署 Redis 后,Redis 容器默认是没有 redis.conf 配置文件的,需要自己手动挂在进去。
    的头像 发表于 11-27 10:02 1881次阅读
    Windows <b class='flag-5'>Docker</b><b class='flag-5'>部署</b>Redis的流程

    华为云 X 实例部署 Docker 应用的性能评测优化与实践指南

    1. 前言   2. 测试环境设置   2.1 硬件与软件配置   2.2 网络环境与带宽   2.3 测试应用介绍   3. Docker及应用的安装部署步骤   3.1 安装Docker
    的头像 发表于 01-23 18:03 1040次阅读
    华为云 X 实例<b class='flag-5'>部署</b> <b class='flag-5'>Docker</b> 应用的性能评测优化与实践<b class='flag-5'>指南</b>

    【技术案例】Android in Docker

    Docker介绍Docker是一个开源的容器化平台,用于打包、分发和运行应用程序。它通过将应用及其所有依赖打包到独立的容器,确保应用在不同环境中一致运行。Docker提供快速
    的头像 发表于 04-02 16:33 1957次阅读
    【技术案例】<b class='flag-5'>Android</b> in <b class='flag-5'>Docker</b>

    如何使用Docker部署大模型

    随着深度学习和大模型的快速发展,如何高效地部署这些模型成为了一个重要的挑战。Docker 作为一种轻量级的容器化技术,能够将模型及其依赖环境打包成一个可移植的容器,极大地简化了部署流程。本文将详细介绍如何使用
    的头像 发表于 05-24 16:39 1341次阅读