Linux - 安卓内核模拟触摸笔记
首先得学学多点触摸协议! static irqreturn_t zet6223_irq(int irq, void *dev_id) { struct zet6223_ts *ts = dev_id; u16 finger_bits; /* * First 3 bytes are an
阅读全文 →首先得学学多点触摸协议! static irqreturn_t zet6223_irq(int irq, void *dev_id) { struct zet6223_ts *ts = dev_id; u16 finger_bits; /* * First 3 bytes are an
阅读全文 →{"output":{"choices":[{"finish_reason":"stop","message":{"role":"assistant","content":"```\n本文介绍了如何使用 Rust 的 aya 框架为 Android ARM64 平台开发 eBPF 程序,涵盖环境准备、工具链安装、目标平台配置及构建流程。\n- **核心步骤**:安装 Rust 工具链、nightly 编译器、bpf-linker 和 LLVM,使用 `cargo-generate` 创建项目模板;\n- **平台适配**:通过 `.cargo/config.toml` 设置链接器为 `ld.lld`,并设置环境变量 `CARGO_CFG_BPF_TARGET_ARCH=aarch64` 实现 ARM64 架构支持;\n- **开发限制**:eBPF 程序运行在受限环境中,不支持堆内存、标准库和 panic,需使用 `unsafe` 和 helper 函数;\n- **实用技巧**:通过宏定义与字符串匹配方式绑定 kprobe 函数,结合 `bpf_probe_read_user_str_bytes` 实现用户空间字符串读取。\n\n这篇文章为开发者提供了在 Android ARM64 上使用 Rust 构建 eBPF 程序的完整实践指南,特别适用于系统级调试和安全监控场景。\n```"}}]},"usage":{"total_tokens":2473,"output_tokens":248,"input_tokens":2225},"request_id":"62c9a09e-3301-935c-91f0-e8c5bdf343a9"}
阅读全文 →项目链接:https://github.com/fuqiuluo/android-wuwa 为某个进程的虚拟地址"绑定"一块物理内存,让进程能够通过指定的虚拟地址访问到实际的物理页面。 但是不修改vma有关的任何东西,虽然是泄漏了些东西,至少实现了,不对吗?不需要去hook show_map 非常的
阅读全文 →本篇文章的目的是为了修改系统调用表,而不是修改指令做什么inline hook,这里浅浅提一下,在arm64安卓平台,在内核的inline hook可以通过aarch64_insn_write 实现,当然这个方法是不导出的需要使用kprobe去获取! PS: aarch64_insn_write 是
阅读全文 →本页详细介绍了为 Android 设备构建自定义内核的流程。以下说明会逐步指导您如何选择正确的源代码,构建内核,以及将结果嵌入到根据 Android 开源项目 (AOSP) 构建的系统映像中。 您可以使用 Repo 获取最新的内核源代码;通过在源代码检出的根目录下运行 build/build.sh
阅读全文 →linux内核的aio.c文件里面有几个系统调用,分别是io_setup, io_destroy, io_submit, io_cancel, io_getevents 。 io_submit 系统调用原型 #include <linux/aio_abi.h> #include <sys/sysc
阅读全文 →在面向新开发人员的 Linux 内核编程邮件列表中,人们会提出一些常见问题。几乎每次提出这些问题时,回答总是“不要这样做!”,让困惑的提问者想知道他们闯入了什么样的奇怪开发社区。这是偶尔发布的系列文章中的第一篇,旨在解释为什么做这些事情通常不是一个好主意。然后,为了弥补这些指责,我们打破了所有的规则
阅读全文 →在 AArch64架构(ARM 64位架构)中,以 aarch64_insn_xxx 命名的一系列函数(例如 aarch64_insn_read、aarch64_insn_write、aarch64_i
阅读全文 →#include <linux/module.h> #include <linux/sched.h> /* For task_struct */ #include <linux/pid.h> /* For find_get_pid */ #include <linux/mm.h> /* F
阅读全文 →