Run Droidspaces on Samsung Tab S7

2026-08-06 瞎折腾
This post is not yet available in English. Showing the original.
文章介绍了通过官方指引和社区资源成功编译并运行内核的过程,并重点分析了 ksu-su 模块存在的 bug。作者尝试使用多个工具链和集成方式,但最终在系统启动时仍出现重启问题,导致项目被放弃。随后作者重新从零开始构建并测试内核,成功通过检查并实现了各种特性。

跑一遍检查,目前的内核缺少PID和IPC namespace 按照流程和前人铺路,搞一遍编译,应该就没问题了 创建新的WSL,确保环境干净

clone内核源码,然后丢给ai(

我相信你DeepSeek,你不会搞砸的对吧? 很显然,ds搞了几个新的不行的编译器(GCC15),编了一堆错误出来 XD,然后自己修了大半天,最后刷进去别说还真能开机,但到进入系统后似乎看门狗过不去重启了。 还是看看远处的论坛吧,很显然,99%是我们编译器选择的问题。 https://www.coolapk1s.com/feed/73007536 https://www.coolapk1s.com/feed/55376709 https://xdaforums.com/t/kernel-ksu-next-lineageos-kernel-for-tab-s7-s7-lte-wi-fi.4792755/ 根据酷安的两篇文章,我们需要适用于4.19.325编译器且需要gcc+clang butt,酷安的两篇都没有给出具体的编译器,再去看XDA的文章,作者贴心的为我们提供了源码和一个构建工具。 https://github.com/itzreesa/android_kernel_samsung_sm8250/ https://github.com/itzreesa/kernel-builder 拉下来,可以看到config.ymal里已经配好了编译器

# specify the kernel repository url and branch here
kernel_repo_url: https://github.com/itzreesa/android_kernel_samsung_sm8250
kernel_repo_branch: lineage-23.2

# specify the clang repository url and branch here
clang_repo_url: https://github.com/LineageOS/android_prebuilts_clang_kernel_linux-x86_clang-r416183b
clang_repo_branch: lineage-20.0

先直接跑一遍看看,轻松通过并复现原帖内核在One UI7上的问题(进入系统后重启),这代表我们成功编译了内核。 接下来继续推进,用android_prebuilts_clang_kernel_linux-x86_clang-r416183b 编译器 编译适用于One ui的内核 https://github.com/ShionKanagawa/android_kernel_samsung_sm8250 轻松通过,刷入测试,一切正常。 继续加入我们想要的Features。 Droidspaces,SukiSU-Ultra,USB-C DP Alt mode,ReKernel,以及各种玄学优化( 先加最基本的KSU,(有大坑) 按照官方GitHub上的文档(6个月前更新)进行集成,可以选择Manual hook或Tracepoint Hook https://github.com/SukiSU-Ultra/SukiSU-Ultra/blob/main/docs/zh/guide/how-to-integrate.md

自然我们该选择Manual hook的方法,执行一条sh就好了(理论),交给ds轻松完成

下面向你走来的就是SukiSU-Ultra的史山
Bug 1 & 2:ksud.c 缺少版本守卫
selinux_hide 函数只在 ≥5.10 时编译,但 ksud.c 无条件调用了它们。需要给 3 处调用加上 #if 守卫: 第 64、226、298 行加 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,0)\Bug 3:event.c 的 user_arg_ptr 类型不匹配 user_arg_null_ptr() 返回 struct user_arg_ptr *(指针),但当 SUSFS=n 时,ksu_sulog_capture 期望的是值类型 const struct user_arg_ptr。 参考 main 分支的做法,最简单的修复是直接传 NULL:

  // 当前(line 379)
  pending = ksu_sulog_capture(KSU_SULOG_EVENT_IOCTL_GRANT_ROOT, NULL, USER_ARG_NULL, gfp);

  // 修复为
  pending = ksu_sulog_capture(KSU_SULOG_EVENT_IOCTL_GRANT_ROOT, NULL, NULL, gfp);

你以为修完就没事了? :&(蛆音娘_生气) ,打开管理器显示一切正常,root正常授权,模块正常安装。 重启完发现,哎!我模块怎么还是待重启的状态,再往后就是,枯燥无聊的抓日志重启环节。 然后无意间翻到了这样一个文章,是时候抛弃SukiSU-Ultra了。

让我们从头来过,ReSukiSU启动! https://resukisu.github.io/zh-Hans/guide/build.html 依旧是按照官方指引,把“说明书”和仓库地址扔给ai,玩去吧(

此处省略编译内核,顺手抓一份日志看看

很好啊,一切如期运行,继续加入各类特性

成功通过检查,跑个系统看看。

待续(

If you enjoyed this, leave a comment~

© 2020 - 2026 Kanotis @Kanotis
Powered by theme astro-koharu · Inspired by Shoka