magisk简易制作教程

如果你只是想修改 Build.prop/替换部分系统文件,却苦于找不到适合的 Magisk 模块,你可以尝试自己动手制作一个。这看起来是非常高端的操作,其实只是考验你是不是真正的机佬#(微微一笑)
注意:编辑文件请使用高级文本编辑器(不是记事本之流),例如 Notepad++、Sublime Text 等

  1. 下载 Magisk 模块模板: https://github.com/topjohnwu/magisk-module-template
    点击绿色的 Clone or download 按钮,再点击 Download ZIP 按钮,解压下载的压缩包。
  2. 各个文件(夹)的作用:
    META-INF: 刷机包签名/脚本文件,通常我们不需要改动。
    common/post-fs-data.sh、common/service.sh:开机时执行的脚本文件,通常我们不需要改动。
    common/system.prop: Build.prop 文件,将需要修改的项目(注意不是整个 Build.prop)填入即可。
    system: 将需要替换的系统文件(空文件(夹)也可)按照位置放置即可。
    .gitattributes: Git 相关文件,通常我们将它删除以防止影响打包。
    README.md: 说明文件,通常我们将它删除以防止影响打包。
    config.sh: 模块设置和安装/刷入时使用 ui_print 命令显示的提示信息(你可以加入模块/作者的相关信息)
    module.prop: 模块信息
  3. 将填好内容的模块使用压缩软件打包成 zip 文件(压缩级别建议选择正常压缩或者不压缩),刷入或安装即可。

举个实际的制作例子。我们想要修改 DPI,同时修改系统的 hosts 文件,我们需要:

  1. 打开 config.sh 文件
  2. 将 AUTOMOUNT 项改为 true(默认为 true),代表我们将要挂载文件。将 PROPFILE 项改为 true(默认为 false),代表我们要修改 Build.prop:
    AUTOMOUNT=true
    PROPFILE=true

下面两项我们保持原样

POSTFSDATA=false
LATESTARTSERVICE=false
3. 在第二个 REPLACE 项中,我们填入要修改的文件(夹)名,一行一项:
REPLACE="
/system/etc/hosts
"
4. 打开 common/system.prop,填入 ro.sf.lcd_density=320,代表将 DPI 改为 320。
5. 将要修改的 hosts 文件放在 /system/etc/ 文件夹下。
6. 打包模块。注意文件结构是:
META-INF
common
system
……
而不是:
magisk-module-template-1500/META-INF
magisk-module-template-1500/common
magisk-module-template-1500/system
……

### Node.js 中无法找到模块 `@npmcli/config` 的解决方案 当遇到错误提示 “Error: Cannot find module '@npmcli/config'”,这通常意味着项目依赖项未正确安装或路径配置存在问题。以下是可能的原因以及对应的解决方法: #### 1. **确认模块是否已安装** 如果尚未安装该模块,则需要通过 npm 或 yarn 进行安装。 ```bash npm install @npmcli/config --save-dev ``` 或者使用 Yarn 安装: ```bash yarn add @npmcli/config --dev ``` 此操作会将模块下载到项目的 `node_modules` 文件夹中并更新 `package.json` 和 `package-lock.json` 文件[^1]。 --- #### 2. **清理缓存并重新安装依赖** 有时由于网络问题或其他原因,可能会导致某些模块未能成功安装。可以尝试清除 npm 缓存并重新安装所有依赖项。 ```bash npm cache clean --force rm -rf node_modules package-lock.json npm install ``` 对于 Yarn 用户,执行以下命令: ```bash yarn cache clean rm -rf node_modules yarn.lock yarn install ``` 这些步骤有助于修复因缓存损坏而导致的缺失模块问题[^2]。 --- #### 3. **检查文件路径与模块加载方式** 在 Node.js 中,模块可以通过相对路径、绝对路径或内置机制引入。假设目标模块位于自定义目录下而非标准的 `node_modules` 路径,需确保其路径被正确定义。例如,在导入本地模块时可采用如下写法: ```javascript const myModule = require('./lib/find-me'); // 如果find-me.js位于当前工作目录下的lib文件夹内 ``` 上述语法适用于非全局范围内的模块引用场景。 --- #### 4. **验证环境变量设置** 若运行环境中存在多个版本的 Node.js 或 npm,可能导致模块解析失败。建议统一开发工具链版本,并利用 nvm (Node Version Manager) 来管理不同节点实例间的切换。 安装最新稳定版 Node.js 及配套 CLI 工具集后重试构建流程: ```bash nvm install stable nvm use stable npm rebuild ``` --- #### 5. **排查 Webpack 配置冲突** 部分情况下,“cannot find module” 错误源于其他插件(如 webpack)内部逻辑异常引发连锁反应。针对特定框架组合(比如 React/Vue),应仔细审查相关文档说明是否存在额外前置条件约束。 例如调整 `webpack.config.js` 参数声明顺序或将必要扩展包显式加入列表之中。 --- 以上措施综合运用能够有效缓解绝大多数由缺少指定组件所引起的编译障碍现象。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值