maxsteeel
I managed to get NoMount working 100% hookless! https://github.com/maxsteeel/nomount/tree/experimental/hookless/kernel/src although it is still experimental, it works almost perfect. tested on kernel 6.1.145. thanks @ZYClark for helping me test while I amโฆ
without any global hook, no kprobes, no syscall / inline hooking, no hooks, only i_op, f_op and s_op structures hijacking
:)
:)
๐ฅ11โค1
Hello,
I've been a bit absent due to health issues, but I've tried my best to stay active here. I'd like to clarify the current state of NoMount, as everything is quite confusing:
* First, why are there two/three branches of NoMount?
- As you may know (since I've posted about it here), I'm pushing for a transition from using global in-kernel hooks to a more, ermm... hookless approach. However, this refactoring is so large that it's incompatible with the master branch. Therefore, until this refactoring is 100% stable for everyone, I prefer to keep it on a separate branch for those willing to deal with the bugs and report them to me.
* But what does 'hookless' mean? What's the difference?
* - In the current NoMount context, "hookless" doesn't mean it works without hooks (that would be saying it works by magic hehehe), but rather that it doesn't require applying hooks in the kernel. My proposal is based on modifying the VFS structures in RAM, allowing the kernel itself to use my functions without needing kernel modifications. You can simply integrate NoMount into your kernel or use it as a LKM (although there's no official LKM module yet; you have to compile it yourself).
* So, is this "hookless" approach much better than in-kernel hooks?
- I'd like to say yes, but for several reasons, I can't yet give a final verdict. While it's true that both performance and battery life have improved in this transition, there are still some issues with certain kernels (mostly legacy ones). But overall, this approach is much better, more stable, and more sustainable in the long run.
* Why are there so many problems with this "hookless" approach?
- This is due to two things, one, that by having in-kernel hooks, I can modify any kernel function as I please (just like SuSFS does), which allows me to bypass restrictions and make certain functions behave differently. This 'hookless' approach doesn't offer the same freedoms, because although, as I explained, I modify the VFS structures in RAM, this method doesn't have the same scope; it's limited to VFS functions.
On the other hand, I'm currently without a phone. My personal phone is completely broken, and I'm not in a position to repair it. Therefore, this entire transition has been thanks to my PC (Linux), which has allowed me (using LKM) to test each change. However, for obvious reasons, a PC (Linux) isn't a true Android environment, so I can't personally test all these changes 100%. Consequently, there may be bugs, problems with other devices, or incompatibilities with certain modules that I might not be aware of.
I'd like to take this opportunity to thank everyone who is actively testing and using NoMount and has contributed to its development, whether by submitting pull requests or testing and reporting bugs. Thank you so much! โค๏ธ
* Which branch is stable then?
- It depends. For most people, I highly recommend using the dev branch, as it's much more up-to-date and, in most cases, stable. On the other hand, if you encounter problems with the dev branch, whether you experience bootloops or certain modules not working, you can either report it to me and I'll try to fix it as best I can, or use the master branch, which has been tested by me and many others and is very stable (though it's quite outdated in certain aspects).
* So, which module should I use?
- If you compiled NoMount from the master branch and/or aren't sure, use this release:
https://github.com/maxsteeel/nomount/releases/tag/v1.1.0
- If you compiled NoMount from any branch other than master, use the CI module:
https://github.com/maxsteeel/nomount/actions
If you have any other questions, feel free to leave them in the comments of this post or in the group. I'll answer them as soon as I can. And if you have any problems with NoMount, don't hesitate to report them. I might not reply instantly, but I'll get back to you as soon as possible. :)
I've been a bit absent due to health issues, but I've tried my best to stay active here. I'd like to clarify the current state of NoMount, as everything is quite confusing:
* First, why are there two/three branches of NoMount?
- As you may know (since I've posted about it here), I'm pushing for a transition from using global in-kernel hooks to a more, ermm... hookless approach. However, this refactoring is so large that it's incompatible with the master branch. Therefore, until this refactoring is 100% stable for everyone, I prefer to keep it on a separate branch for those willing to deal with the bugs and report them to me.
* But what does 'hookless' mean? What's the difference?
* - In the current NoMount context, "hookless" doesn't mean it works without hooks (that would be saying it works by magic hehehe), but rather that it doesn't require applying hooks in the kernel. My proposal is based on modifying the VFS structures in RAM, allowing the kernel itself to use my functions without needing kernel modifications. You can simply integrate NoMount into your kernel or use it as a LKM (although there's no official LKM module yet; you have to compile it yourself).
* So, is this "hookless" approach much better than in-kernel hooks?
- I'd like to say yes, but for several reasons, I can't yet give a final verdict. While it's true that both performance and battery life have improved in this transition, there are still some issues with certain kernels (mostly legacy ones). But overall, this approach is much better, more stable, and more sustainable in the long run.
* Why are there so many problems with this "hookless" approach?
- This is due to two things, one, that by having in-kernel hooks, I can modify any kernel function as I please (just like SuSFS does), which allows me to bypass restrictions and make certain functions behave differently. This 'hookless' approach doesn't offer the same freedoms, because although, as I explained, I modify the VFS structures in RAM, this method doesn't have the same scope; it's limited to VFS functions.
On the other hand, I'm currently without a phone. My personal phone is completely broken, and I'm not in a position to repair it. Therefore, this entire transition has been thanks to my PC (Linux), which has allowed me (using LKM) to test each change. However, for obvious reasons, a PC (Linux) isn't a true Android environment, so I can't personally test all these changes 100%. Consequently, there may be bugs, problems with other devices, or incompatibilities with certain modules that I might not be aware of.
I'd like to take this opportunity to thank everyone who is actively testing and using NoMount and has contributed to its development, whether by submitting pull requests or testing and reporting bugs. Thank you so much! โค๏ธ
* Which branch is stable then?
- It depends. For most people, I highly recommend using the dev branch, as it's much more up-to-date and, in most cases, stable. On the other hand, if you encounter problems with the dev branch, whether you experience bootloops or certain modules not working, you can either report it to me and I'll try to fix it as best I can, or use the master branch, which has been tested by me and many others and is very stable (though it's quite outdated in certain aspects).
* So, which module should I use?
- If you compiled NoMount from the master branch and/or aren't sure, use this release:
https://github.com/maxsteeel/nomount/releases/tag/v1.1.0
- If you compiled NoMount from any branch other than master, use the CI module:
https://github.com/maxsteeel/nomount/actions
If you have any other questions, feel free to leave them in the comments of this post or in the group. I'll answer them as soon as I can. And if you have any problems with NoMount, don't hesitate to report them. I might not reply instantly, but I'll get back to you as soon as possible. :)
โค11๐1
Forwarded from heryts
It works, thanks
๐1๐ฟ1
From now on, it is recommended to use the automated script to integrate NoMount into the kernel:
On the dev branch, the patches are deprecated and will be removed soon, so using the script is strongly recommended.
workflow reference:
https://github.com/maxsteeel/GKI_KernelSU_SUSFS/blob/main/.github/actions/nomount/action.yml
kernel/README.md:
https://github.com/maxsteeel/nomount/blob/dev/kernel/README.md
curl https://raw.githubusercontent.com/maxsteeel/nomount/refs/heads/dev/kernel/setup.sh | bash -s dev
On the dev branch, the patches are deprecated and will be removed soon, so using the script is strongly recommended.
workflow reference:
https://github.com/maxsteeel/GKI_KernelSU_SUSFS/blob/main/.github/actions/nomount/action.yml
kernel/README.md:
https://github.com/maxsteeel/nomount/blob/dev/kernel/README.md
๐ฅ5๐ฅฐ1
Officially NoMount has LKM support! (only in CI modules)
https://github.com/maxsteeel/nomount/actions/runs/31724150090
Thanks to @sarreos for base workflow, thanks to @ananatdx, dev of Kasumi (inspiration of this project), and thanks to all testers!
NOTE: LKM's compilated for nomount workflow is only for GKI kernels, Sultan kernels or legacy kernels can't load these LKM's.
NOTE 2: If you have a legacy kernel, you can compile your LKM for your kernel following these steps, and when you have your LKM compiled, you can add to the module.zip (in lkm folder) in format "nomount-{kernel version}.ko, e.g nomount-5.4.ko. But I always recommend compile nomount built-in in your kernel.
NOTE 3: Sultan kernels with CONFIG_INTEGRATED_MODULES=y can't load LKM's, ref: kerneltoast/android_kernel_google_tensynos
https://github.com/maxsteeel/nomount/actions/runs/31724150090
Thanks to @sarreos for base workflow, thanks to @ananatdx, dev of Kasumi (inspiration of this project), and thanks to all testers!
NOTE: LKM's compilated for nomount workflow is only for GKI kernels, Sultan kernels or legacy kernels can't load these LKM's.
NOTE 2: If you have a legacy kernel, you can compile your LKM for your kernel following these steps, and when you have your LKM compiled, you can add to the module.zip (in lkm folder) in format "nomount-{kernel version}.ko, e.g nomount-5.4.ko. But I always recommend compile nomount built-in in your kernel.
NOTE 3: Sultan kernels with CONFIG_INTEGRATED_MODULES=y can't load LKM's, ref: kerneltoast/android_kernel_google_tensynos
GitHub
module, workflows: implement LKM support ยท maxsteeel/nomount@5e6285d
NoMount is a VFS (Virtual File System) path redirection framework for Android kernels. - module, workflows: implement LKM support ยท maxsteeel/nomount@5e6285d
โค8
Forwarded from EGirls Ruined my Life @Willay
Forwarded from FerGus
at least it werks here๐
โค4
I need everyone using nomount to try this CI:
https://github.com/maxsteeel/nomount/actions/runs/32476648173
or compile the recent changes from the dev branch and let me know of any bugs you find.
https://github.com/maxsteeel/nomount/actions/runs/32476648173
or compile the recent changes from the dev branch and let me know of any bugs you find.
GitHub
kernel, userspace: return back to keyring-based api ยท maxsteeel/nomount@300fed2
NoMount is a VFS (Virtual File System) path redirection framework for Android kernels. - kernel, userspace: return back to keyring-based api ยท maxsteeel/nomount@300fed2
โค5
maxsteeel
I need everyone using nomount to try this CI: https://github.com/maxsteeel/nomount/actions/runs/32476648173 or compile the recent changes from the dev branch and let me know of any bugs you find.
we're getting closer and closer to the next stable release๐
๐ฅ9โค4โคโ๐ฅ2
Hi guys,
I am away and will be away for a few more days due to a viral infection that has left me feeling unwell (fever, extreme headaches, swollen tonsils, etc.), and I don't know how quickly I will fully recover, so I hope you can understand.
I am aware of every single message/report you have sent me, and I will respond to them as I recover. Thank you all so much <3
I am away and will be away for a few more days due to a viral infection that has left me feeling unwell (fever, extreme headaches, swollen tonsils, etc.), and I don't know how quickly I will fully recover, so I hope you can understand.
I am aware of every single message/report you have sent me, and I will respond to them as I recover. Thank you all so much <3
1โค11๐ข9
Hi guys,
First of all, NOMOUNT HAS SURPASSED 225 STARS ON GITHUB! ๐ I honestly never thought that something that started as a personal project would grow so quickly, thank you all so much! โค๏ธ
I wanted to announce that there is now a specific group for NoMount, you can join if you like ๐:
https://t.me/nomount
Here you can report bugs / issues, send feedback or suggestions, download both the CI and the Release versions, and learn a bit more about this project, so I'll be waiting for you there! ๐
First of all, NOMOUNT HAS SURPASSED 225 STARS ON GITHUB! ๐ I honestly never thought that something that started as a personal project would grow so quickly, thank you all so much! โค๏ธ
I wanted to announce that there is now a specific group for NoMount, you can join if you like ๐:
https://t.me/nomount
Here you can report bugs / issues, send feedback or suggestions, download both the CI and the Release versions, and learn a bit more about this project, so I'll be waiting for you there! ๐
Telegram
NoMount Chat
This is the NoMount Group! Prefer English, but all languages allowed :)
1๐ฅ20โค4