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. MRP运算报错-清除预留

    MRP运算报错-清除预留

  2. winform 界面加载慢原因分析

    公司新来的开发人员,对winform开发还不是特别精通,在做个性化界面体验的时候容易出现闪烁和加载慢 闪烁的话,通过winform窗体的双缓存来解决在form 窗体中增加如下代码 protected ...

  3. PictureService

    package me.zhengjie.tools.service; import me.zhengjie.tools.domain.Picture; import org.springframewo ...

  4. 关于vyos 防火墙配置

    VyOS是一个基于Debian的网络操作系统,是Vyatta的社区fork.Vyatta是博通的企业级的产品,通过这套系统,能在x86平台提供路由,防火墙和×××的功能. 这个系统提供了和其他诸如Ci ...

  5. python项目中对mysql数据库进行配置,并进行连接测试

    在settings.py中配置mysql数据库进行相关配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME ...

  6. 接口测试 requests的身份认证方式

    requests提供多种身份认证方式,包括基本身份认证.netrc 认证.摘要式身份认证.OAuth 1 认证.OAuth 2 与 OpenID 连接认证.自定义认证.这些认证方式的应用场景是什么呢? ...

  7. 使用jQuery的".css()"和".attr()"方法设置元素"left"属性的注意点

    今天在使用jQuery方法".css()"设置"ajax-loader.gif"的位置时出了点小状况,关键代码如下(为了简化,这里假定要给"ajax- ...

  8. iOS应用程序开发——解决iOS7之前版本与之后版本下app启动图片跳动问题

    之前开发的app都是针对iOS6(兼容iOS5),所以在开发之初也出现了启动图片向下跳动的现象,通过网上的解决方法,代码中做了处理(“-20”): _imageView.frame = CGRectM ...

  9. HDU-3579-Hello Kiki (利用拓展欧几里得求同余方程组)

    设 ans 为满足前 n - 1个同余方程的解,lcm是前n - 1个同余方程模的最小公倍数,求前n个同余方程组的解的过程如下: ①设lcm * x + ans为前n个同余方程组的解,lcm * x ...

  10. <JZOJ5912>VanUSee

    挺魔的 反正我考场上想不到233333333333333 #include<cstdio> #include<cstring> #include<iostream> ...