Native程序中引入Binder库

目前最新的ndk环境中,不包含binder库。下载安卓源码,将下面两句加入Android.mk文件,在源码中利用mm命令作为子模块进行单独编译,优点:简单,缺点:编译速度慢,需要依赖安卓源码,不利于协同开发LOCAL_SHARED_LIBRARIES := libutils libcutils libbinder liblog LOCAL_C_INCLUDES += frameworks/nati

- 阅读全文 -

搞机吧 | 利用Magisk刷LSPosed框架

1.前期准备一部解锁的手机(a/b分区【注意】,如米11)当前机型的线刷包(保持版本一致)梯子(没有梯子,上酷安找@秋时白露提供的通道,Magisk中设置的自定义通道)Magisk下载地址LSPosed下载地址2.步骤1.下载解压,安装Magisk,打开如下图解压线刷包,进入image文件夹下找到boot.img(这个是内核),移动到手机目录。进入Magisk,选择<安装>,选择<

- 阅读全文 -

Linux设备驱动 | 构造和运行内核模块

1. 将模块链接到内核​ 内核具有非常小的栈,可能和一个4096字节大小的页那样小。在内核API中,函数名称中(__)通常表示接口底层组件,谨慎使用。内核代码不能实现浮点数运算,如果打开浮点支持,在某些架构上,需要在进入和退出内核空间时保存和恢复浮点处理器的状态。这种额外的开销没有任何价值,内核代码中也不需要浮点运算。​2. 装载和卸载模块insmod:将模块的代码和数据装入内核,然后使用内

- 阅读全文 -

Linux设备驱动 | 简述内核模块

1. 内核功能模块​ ​2. 设备和模块的分类字符设备:可通过字节流(类似文件)进行访问的设备,字符设备驱动程序通常至少要实现open、close、read和write系统调用。块设备:进行IO操作,可进行传输若干个完整的块的设备。网络接口:任何网络事务都经过一个网络接口形成,网络接口由内核中的网络子系统驱动,负责发送和接收数据包,不需要了解数据包结构和具体的映射。​3. 内核模块和应用程序

- 阅读全文 -

Linux内核 | 系统调用

1. 系统调用内核提供的用户空间和内核进行交互的一组接口,应用程序受限地访问硬件设备,提供创建新线程并与已有的进程进行通信,也提供了申请操作系统其他资源的能力。1.2 系统调用形式asmlinkage long sys_getpid(void)asmlinkage限定词是一个编译指令,通知编译器仅从栈中提取该函数的参数,每个系统调用都需要这个限定词。为了兼容32位和64位系统,函数返回long。1

- 阅读全文 -

Linux内核 | 进程调度

1. 进程调度原理最大限度地利用处理器时间,只要有可以执行的进程,那么就总会有进程正在执行。按多任务系统分类抢占式多任务非抢占式多任务按进程分类IO消耗型:进程的大部分时间用来提交I/O请求或是等待I/O请求。处理器消耗型:进程的大部分时间在执行代码1.1 进程优先级根据进程的价值和其对处理器的时间需求对进程进行分级。Linux采用了两种优先级范围nice值,范围[-20,19],nice值越大,

- 阅读全文 -

索引 | 博客文章目录

爱技术 | 爱分享 | 爱生活目前研究操作系统内核相关不喜勿喷,欢迎交流Linux源码剖析Linux源码 | Thermal框架源码剖析Linux内核设计Linux内核 | 进程管理Linux内核 | 进程调度Linux内核 | 系统调用Linux内核 | 中断机制Linux内核 | 内核同步Linux设备驱动Linux设备驱动 | 简述内核模块Linux设备驱动 | 构造和运行内核模块Git使用

- 阅读全文 -

搞机吧 | 利用magisk安装Xposed框架

<center>后起之秀Magisk和江湖老大哥Xposed</center>Magisk原理:在系统boot时,将其img挂载到自己的分区下,构建一个虚拟文件系统,和system分区没有半毛钱关系。magisk可在不修改系统文件的前提下,从而达到修改系统文件的效果。通过这种方式绕过Google SafetyNet,系统OTA升级,部分"被禁"软件都可以正常使用。Xpos

- 阅读全文 -