Magisk,就是刷机经常会需要使用的,也是就是我们说的面具或者脸谱。因为它的logo就是面具或者说脸谱。我们先简单了解一下:

XDA上论坛的说明:Magisk - The Universal Systemless Interface, to create an altered mask of the system without changing the system itself.

的确,它确实是做到了,它和之前使用的xposed框架有着相似,那就是拦截。但不同之处,Magisk 则另辟蹊径,通过挂载一个与系统文件相隔离的文件系统来加载自定义内容,为系统分区打开了一个通往平行世界的入口,所有改动在那个世界(Magisk 分区)里发生,在必要的时候却又可以被认为是(从系统分区的角度而言)没有发生过。

Magisk的安装:

Magisk需要修改boot.img。比较正规的方法是通过是通过第三方rec刷入(记得留个卸载包)。当然,并不是所有的设备都支持官方的TWRP,实际上很多都是直接刷入了动了手脚的boot.img。至于,如何从固件提取boot,修补root重新打包。这里不说那麽多,需要注意一点的是,magisk和SU冲突。

今天本片是记录Magisk模块制作的大概一个过程。至于为什么要学习制作Magisk模块,是因为搞机,华为、三星一些特殊的手机难搞。很不碰巧,我是个花粉,目前还在,因为穷。华为的EMUI9.1系统的erfos文件系统,天然只读,MT、RE等工具即使在你get root之后仍然无法对...进行任何操作。这就彻底阻断了我,修改一些文件的想法。但,突发奇想这个模块可以帮我实现。但是搞机的大神,早就舍弃了华为,就像当初解锁那样,发现解锁后并没有什么可用的。所以我决定自己去试着制作我需要的东西。

首先你需要一个官方文档:https://github.com/topjohnwu/Magisk

你可以去官网寻找资料去构建试着目录并下载一些必要的文件。下面为20.3的构建目录:https://topjohnwu.github.io/Magisk/guides.html

当然也可以自己在网络上寻找一个模板自己去修改使用,甚至你在一些已经能够使用的模块上加以修改使用。这样可以更快避免出现一些玄学问题。通常情况里面都会有注释,虽然是英文的,只能自己一点一点看了。

最简单的替换文件模板:

1、修改META-INF/com/google/android/update-binary 里面的安装信息

2、按路径放入替换文件

3、修改module.prop中的模块信息

试着做了两个简单的小模块,测试成功。没人做了自己要用,只好自己动手了。

Magisk了解以及简单的模块制作的更多相关文章

  1. Exynos4412从SD卡启动的简单网络文件系统制作

    Exynos4412从SD卡启动的简单网络文件系统制作 1. 简介 嵌入式系统能够在开发板上正常运行,需要先进行系统配置,一个完整的嵌入式系统应该包含的几个部分::uboot,kernel,rootf ...

  2. 【模块化编程】理解requireJS-实现一个简单的模块加载器

    在前文中我们不止一次强调过模块化编程的重要性,以及其可以解决的问题: ① 解决单文件变量命名冲突问题 ② 解决前端多人协作问题 ③ 解决文件依赖问题 ④ 按需加载(这个说法其实很假了) ⑤ ..... ...

  3. 留念 C语言第一课简单的计算器制作

    留念 C语言第一课简单的计算器制作 学C语言这么久了.  /* 留念 C语言第一课简单的计算器制作 */   #include<stdio.h>  #include<stdlib.h ...

  4. kernel 模块与简单 hello 模块

    Kernel 模块与简单 hello 模块 kernel 模块的简介 Linux 内核进行扩展时,例如编写驱动程序.netfilter功能等,最方便的方式是通过编写模块,然后加载到内核中.由于 ker ...

  5. 一个简单的ORM制作(SQL帮助类)

    一个简单的ORM制作大概需要以下几个类: SQL执行类 CURD操作类 其他酱油类 先从SQL执行类说起,可能会涉及数据库的迁移等问题,所以需要定义一个接口以方便迁移到其他数据库, 事务没提供命名,若 ...

  6. IT兄弟连 HTML5教程 HTML5的基本语法 简单HTML实例制作

    现在学习HTML5的方式 目前HTML还处于HTML4与HTML5之间的过渡使用阶段.移动端的Web界面开发已经全面使用HTML5的技术,而在PC端由于用户升级浏览器周期较长,面临着页面的兼容性问题, ...

  7. Python模块制作

    在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字. 定义自己的模块 比如有这样一个文件test.py,在test.py中定义了函数add def add(a,b): ...

  8. MicroPython:基于TPYBoard集合MAX7219点阵模块制作表白女神神器

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 又是一年毕业季,只有到了毕业季才会意识到自己又 ...

  9. C#简单游戏外挂制作(以Warcraft Ⅲ为例)

    网上有很多外挂制作的教程,大多是讲针对大型网络游戏的,主要包含一些抓包.反汇编.C++的知识综合.事实也如此,常见的外挂都是使用VC++写的,从来没有过C#或者其他.NET语言编写的外挂. 作为微软. ...

随机推荐

  1. nodepad++ 让所有的加号收缩折叠展开的快捷键

    折叠所有层次 Alt+0(这是零) 展开所有层次 Alt+Shift+0

  2. 两种访问接口的方式(get和post)

    跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOExceptio ...

  3. 关于ping命令的批处理问题

    需求描述:假设你的IP保存在名字为IP.txt的文本文档里,且每行一条ip.你想ping这些IP并得到结果 解决方案:用下面的批处理代码即可实现,将下面的代码保存为后缀为.bat的文件,比如test. ...

  4. zabbix监控Linux服务器丢包率

    http://www.ttlsa.com/zabbix/zabbix-simple-checks/  这个文章看了,还没有实践 1.先创建监控项,键值如下 icmppingloss[<121.1 ...

  5. FastJson禁用循环引用检测

    我们先来看一个例子: package com.elong.bms; import java.io.OutputStream; import java.util.HashMap; import java ...

  6. Lamda过滤替换List元素的属性值

    import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List; ...

  7. Winform Post请求传递Json格式参数的写法

    注意的是,Json传递需用到Hashtable(哈希表)来添加参数,本人也试过用JObject添加页不行,感觉应该可以的不知道怎么回事,直接上代码, Hashtable ht = new Hashta ...

  8. 估计量|估计值|置信度|置信水平|非正态的小样本|t分布|大样本抽样分布|总体方差|

    5 估计量和估计值是什么? 估计量不是估计出来的量,是用于估计的量. 估计量:用于估计总体参数的随机变量,一般为样本统计量.如样本均值.样本比例.样本方差等.例如:样本均值就是总体均值的一个估计量. ...

  9. [LC] 22. Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  10. python学习笔记(3)数据类型-列表list

    序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列 ...