-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG - Magisk Canary 27008] Customize.sh doesn't working as expected #4
Comments
Hello @diabl0w I need these informations:
|
RootManager: magisk canary 27008
getkb isn't going to work as you don't have a "system/bin" folder in your module, you only have "bin" |
That's correct, /system/bin must be untouched but it still needs to work (like it worked for other people) since I'm adapting executables (including the ones that needs to be used during boot) in root manager's PATH since some root detection can detect if I use overlay to put executables somewhere in /system Could you do No one else had this issue before with executables in official magisk so this issue must be new if PATH are correct |
|
It's strange that none of executables was installed in "/debug_ramdisk" Could you check using "touch" command is /debug_ramdisk writtable in your case |
|
You could try to remove module, reboot device, re-download module from the same sources (since zip got updated for v1.0.8), re-install module, reboot and open terminal to check is "getkb" installed in "/debug_ramdisk" - if it's still not there, there could be issues with customize.sh that needs to complete executable installation to specific directories based on what root you're using. |
I'm already using 1.0.8 and already tried reinstalling so it would only get us to the same spot we are now |
@topjohnwu We have a problem with Magisk compatibility about this module. Are you willing to collaborate? |
Also tested not working on 27007 magisk (specifically I tried using alpha but I assume official magisk 27007 canary as well) All same symptoms that noted above (not being present in /debug_ramdisk, etc) |
Where in your service.sh does helper.sh ever get called?
|
It's in compiled binary getkb_boot (for both keyboxs and target.txt updating) The getkb_boot binary needs to be executed during boot by service.sh (if it's located correctly) and busybox and getkb binary needs to be accessible by PATH (that means that one of the directories used by your root manager to mount su and other root executables needs to be used for that - PATH that are not /system/bin since in /system/bin su command is only bind-mounted from another location that should be PATH for this root manager) And it worked with every version of root managers before (until this report that I've got from you) I'm currently setting up virtual machine with official Magisk Canary to manually test it and modify it on the go to fix it. |
This is your issue |
Thank you, this response could help me find the issue (this response was never shown on my devices so this is new... it can also be due to specified compiling methods I've used - some methods could be incompatible with another devices so I'm going to debugging it) |
Isn't debug_ramdisk just stored in ram memory? Putting any files there will just get lost on reboot correct? |
For other users, they didn't got any issues with that and they also used official Magisk - I'm using APatch so I know that APatch have different PATH and it always works from there and never got touch '': No such file or directory bug. Every file was found in it's location and all functions we're correctly loaded. I'm also trying to adapt to other root managers but it seems that starting from the version you reported here, this is gonna be different. Maybe I will move configurations back to service.sh for target.txt while working on an completely different version of this addon New version should be able to instead of calling helper.sh every 5 seconds to actually be triggered by installing/uninstalling apps (it will be better for battery and device performance) and the file responsible for helper.sh will be service so service will handle it while executables will work only with keybox (service.sh will only have two jobs and that is to execute service.dex for target.txt and getkb_boot for keybox). That should improve performance instead of refreshing target.txt every 5 seconds and compiling it into C executable. It will be the best if we put that in more-friendly languages for android like java+kotlin (If starting from 27008 debug_ramdisk gets cleaned after each boot, I will need to include overlay for magisk in that case since /data/adb/magisk didn't worked as PATH) |
I agree, all of that sounds much better. As for getting included in PATH, what is the goal of doing so? So that user can call the executable manually? Or is module dependent on it for something? I am not sure how magisk handles it's PATH environment for modules vs userspace |
Shamiko is apparently able to make this persistent, so maybe it can be investigated how |
A little bit of both. Easy accessible by user and APatch version of busybox for specific functions in getkb_boot and getkb executable - there is some commands available that are not usually available by default on non-APatch users that some functions depends on them. It would be the easiest way just to use overlayfs for this but some ROMs with broken TEE can be detected for using overlayfs and integrity could be broken too for them. Anyway, as for now, I will temporary push some changes to the same v1.0.8 version that will register executables in PATH for magisk users using overlayfs (not recommended for TEE broken devices) until I complete a better solution for the future builds of this module. Stay tuned for updates! |
Yeah, I will have a quick look into Shamiko module to see what method they are using for debug_ramdisk (it seems that Shamiko is using Zygisk to achieve this. I will decompile it and see it deeply to understand their method but I guess that Zygisk starts "as service" this module and from zygisk directory reads zygisk module code that copying required executable to PATH, set permissions and execute it and keep it working in background) |
There is no config.txt
target.txt not getting updated
The text was updated successfully, but these errors were encountered: