首页
社区
课程
招聘
[原创]将rwProcMem33编译进安卓内核
发表于: 2023-8-31 17:06 26062

[原创]将rwProcMem33编译进安卓内核

2023-8-31 17:06
26062
收藏
免费 27
支持
分享
最新回复 (64)
雪    币: 21
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
51
感谢分享,文档前面一些改注释部分的解释确实省了不少时间,但是如果想用好这个功能,还是得自己熟悉源码。
我是直接obj-m 编译成ko加载使用的。总的来说,这个hw_breakpoint是在内核模块进行register bp并完成回调并记录,在用户态通过ioctl与内核模块通信拿到记录信息的模式,这个其实不太灵活,如果有办法能把回调直接暴露给用户态使用就更好了。
2023-10-19 15:10
1
雪    币: 156
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
52

好奇怪。我用的android-msm-coral-4.14-android13 ,然后切换的自己分支是安卓12的:git checkout 82a738b32e3f 结果编译后 没有boot.img文件。。

我是4.14.257  安卓12的。


BUILD_CONFIG=private/msm-google/build.config.floral

BUILD_BOOT_IMG=1 

MKBOOTIMG_PATH=mkbootimg.py

VENDOR_RAMDISK_BINARY=boot.img-ramdisk.cpio 

KERNEL_BINARY=Image.lz4

BOOT_IMAGE_HEADER_VERSION=2

KERNEL_CMDLINE="console=ttyMSM0,115200n8

androidboot.console=ttyMSM0 printk.devkmsg=on msm_rtb.filter=0x237

ehci-hcd.park=3 service_locator.enable=1 androidboot.memcg=1

cgroup.memory=nokmem usbcore.autosuspend=7

androidboot.usbcontroller=a600000.dwc3 swiotlb=2048

androidboot.boot_devices=soc/1d84000.ufshc loop.max_part=7

buildvariant=user" 

BASE_ADDRESS=0x00000000 

PAGE_SIZE=4096

build/build.sh


最后于 2023-10-28 17:18 被凉皮不要蒜编辑 ,原因:
2023-10-28 16:02
1
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
53
有邮箱吗,咨询下 kernel 6.1.25 android 14 ,编译的问题
2023-12-19 15:25
1
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
54
怎么判断模块是否被成功编译到内核了
2023-12-25 20:35
1
雪    币: 3507
活跃值: (4838)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
55
sanqiu 怎么判断模块是否被成功编译到内核了
在adb shell输入命令ls sys/module/ ,如果编译的模块名称出现在这里面就说明模块被成功编译到内核了
2023-12-25 22:08
1
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
56
oacia 在adb shell输入命令ls sys/module/ ,如果编译的模块名称出现在这里面就说明模块被成功编译到内核了
真奇怪 ,我是用-y编译进内核了,用dmesg也查看到了log打印了,sys/module/没有显示模块,这算是编译成功了吗?
2023-12-26 15:37
1
雪    币: 2428
活跃值: (10698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
57
chaodchen 找到问题了testMemSearch 在连接驱动的时候没有传文件描述符
传递文件描述符是什么意思,可以给出一个详细的例子嘛
2024-1-2 14:52
1
雪    币: 1110
活跃值: (3364)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
58
涉及内核的功能,可以用 waydroid 和 redroid,省时省力,珍惜生命
2024-1-2 16:19
1
雪    币: 3443
活跃值: (14163)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
59
inlinehook用的啥,你用的啥和应用层通讯的。
2024-1-3 16:28
0
雪    币: 11011
活跃值: (7424)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
60
万里星河 当初要有这篇雄文 也不至于摸索一周才编译出来[em_5]
请问 大佬是用 pixel sailfish 的内核 android-msm-marlin-3.18-pie-qpr2 编译出来的吗?
2024-1-18 17:46
0
雪    币: 1495
活跃值: (9948)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
61
我看着好像hwBreakpointProc模块好像并没有依赖上层的rwProcMem33模块,貌似rwProcMem33这个模块是testKo这里用的。testKo这个感觉是个测试内核模块的代码,猜测是不是只需要hwBreakpointProc就行了。毕竟服务端里面访问的驱动设备是hwBreakpointProc的
2024-1-26 18:28
0
雪    币: 1495
活跃值: (9948)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
62
4.14编译报错

/home/king/android_src/pixelExper_thirteen/kernel/google/msm-4.14/drivers/rwProcMem33/phy_mem.h:176:93: error: member reference type 'pgd_t *' is a pointer
; did you mean to use '->'?
        printk_debug("init_mm pgd val:0x%lx,pgd addr:0x%lx\n", (unsigned long)pgd_val(*(mm->pgd)), pgd_val((mm->pgd)));
                                                                                                   ^~~~~~~~~~~~~~~~~~
/home/king/android_src/pixelExper_thirteen/kernel/google/msm-4.14/arch/arm64/include/asm/pgtable-types.h:50:24: note: expanded from macro 'pgd_val'
#define pgd_val(x)      ((x).pgd)
2024-2-6 13:58
0
雪    币: 1495
活跃值: (9948)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
63
而且就算编译成功了。但是也看不到/sys/module/rwProcMem37,奇怪了。我在aosp的内核分支上测试还是正常的。换了个rom的内核就不行了
2024-2-7 01:07
0
雪    币: 1495
活跃值: (9948)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
64
哦。原来我编译的是在/vendor/lib/modules这个目录下。
2024-2-7 01:17
0
雪    币: 216
活跃值: (370)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
65
比较好奇你的VS版本,你说需要把lld改成I64d这些,但是VS早就支持lld/llx这些格式了啊
2024-2-15 21:28
0
游客
登录 | 注册 方可回帖
返回
//