模块开发指南

您所在的位置:网站首页 小米8gps模块位置 模块开发指南

模块开发指南

2024-07-11 03:42| 来源: 网络整理| 查看: 265

模块开发指南 ​

KernelSU 提供了一个模块机制,它可以在保持系统分区完整性的同时达到修改系统分区的效果;这种机制通常被称之为 systemless。

KernelSU 的模块运作机制与 Magisk 几乎是一样的,如果你熟悉 Magisk 模块的开发,那么开发 KernelSU 的模块大同小异,你可以跳过下面有关模块的介绍,只需要了解 KernelSU 模块与 Magisk 模块的异同。

模块界面 ​

KernelSU 的模块支持显示界面并与用户交互,请参阅 WebUI 文档。

Busybox ​

KernelSU 提供了一个功能完备的 BusyBox 二进制文件(包括完整的SELinux支持)。可执行文件位于 /data/adb/ksu/bin/busybox。 KernelSU 的 BusyBox 支持运行时可切换的 "ASH Standalone Shell Mode"。 这种独立模式意味着在运行 BusyBox 的 ash shell 时,每个命令都会直接使用 BusyBox 中内置的应用程序,而不管 PATH 设置为什么。 例如,ls、rm、chmod 等命令将不会使用 PATH 中设置的命令(在Android的情况下,默认情况下分别为 /system/bin/ls、/system/bin/rm 和 /system/bin/chmod),而是直接调用 BusyBox 内置的应用程序。 这确保了脚本始终在可预测的环境中运行,并始终具有完整的命令套件,无论它运行在哪个Android版本上。 要强制一个命令不使用BusyBox,你必须使用完整路径调用可执行文件。

在 KernelSU 上下文中运行的每个 shell 脚本都将在 BusyBox 的 ash shell 中以独立模式运行。对于第三方开发者相关的内容,包括所有启动脚本和模块安装脚本。

对于想要在 KernelSU 之外使用这个“独立模式”功能的用户,有两种启用方法:

设置环境变量 ASH_STANDALONE 为 1。例如:ASH_STANDALONE=1 /data/adb/ksu/bin/busybox sh 使用命令行选项切换:/data/adb/ksu/bin/busybox sh -o standalone

为了确保所有后续的 sh shell 都在独立模式下执行,第一种是首选方法(这也是 KernelSU 和 KernelSU 管理器内部使用的方法),因为环境变量会被继承到子进程中。

与 Magisk 的差异

KernelSU 的 BusyBox 现在是直接使用 Magisk 项目编译的二进制文件,感谢 Magisk! 因此,你完全不用担心 BusyBox 脚本与在 Magisk 和 KernelSU 之间的兼容问题,因为他们是完全一样的!

KernelSU 模块 ​

KernelSU 模块就是一个放置在 /data/adb/modules 内且满足如下结构的文件夹:

txt/data/adb/modules ├── . ├── . | ├── $MODID


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3