[Magisk][Module] su xbin_bind v1.2-20170417 - Magisk

Intro
Expose your su to standard location /system/xbin/su systemless-ly.
Though it helps grant root permission to some apps, this trick breaks safetynet.
Just made a simple module try to solve the /sbin/su not detectable problem. This module will look for existing su binary, and create a link as /magisk/su_xbin_bind/system/xbin/su pointing to the real su. The link will also be mounted as /system/xbin/su systemless-ly later.
Installation
Flash it in Magisk manager or through recovery, then reboot. You will find a link /system/xbin/su. All the work is done systemless-ly.
Uninstallation
Open Magisk Manager, go to Modules, disable or uninstall the module called "Su xbin_bind". Then it will disappear after reboot.
su-xbin-bind on github
Changelog
v1.2 20170417
Add Magisk v12 support.
v1.1 20170323
- make it compatible with Magisk v11.5/11.6
Update 20170228
- Since a little syntax error in the mounting script from Magisk v11.0-v11.5, mounting links systemless-ly won't success. Hence we choose to copy but not to link the su binary for v11.0-v11.5. Don't worry, both methods are systemless.

Reserved.

Hi, will this not make safetynet fail?

kartikb said:
Hi, will this not make safetynet fail?
Click to expand...
Click to collapse
It will obviously. Because su is exposed to /system/xbin/su and will be detected.

laggardkernel said:
It will obviously. Because su is exposed to /system/xbin/su and will be detected.
Click to expand...
Click to collapse
Wouldn't magiskhide unmount that and therefore pass safetynet?

I used your module to fix TiBackup freeze when restorins apps.
TiBackup troubleshooting (http://www.titaniumtrack.com/kb/tit...l#tb-hangs-while-freezing-apps-restoring-apps) reports that this issue is connected with wrong su permissions in /system/bin and /system/xbin. Since these are not available due to systemless root, I though that your module would represent an elegant fix... and it did!
Thanks!

leonardus_magnus said:
I used your module to fix TiBackup freeze when restorins apps.
TiBackup troubleshooting (http://www.titaniumtrack.com/kb/tit...#tb-hangs-while-freezing-apps-restoring-apps) reports that this issue is connected with wrong su permissions in /system/bin and /system/xbin. Since these are not available due to systemless root, I though that your module would represent an elegant fix... and it did!
Thanks!
Click to expand...
Click to collapse
Does ur safety net fail with this module?

Xennet said:
Does ur safety net fail with this module?
Click to expand...
Click to collapse
Oh c'mon, you cannot be serious... On Xda forums you have threads with hundreds of pages and I would admit you did not read all of them... but your answer has already been replied on post n. 4 in this page... I can' believe it...

leonardus_magnus said:
Oh c'mon, you cannot be serious... On Xda forums you have threads with hundreds of pages and I would admit you did not read all of them... but your answer has already been replied on post n. 4 in this page... I can' believe it...
Click to expand...
Click to collapse
Yah i saw it lol....
But magisk usually dismounts xbin folder...
Then it unusual to get it detected unless it is physically present der...
So just wanted to confirm it before flashing...

Xennet said:
Yah i saw it lol....
But magisk usually dismounts xbin folder...
Then it unusual to get it detected unless it is physically present der...
So just wanted to confirm it before flashing...
Click to expand...
Click to collapse
Ok safety net not passed on my device... but it's not an issue at all for me...

Unfortunately, doesn't fix the Titanium Backup issue (freezing or restoring app) for me on Galaxy S6 Android 6.0. This also broke SafetyNet for me, even after uninstalling the module from Xposed and rebooted.

chaoscreater said:
Unfortunately, doesn't fix the Titanium Backup issue (freezing or restoring app) for me on Galaxy S6 Android 6.0. This also broke SafetyNet for me, even after uninstalling the module from Xposed and rebooted.
Click to expand...
Click to collapse
If you mean you are using xposed, obviously safetynet will be broken. MagiskHide couldn't hide xposed.
This module tries to fix the su detectable problem. If your titanium backup could get root permission after installing the module, it means the module worked.

My TB is working fine, but I have another app that can't detect it, will give it a test run, thanks for your work!

HI! Just a quick feedback: this module works with Helium Backup that now correctly asks for root permission! :good:
Thank you!

Thanks for the module!! It was the key for me getting Termux su working ?

Hello, I flashed this without error and titanium backup as well as ES file explorer both report I do not have root. Magisk v12 states i do have root.
nevermind...i realized Magisk SU isn't installed as it didn't auto install. I had installed phh's superuser r266-2.
proceeded to rewipe and reflash everything.
Nexus 6P
[ROM][6P][7.1.2_r8]★ Pure Nexus ★ Substratum | Fi | WiFi Calling ★[05/09/17]
ex 4.09
Magisk v13 beta
no issues and all superuser root requests appear.

Big big BIG THANK YOU to you. Fixed the most important app for custom ROMs- Kernel adiutor:highfive: (Both play store:good: and modded versions:laugh and secure settings tasker plugin

Please update the script for the new template v4 for Magisk v13!
:good:

If *enabled* in magisk 13, titanium backup can't get root.
I had to disable it.

Hi,
Work with Magisk Version 13.3 ???

Related

CM-su still being detected by Magisk, Magisk Hide not working

Hi,
I'm currently so confused as to why my Magisk isn't working. I'm currently running the last CM 13 snapshot for the Galaxy S5 (G900F, klte), and root and Xposed work fine via Magisk.
However, what isn't working is Magisk Hide, and I'm not sure why. However, I'm noticing that even though I fully unrooted cm-su (using SuperSU, in a way that means the only root I can select in Dev Options is ADB only), I'm still getting cm-su detected by Magisk.
I'm confused -- is there anyway I can remove it? I've tried looking through TWRP file manager, but whenever I do so, I can't even see /system/ files, and mounting only mounts to USB, but that's unrelated.
Thanks for any help!
intcompetent said:
Hi,
I'm confused -- is there anyway I can remove it? I've tried looking through TWRP file manager, but whenever I do so, I can't even see /system/ files, and mounting only mounts to USB, but that's unrelated.
Click to expand...
Click to collapse
I don't think SuperSU removes the in-built CM superuser. Use the UNSU zip by osmosis instead. https://forum.xda-developers.com/showthread.php?t=2239421
Also magisk hide will NOT hide Xposed. Yes not even systemless 87.1 Xposed.
SuperSU removed its own root only, CM root is unaffected.
Also, Magisk hide only works with Magisk's own phh root.
And, as far as I know, it can't successfully hide Xposed either. Doesn't matter if it is systemless or not.
Cheers for the replies.
I wasn't aware that Magisk Hide didn't hide Xposed, that's my bad.
As for the presence of CM-SU, SuperSU did do something, as the Developer Options root option is now ADB only while previously it offered the option to Apps too. I'll try unsu.
Here's what I'm meaning btw: imgur.com /a /yTOTw (sorry for the link bypass, there's no other way for me to simply demonstrate the issue) (as you can see in the first screenshot, Magisk detects "cm-su" along with phh. When phh was disabled before I removed cm-su, it only detected cm-su, hence leading me to believe cm-su remains).
e: tried unsu, still cm-su remains. At this point, I'll leave it -- I presume that it's permanently ingrained into the ROM. I've gotten around the restriction I was facing anyway, and I'll adjust. Thanks anyway!
intcompetent said:
Cheers for the replies.
I wasn't aware that Magisk Hide didn't hide Xposed, that's my bad.
As for the presence of CM-SU, SuperSU did do something, as the Developer Options root option is now ADB only while previously it offered the option to Apps too. I'll try unsu.
Here's what I'm meaning btw: imgur.com /a /yTOTw (sorry for the link bypass, there's no other way for me to simply demonstrate the issue) (as you can see in the first screenshot, Magisk detects "cm-su" along with phh. When phh was disabled before I removed cm-su, it only detected cm-su, hence leading me to believe cm-su remains).
e: tried unsu, still cm-su remains. At this point, I'll leave it -- I presume that it's permanently ingrained into the ROM. I've gotten around the restriction I was facing anyway, and I'll adjust. Thanks anyway!
Click to expand...
Click to collapse
If there are SU files in /system/bin and /system/xbin, then CM root was not removed. Not completely.
To actually remove it you have to delete those files.
Pwnycorn said:
If there are SU files in /system/bin and /system/xbin, then CM root was not removed. Not completely.
To actually remove it you have to delete those files.
Click to expand...
Click to collapse
@intcompetent Osmosis's unsu zip removes those files. If those files are still there after flashing the unsu zip, I'd ask in his thread.
knpk13 said:
@intcompetent Osmosis's unsu zip removes those files. If those files are still there after flashing the unsu zip, I'd ask in his thread.
Click to expand...
Click to collapse
Or just remove them manually, jeez. It's just two files.
I've been doing it manually for months and everything works as intended.
As an a closer, there's nothing there. I presume that Magisk is picking up something freaky from somewhere, or something's up, but I'm good guys. I won't need anymore help.
Cheers!
I found this zip around somewhere. I believe it works to remove all root (systemless as well) and I've always flashed it before rooting normally. It should also remove CM root afaik.
As a test, after flashing, check and see if you pass safetynet before installing magisk
intcompetent said:
As an a closer, there's nothing there. I presume that Magisk is picking up something freaky from somewhere, or something's up, but I'm good guys. I won't need anymore help.
Cheers!
Click to expand...
Click to collapse
I
L

Magisk (MagiskSU) - Busybox won't install, says "Systemless root is not configured".

Magisk (MagiskSU) - Busybox won't install, says "Systemless root is not configured".
I've installed/flashed the latest stable Magisk version: v13.2. (Since version v13.1 I believe the bundled busybox included with Magisk was removed because it caused a lot of issues)
I've tried to install BusyBox to "/su/xbin" but it always throws up the error "Systemless root is not configured".
bseos said:
I've installed/flashed the latest stable Magisk version: v13.2. (Since version v13.1 I believe the bundled busybox included with Magisk was removed because it caused a lot of issues)
I've tried to install BusyBox to "/su/xbin" but it always throws up the error "Systemless root is not configured".
Click to expand...
Click to collapse
Install Osm0sy's BusyBox zip on twrp (it's a magisk module as well). It works here.
You can find it at his official thread below:
https://forum.xda-developers.com/showthread.php?t=2239421
double_post
abacate123 said:
Install Osm0sy's BusyBox zip on twrp (it's a magisk module as well). It works here.
You can find it at his official thread below:
https://forum.xda-developers.com/showthread.php?t=2239421
Click to expand...
Click to collapse
Tried adding it as a module to Magisk however it reports it's not a magisk module "this zip is not a magisk module".
Flashed it with TWRP and it installed in su/xbin. Thanks :good:
abacate123 said:
Install Osm0sy's BusyBox zip on twrp (it's a magisk module as well). It works here.
You can find it at his official thread below:
https://forum.xda-developers.com/showthread.php?t=2239421
Click to expand...
Click to collapse
I flashed that zip in my Xperia XA and I'm still having the "systemless root is not configured". I need to install busybox in su/bin or su/xbin/ to make Viper4android work. Can u help me?
https://forum.xda-developers.com/android/software-hacking/tool-busybox-flashable-archs-t3348543
aocboe said:
https://forum.xda-developers.com/android/software-hacking/tool-busybox-flashable-archs-t3348543
Click to expand...
Click to collapse
But which do I install?
Evedammo said:
But which do I install?
Click to expand...
Click to collapse
Install "Busybox-1.27.1-YDS-ARM.zip" in the Magisk Manager
aocboe said:
Install "Busybox-1.27.1-YDS-ARM.zip" in the Magisk Manager
Click to expand...
Click to collapse
I've installed that. In the magisk modules it doesn't appear I flashed from TWRP, and I'm still having the "systemless root" message in busybox.
Evedammo said:
I've installed that. In the magisk modules it doesn't appear I flashed from TWRP, and I'm still having the "systemless root" message in busybox.
Click to expand...
Click to collapse
If you want to use it as a Magisk module, maybe you should install it from the Magisk Manager instead of flashing from TWRP.
Besides, I didn't catch your meaning. You mean the busybox app notice? Now that busybox is installed, you don't have to mind that notice.
Why are you guys trying to install to /su? Unless you're still on Magisk v12, you shouldn't be using SuperSU...
Rain X
I'm new, so I can't post links, but a youtuber named Rain X may have a solution. I tried his method and it worked for me:good:
Soumy1234 said:
I'm new, so I can't post links, but a youtuber named Rain X may have a solution. I tried his method and it worked for me:good:
Click to expand...
Click to collapse
What method would that be? No, I'm not gonna go hunting for some random Youtuber...
If the aim is to get a functioning busybox up and running, the easiest way is to just install @osm0sis busybox module from the downloads section in the Manager. No other apps needed...
He installed busybox in system/xbin
He made a folder called "Viper4Android" in the "system/priv-app" folder and copied a Viper4Android APK in there
He set the permissions of said APK to -rw-r--r-- (I set to -rwxrwxrwx for good measure)
He went to "system/vendor/etc" ("system/etc" if it's not there) folder, made a copy of the "audio_effects.conf" file
He renamed the "audio_effects.conf" file in the etc folder to "audio_effects.conf.bak"
He pasted the original "audio_effects.conf" file back in the "etc" folder, so now he has a "audio_effects.conf" and a "audio_effects.conf.bak" file in the "etc" folder
He changed the permissions of the "audio_effects.conf" file to "-rw-r--r--"
He rebooted, opened V4A, installed drivers, then rebooted
Hope this helped.
Didgeridoohan said:
What method would that be? No, I'm not gonna go hunting for some random Youtuber...
If the aim is to get a functioning busybox up and running, the easiest way is to just install @osm0sis busybox module from the downloads section in the Manager. No other apps needed...
Click to expand...
Click to collapse
I tried that,but it didn't work for me. If it doesn't work for you, I've already written some instructions on what the YouTuber did... Hope that helps.
Soumy1234 said:
I tried that,but it didn't work for me. If it doesn't work for you, I've already written some instructions on what the YouTuber did... Hope that helps.
Click to expand...
Click to collapse
That busybox module works perfectly for me.
And I'm using Magisk partly because it makes system modifications like V4A systemless. Therefore I would not follow those instructions...
I do have V4A working though, with this Magisk module and by utilising this workaround until the module has been updated. Nice and systemless...
The above mentioned workaround hasn't worked for everyone, but several other ways of getting it to work have been discussed in that thread.
Didgeridoohan said:
That busybox module works perfectly for me.
And I'm using Magisk partly because it makes system modifications like V4A systemless. Therefore I would not follow those instructions...
I do have V4A working though, with this Magisk module and by utilising this workaround until the module has been updated. Nice and systemless...
The above mentioned workaround hasn't worked for everyone, but several other ways of getting it to work have been discussed in that thread.
Click to expand...
Click to collapse
Oh, okay. Can you at least tell me how much the BusyBox zip work for you? I tried installing it through Magisk and TWRP, but it gave some errors.
Soumy1234 said:
Oh, okay. Can you at least tell me how much the BusyBox zip work for you? I tried installing it through Magisk and TWRP, but it gave some errors.
Click to expand...
Click to collapse
You'll need to provide some details for that... After flashing the module in TWRP, can you save the recovery log (Advanced - Copy log) and attach it to a post here.
And I forgot to say, but for the V4A module I linked, I don't even need busybox installed. YMMV...
Didgeridoohan said:
You'll need to provide some details for that... After flashing the module in TWRP, can you save the recovery log (Advanced - Copy log) and attach it to a post here.
And I forgot to say, but for the V4A module I linked, I don't even need busybox installed. YMMV...
Click to expand...
Click to collapse
Funny. It seemed to work this time. The last time I tried it literally said it failed.
Soumy1234 said:
Funny. It seemed to work this time. The last time I tried it literally said it failed.
Click to expand...
Click to collapse
Doesn't look like it succeeded when looking at the log...
What's the error message when you install through the Manager?

Cant find Enable Busybox in Magisk settings and ctsProfile not succesfull

Hello.
After many many reinstall of magisk I still cant find "Enable Busybox" in Magisk settings
I have "magisk core only mod" , "Magisk Hide" and "Systemless Host" BUT "Enable Busybox" is missing/not visible in my settings of Magisk.
I also got error when Safety Net check. Only bacisintegry is successfull. ctsProfile do not pass the test.
But, I can still download and update payed and free apps from Google Play Store.
Anyone what to do for getting "Enable Busybox" to be visible in my Magisk settings?
And, since ctsProfile not pass safetyscheck..can that be because for that missing "Enable Busybox" in settings?
Running lineageOS 14.1 and samsung J5 ( 2016 ) , SM-J510FN
Magisk 14.0
Regards
Rolf
Busybox: There is no toggle like that (hasn't been for some time). There's a Busybox module in the Downloads section of the Manager. Use that.
The failed ctsProfile check doesn't have anything to do with Busybox. Take a look here for more info on passing SafetyNet: https://forum.xda-developers.com/apps/magisk/guide-magisk-troubleshooting-t3641417
You don't need to pass SafetyNet to be able to download and install most apps. There are a few who use the Certified status in the Play store (Netflix) and some that won't function if you don't pass SafetyNet (Android Pay).
Didgeridoohan said:
Busybox: There is no toggle like that (hasn't been for some time). There's a Busybox module in the Downloads section of the Manager. Use that.
The failed ctsProfile check doesn't have anything to do with Busybox. Take a look here for more info on passing SafetyNet: https://forum.xda-developers.com/apps/magisk/guide-magisk-troubleshooting-t3641417
You don't need to pass SafetyNet to be able to download and install most apps. There are a few who use the Certified status in the Play store (Netflix) and some that won't function if you don't pass SafetyNet (Android Pay).
Click to expand...
Click to collapse
Thanks for responding and a celearly anwer Didgeridoohan
I will check that link about safetynet. Thanks
Anyway, I guess there are no point/neccesary installing Busybox module in Magisk when I already have Bysybox Pro installed on my device?
I have noticed that my Netflix will not load so hope I got that safetyNet up running in Magisk.
Regards
Rolf
[email protected] said:
Thanks for responding and a celearly anwer Didgeridoohan
I will check that link about safetynet. Thanks
Anyway, I guess there are no point/neccesary installing Busybox module in Magisk when I already have Bysybox Pro installed on my device?
I have noticed that my Netflix will not load so hope I got that safetyNet up running in Magisk.
Regards
Rolf
Click to expand...
Click to collapse
SafetyNet Fixed by doing this:
https://forum.xda-developers.com/apps/magisk/xiaomi-safetynet-fix-t3600431
BUT, still Netflix Error/not compatibel vs my device when download from Google Play. Got a message in that error message downloading Netflik from Netflix's site. Doing that..and Netflix up running
Thanks again Didgeridoohan for pointing me in the right direction
Regards
Rolf
I thought with the newest version of magisk, busy box is integrated already? I ran a test and it states I have it and it's active but certain apks tell me it's not present in device when installing. Should I setup module in magisk also? Don't want to double stack anything.
SlimPickens89 said:
I thought with the newest version of magisk, busy box is integrated already? I ran a test and it states I have it and it's active but certain apks tell me it's not present in device when installing. Should I setup module in magisk also? Don't want to double stack anything.
Click to expand...
Click to collapse
There is a busybox integrated into Magisk, for use by Magisk...
If you wan't busybox for the rest of your system, install the busybox module from the Magisk repo.
Didgeridoohan;73790549There's a Busybox module in the Downloads section of the Manager. Use that.
The failed ctsProfile check doesn't have anything to do with Busybox. Take a look here for more info on passing SafetyNet: [url said:
https://forum.xda-developers.com/apps/magisk/guide-magisk-troubleshooting-t3641417[/url]
You don't need to pass SafetyNet to be able to download and install most apps. There are a few who use the Certified status in the Play store (Netflix) and some that won't function if you don't pass SafetyNet (Android Pay).
Click to expand...
Click to collapse
Actually, in my case, the ctsProfile check does correlate with the busybox module. I am trying a new ROM on my galaxy s7 which doesn't contain a busybox, thus Viper4Android does not want to install its driver (and Busybox checker says "no"). ctsProfile did pass. After I downloaded the BusyBox module in Magisk Manager, cts doesn't pass, but basic integrity still does.
Peter.1997 said:
Actually, in my case, the ctsProfile check does correlate with the busybox module. I am trying a new ROM on my galaxy s7 which doesn't contain a busybox, thus Viper4Android does not want to install its driver (and Busybox checker says "no"). ctsProfile did pass. After I downloaded the BusyBox module in Magisk Manager, cts doesn't pass, but basic integrity still does.
Click to expand...
Click to collapse
If you only need busybox for Viper4Android, try the awesome ViPER4Android FX module (available in the Magisk repo). It doesn't need busybox...
Yup, only vor Viper. I already installed this module (and also the seperate one for Magisk 14.0+), but the Viper app always wants to install the driver on its own again..
Peter.1997 said:
Yup, only vor Viper. I already installed this module (and also the seperate one for Magisk 14.0+), but the Viper app always wants to install the driver on its own again..
Click to expand...
Click to collapse
Judging from your two posts, I'd say something's wrong with your Magisk installation... Magisk log and magisk_debug.log (from /data) might show something interesting.
Jumping onto that thread as it seems to fit quite well.
If a Moderator feels the need for a new topic pls let me know.
Facts:
Android 6 with Magisk 12 and SuperSu 2.79/2.82 and Xposed 87 running fine for quite a time.
Only Magisk manager was updated inbetween a few times
Now with a few free days after christmas and all the new releases out, i went for an update session.
- cleaned supersu with 0smosis unSu
- TWRP flashed clean stock boot.img
- TWRP flashed Magisk 15.1. All good and seemed to work
Then i wanted to update to xposed v89.
The installer failed with "updater process ended with error 1"
Dug into the TWRP-Logs and found the following:
Code:
/tmp/updater: line 91: /data/adb/magisk/busybox: not found
! Unable to extract zip file!
Now it was time to inspect the Magisk-Log:
Code:
12-29 23:56:59.699 269 269 I Magisk : * Setting up internal busybox
12-29 23:56:59.700 273 273 E Magisk : execvpe failed with 2: No such file or directory
Interesting.
As i knew about the changes from 12->15 regarding internal busybox, i cleaned the Magisk Manager Cache as recommended somewhere
and wanted to go for the official module "Busybox for Android NDK 1.27.2".
After installing it showed up as "not available - please reboot"
I went for the logs again and found the following:
Code:
Installing Busybox_for_Android_NDK-1.27.2.zip
Busybox Installer Script by osm0sis @ xda-developers
Mounting...
Extracting files...
update-binary[109]: unzip: not found
Also a quick check of /data/magisk showed no signs of busybox.
Any hints where to dig deeper to get busybox (and unzipping in TWRP back ??
Time, a few Skills and Tools available.
Didnt attach the logs, cause those above are imho the only relevant facts.
If somebody needs sth specific to rule sth out, i will of course happily deliver them.
Thank everybody and keep up the good work !!
Sebastl said:
Jumping onto that thread as it seems to fit quite well.
If a Moderator feels the need for a new topic pls let me know.
Facts:
Android 6 with Magisk 12 and SuperSu 2.79/2.82 and Xposed 87 running fine for quite a time.
Only Magisk manager was updated inbetween a few times
Now with a few free days after christmas and all the new releases out, i went for an update session.
- cleaned supersu with 0smosis unSu
- TWRP flashed clean stock boot.img
- TWRP flashed Magisk 15.1. All good and seemed to work
Then i wanted to update to xposed v89.
The installer failed with "updater process ended with error 1"
Dug into the TWRP-Logs and found the following:
Code:
/tmp/updater: line 91: /data/adb/magisk/busybox: not found
! Unable to extract zip file!
Now it was time to inspect the Magisk-Log:
Code:
12-29 23:56:59.699 269 269 I Magisk : * Setting up internal busybox
12-29 23:56:59.700 273 273 E Magisk : execvpe failed with 2: No such file or directory
Interesting.
As i knew about the changes from 12->15 regarding internal busybox, i cleaned the Magisk Manager Cache as recommended somewhere
and wanted to go for the official module "Busybox for Android NDK 1.27.2".
After installing it showed up as "not available - please reboot"
I went for the logs again and found the following:
Code:
Installing Busybox_for_Android_NDK-1.27.2.zip
Busybox Installer Script by osm0sis @ xda-developers
Mounting...
Extracting files...
update-binary[109]: unzip: not found
Also a quick check of /data/magisk showed no signs of busybox.
Any hints where to dig deeper to get busybox (and unzipping in TWRP back ??
Time, a few Skills and Tools available.
Didnt attach the logs, cause those above are imho the only relevant facts.
If somebody needs sth specific to rule sth out, i will of course happily deliver them.
Thank everybody and keep up the good work !!
Click to expand...
Click to collapse
Sounds like your TWRP isn't up to the job... It's probably too old (info which would have been in the log ) or otherwise missing some features...
Updating TWRP or letting the Manager patch a boot image that you then flash manually are two possible solutions.
Thank you very much for the quick reply Didgeridoohan.
That is of course water on the mills of the "always include logs" - people. Apparently for a reason
TWRP Version is/was 3.02.
After you suggested patching the image from Magisk Manager, i tried that and got a quick and dirty "Failed".
But i realized that now the option "Direct Install (recommended)" was available.
It wasnt when i did the initial setup.
As i had nothing to loose, i tried that to reinstall and after the next reboot -
Bingo! Now the busybox binary is/was available and therefore the Busybox Module and consequently also Xposed respective everything which depends on unzipping/busybox works.
Strange - but somehow problem solved.
I didnt see anything in the TWRP changelogs from 3.02 up to 3.2.1 - but hey...
Hope that helps someone.
Greetings and a nice 2018 !

[BUG] MagiskHide does not work on Hanabank app. (strace log attached)

Hello, everyone.
Few days ago, I found Hanabank app (com.hanabank.ebk.channel.android.hananbank) detects Magisk hide. I ran strace against Hanabank app, and I got some suspicious openat(2) returns -EACCES and even some files are not filtered by Magisk Hide (returns file descriptor successfully)
Here are openat(2) calls which don't look good.
Code:
[pid 27855] openat(AT_FDCWD, "/sbin_orig/magisk", O_RDONLY|O_LARGEFILE) = 91
[pid 27855] openat(AT_FDCWD, "/dev/magisk/mirror/system", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] openat(AT_FDCWD, "/magisk", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 27855] fstatat64(AT_FDCWD, "99-magisk.sh", {st_mode=S_IFREG|0755, st_size=2011, ...}, 0) = 0
Full strace log of Hanabank app:
Code:
https://pastebin.com/BUiViAbK
I think they should return -ENOENT to pass that magisk detection routine.
I'm using Magisk v14.0
BTW, why Magisk Github issue tracker is disabled?
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
olivercervera said:
Having the same issue but with another app.
https://forum.xda-developers.com/showpost.php?p=73968022&postcount=19348
How did you run strace? I used strace -f -p PID-o /sdcard/strace.txt but no reference to Magisk is shown.
Click to expand...
Click to collapse
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Code:
while true; do
while ! ps | grep -q -i $1; do :; done;
ps | grep -i $1 | while read a b c; do
strace -e open -f -e trace=file,ptrace -p $b 2>&1;
done;
done
For example, if you saved this script as /sdcard/strace.sh, The procedure I take to attach strace to the app is;
1. use killall command to kill all app process. Android pre-forks app, so we need to kill that first.
2. run script using sh /sdcard/strace.sh <app_process_name>. This will attach strace to the app and redirects strace's stderr output to stdout.
2-1. Do whatever you want (use tee or just redirect it to file, etc..) with stdout stream.
3. Analyze collected result.
That's all.
perillamint said:
First, sorry for late reply. I was on vacation.
I used this script to attach strace to fresh app process.
Click to expand...
Click to collapse
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
olivercervera said:
Hi
Just now I realised that I responded in the other thread. However your script never worked
I ran the script in a shell with root permission using
Code:
sh /sdcard/strace.sh com.barclays.android.barclaysmobilebanking
Unfortunately this is what I get when I try to run the script
Code:
/sdcard/strace.sh[5]: syntax error: 'done' unexpected
What have I done wrong?
EDIT: I've done this test on another device, a Nexus 5X stock 7.1.2 + Magisk v14. If I run strace it is not found, I have installed busybox but nothing! WAT??? I'll test with the other device later which has strace (Nexus 5).
EDIT2: Nope, I get the same error on the device which has strace.
Click to expand...
Click to collapse
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
perillamint said:
Hmm, I used sh which included in LineageOS.... I think Android's default sh couldn't handle that script's syntax properly. Default sh is quite crippled compared to GNU/Linux's one (bash, zsh, etc..)
Could you try running this script using bash instead of sh? If you don't have bash on your Android system, this Magisk module could inject bash binary into your system. https://forum.xda-developers.com/apps/magisk/module-magisk-bash-shell-t3609988
Click to expand...
Click to collapse
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
olivercervera said:
Thanks for your suggestion. In the end I installed LOS on my test device and ran the script.
The funny thing is that I can't find a single reference to Magisk or Root...
The output is attached.
Click to expand...
Click to collapse
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Fif_ said:
Indeed. However the app dies shortly after reading the two property files:
/dev/__properties__/ubject_r:default_prop:s0
/dev/__properties__/ubject_r:logd_prop:s0
I would try to get the output of getprop with and without Magisk installed and see if there are any properties being leaked that could give a hint that Magisk is installed.
Click to expand...
Click to collapse
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
olivercervera said:
You are the man! You definitely spotted the method being used by this app. Thanks.
I had to leave LOS ROM because even without Magisk it would not run, so I installed another ROM. I verified the app runs, got props, installed Magisk and got new props.
There are all changes:
1. [ro.build.selinux]: [1] is changed to [ro.build.selinux]: [0] when Magisk is installed
2. [ro.runtime.firstboot] shows different values but I believe it's fine
3. The following are entirely missing when Magisk is installed
[selinux.reload_policy]: [1]
[service.adb.tcp.port]: [-1]
[sys.retaildemo.enabled]: [0]
[init.svc.clear-bcb]: [stopped]
I have the feeling that [ro.build.selinux]: [1] and [selinux.reload_policy]: [1] are key elements and Magisk is not hiding them properly. I would suppose these elements show that SELinux is not enforcing anymore. I tried changing these values, but at reboot they don't change.
I know obviously Magisk does not enforce SELinux, but hides that got set to Permissive. System thinks that is enforcing, and using command getenforce i get as a result Enforcing, but Barclays (and possibly other apps) are reading that SELinux is not actually being enforced.
Interesting. Will post these finding in the main thread.
Do you have anything to add that could be helpful?
Click to expand...
Click to collapse
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Fif_ said:
If you use "resetprop ro.build.selinux 1" in a root shell, does the app start?
That will disappear at reboot of course, but it's easy to add to /magisk/.core/props to make it stick until Magisk is fixed.
Now, I don't think Magisk disables SELinux, why do you have it disabled?
Click to expand...
Click to collapse
Yes, Magisk changes SELinux to Permissive and hides this status.
Although my findings would be legit and those props should be hidden, in my Bank's case is not the issue.
I have discovered that if I uninstall Magisk Manager (but not uninstall root, just the app) my bank app works. However it does not work if I use "Hide Magisk".
Since the hidden app is called Unhide Magisk Manager, probably this app is looking for Magisk keyword.
For whatever reason when I run strace the app does crash and always reports that message (crash after reading prop).
I will post these findings in the support thread.
I don't know how to do it, but I would recompile Magisk Manager changing package ID and name, in theory should work.
I am having the same issue on my Galaxy S8 with the Barclays Mobile Banking app. I have tried using every option in Magisk but nothing seems to be working. In fact, the Barclays app actually asked for SU permissions when I first ran it which is odd to me.
Did anyone find a workaround for this? I read the posts in this thread but I am not savvy enough to understand all the codes and technical information written, so please excuse my ignorance in the matter. Is reverting to a completely stock ROM my only option at this point? I really need to start using this application as soon as possible.
Thank you.
Quick update guys!
The great Topjohnwu is working on a new update that includes a key feature for us: reinstalling Magisk Manager with a random package ID.
These changes are in his Github Repo. On this thread you can find unofficial versions of Magisk compiled from Github.
I have tested Magisk-v14.4-20171102-091345.zip: HELL IT WORKS!
In Magisk Manager: go to settings and you will have the option to reinstall Magisk Manager with a random package ID
Install Barclays from Play Store
Add Barclays to Magisk Hide
Open Barclays, it will behave correctly and will work!
This solves my problem, so I will be able to use the latest version of this app very soon (will wait for public beta).
On a side note, this update should als hide /Magisk partition, which was detected by @perillamint banking app, so might be worth trying it.
I have installed this Hanabank app (hopefully is the right one!) and added it to Magisk Hide. The app opens up correctly but I can't understand anything. I see some stuff moving on screen and on the upper left I see a lock icon (to login?)
If I don't add the app to Magisk Hide it shows an incomprehensible message and closes.
Hope you find this helpful.
Please see photos below.
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
Yes, a fresh start from a stock Nexus 5X I have at work. I did not register the app with my account during the test, all I needed to do was to get to the Welcome Screen: if Barclays detects root you don't get anything. Probably you need to reinstall Barclays App.
Once Magisk Manager is hidden with the new ID you can't go back to the original: you don't have any option. So if you still have it means there is a problem.
mundodisco8 said:
@olivercervera
What are your exact steps? I installed the latest version from this thread, and added barclays to magisk hide, and then in settings, clicked in hide magisk manager. When I clicked in unhide magisk manager, it asked me for root permision for something with a random name, so I guess it worked, but I couldn't get the Barclays app to run. Is that a fresh install of your phone? I remember that if it detected your root once, it would be blocked forever, until you get a new ID. Did you call barclays to get your app working again?
On top of that, I clicked on hide magisk manager again, and now I can't unhide it, the app does nothing when I click on it... :crying:
Thanks for your help in any case, and thanks for the tip regading the new functionality!
Click to expand...
Click to collapse
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Didgeridoohan said:
He's talking about a new Hide Manager feature that is much improved from the current implementation. It's not yet available officially, so you'll have to build yourself from the GitHub repo, or download from the unofficial snapshots thread that @olivercervera linked.
Click to expand...
Click to collapse
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
olivercervera said:
I didn't even consider the possibility he didn't realise I was using the unofficial/self compiled version... I even linked it!!!
Thanks
Click to expand...
Click to collapse
It's actually quite apparent that he's talking about the current implementation, since the updated, unreleased, feature doesn't have anything named "unhide" to click.
With the new implementation you unhide the hidden Manager by reinstalling and opening it.
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
mundodisco8 said:
Hi guys,
Yes, I installed the latest version, following the link OliverCervera linked. I hid it using the usual method of going to options/hide magisk, and I got a new app, as usual. clicking on it to unhide prompted for root permissions for an app with a random ID (as expected). The next time, I wasn't that lucky, and the whole thing crashed. Anyway, it's a nightly, so I won't complain, and I will check it later, as sadly I don't have time to do it now.
In any case, my app was marked, because I opened it with the official release of Magisk and it detected root, and once it does, it keeps the "this phone is rooted" status until you do a factory reset. I think you can call them to tell them that it was a mistake, and they can unlock it but I'm not 100% sure about this last point.
Thanks for the work, anyway!
Click to expand...
Click to collapse
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Didgeridoohan said:
If you install the correct version of the Manager you won't have an unhide app after hiding the Manager. That's changed...
Your problem is probably that the unofficial Manager has a different signature, so it won't install over the official Manager. Solution: Uninstall the official Manager before installing the unofficial snapshot.
Have you tried just clearing all data for the app after it detects root? That usually works for an app that "remembers" root. But, I've never tested the app in question so...
Click to expand...
Click to collapse
I think they keep your signature and store it on their servers. Barclays is really focused when it comes to not allowing people to use their app on rooted phones, but as I said, I would need to double check. And I kind of get why they do it, as they went all the way to avoid to pay Android to use Android Pay and they developed their own platform to pay over NFC (not judging here, it's up to them if they think it's the best solution). At the end of the day, root is exploited through a security flaw, and "the bad guys could get your moneys", and even though they could display a message at launch that says "hey, you are rooted, the bad guys could get AAAALLL of the moneys, it's up to you" people would still want to sue them if they mess up... but it's funny that they allow you to get into the online banking web on a rooted phone, where the bad guys could see your password...

Many app detecting root even saftynet pass

I am using oneplus 6 with latest oos magisk 19.3
Banking app like sbi anywhere, icici detecting root can't use upi.
Also adadhar app detecting root event safety net pass already done magisk hide
Can some help me there or use other versions of magisk
Please help
android_smater said:
I am using oneplus 6 with latest oos magisk 19.3
Banking app like sbi anywhere, icici detecting root can't use upi.
Also adadhar app detecting root event safety net pass already done magisk hide
Can some help me there or use other versions of magisk
Please help
Click to expand...
Click to collapse
Use Hide Magisk manager in settings or Core only mode.
Sent from my MI 8 using Tapatalk
Dexer125 said:
Use Hide Magisk manager in settings or Core only mode.
Sent from my MI 8 using Tapatalk
Click to expand...
Click to collapse
Didn't work either. I guess will have to wait for an update. I have tried so far:
Settings > Magisk Core Only More - On
Magisk Hide - Check against the banking app
Clear app cache
Reboot
Also - Magisk v19.3, Magisk Manager v7.3.1(222)
gagan007 said:
Didn't work either. I guess will have to wait for an update. I have tried so far:
Settings > Magisk Core Only More - On
Magisk Hide - Check against the banking app
Clear app cache
Reboot
Also - Magisk v19.3, Magisk Manager v7.3.1(222)
Click to expand...
Click to collapse
disable developer mode?
and you need to hide magisk manager itself.not just magisk hide.
Try executing
Code:
su -c chmod 000 /proc/net/unix
in a terminal. Several banking apps now use a very stupid and shaky root detection heuristic that is circumvented in this way.
(see https://github.com/Ingan121/UDSBypass).
A banking app on my phone (keytradebank, belgian bank) worked fine with Magisk Hide but after an update stopped working.
Disabling read access to /proc/net/unix did the trick for me!
Looked it up, this rootbeerFresh code is really brain-dead, even the presence of busybox will make isRooted() return true
No concern for false positives at all.
el_perro said:
A banking app on my phone (keytradebank, belgian bank) worked fine with Magisk Hide but after an update stopped working.
Disabling read access to /proc/net/unix did the trick for me!
Looked it up, this rootbeerFresh code is really brain-dead, even the presence of busybox will make isRooted() return true
No concern for false positives at all.
Click to expand...
Click to collapse
Remember that app says it COULD be root.
If anyone is paying attention to it yet.
Also
https://www.didgeridoohan.com/magis...and_other_apps_wont_install_or_doesnt_show_up
Busybox
Some apps detect Busybox and see this as a sign of your device being compromised (rooted). Magisk should be able to hide any Busybox installed as a Magisk module. osm0sis has a great Busybox module available in the Magisk repo (install from the Magisk Manager, under "Downloads").
Figuring out if an app has dependencies, looks for "sensitive props", Busybox, etc
It can be tricky figuring out if an app is dependent on another app or process for detecting root, expects certain prop values, doesn't like Busybox or whatever is triggering a root warning within the app. Apart from trying one thing/prop at a time, finding this out could mean you have to decompile the apk to look at the source code (use search), grab a logcat when the app is detecting root, etc.
Detecting apps requiring root
There are apps that detect known apps that require root and refuse to work properly or even start if that is the case. Usual suspects include (but aren't limited to) busybox apps, Xposed installer, root hiding apps, etc.
This can be worked around by uninstalling or possibly freezing (Titanium Backup can do this, among others) the offending root app when you need to use an app detecting root apps and reinstalling/unfreezing it afterwards. Cumbersome, but it might work. There are also some Xposed modules that can hide apps from other apps, but having Xposed installed might cause other issues with tampering detection...
@mrspeccy Thank you for pointing out that workaround. Works for me too for the Keytrade app
el_perro said:
A banking app on my phone (keytradebank, belgian bank) worked fine with Magisk Hide but after an update stopped working.
Disabling read access to /proc/net/unix did the trick for me!
Looked it up, this rootbeerFresh code is really brain-dead, even the presence of busybox will make isRooted() return true
No concern for false positives at all.
Click to expand...
Click to collapse
How did you do that?
su -c chmod 000 /proc/net/unix didn't work for me.
robuser007 said:
How did you do that?
su -c chmod 000 /proc/net/unix didn't work for me.
Click to expand...
Click to collapse
yes, in a terminal on your phone or using 'adb shell'
be aware it's not a permanent fix, a reboot will restore the old permissions on /proc/net/unix
so you have to remove read access after every reboot.
Quite clumsy.
To make this easier on the go, I installed termux, created in the home directory a small file 'hide' with the one-liner,
Code:
su -c chmod 440 /proc/net/unix
Note: 000 works just as well, but 440 is closer to the original permission and works too.
so after a reboot i open termux terminal and type the command
Code:
. hide
gagan007 said:
Didn't work either. I guess will have to wait for an update. I have tried so far:
Settings > Magisk Core Only More - On
Magisk Hide - Check against the banking app
Clear app cache
Reboot
Also - Magisk v19.3, Magisk Manager v7.3.1(222)
Click to expand...
Click to collapse
Thanks it work...
Got that app working successfully today. Hiding Magisk itself worked I guess. I locked bootloader also.
android_smater said:
I am using oneplus 6 with latest oos magisk 19.3
Banking app like sbi anywhere, icici detecting root can't use upi.
Also adadhar app detecting root event safety net pass already done magisk hide
Can some help me there or use other versions of magisk
Please help
Click to expand...
Click to collapse
Try these...
1. From your magisk, install these 2 modules: Riru - Core, and Riru - EdXposed (Sandbox or Yahfa is okay]
2. Reboot your device to activate both modules.
3. Install Xposed Installer APK by DVDandroid. You can get it here: https://dl-xda.xposed.info/modules/d...v33_36570c.apk
4. Reboot to activate the Xposed Installer app
5. Inside Xposed Installer app, go to downloads and install the HiddenCore Module.
6. Reboot and go back to Magisk, and hide.
7. Test to see if everything is now okay.
wittymav said:
Try these...
1. From your magisk, install these 2 modules: Riru - Core, and Riru - EdXposed (Sandbox or Yahfa is okay]
2. Reboot your device to activate both modules.
3. Install Xposed Installer APK by DVDandroid. You can get it here: https://dl-xda.xposed.info/modules/d...v33_36570c.apk
4. Reboot to activate the Xposed Installer app
5. Inside Xposed Installer app, go to downloads and install the HiddenCore Module.
6. Reboot and go back to Magisk, and hide.
7. Test to see if everything is now okay.
Click to expand...
Click to collapse
Nope! It Doesn't Work With SBI YONO Or BHIM.
My Cofidis app also keeps detecting root.
Have latest version magisk, latest version of magiskmanager and renamed it. Magisk is hidding. App is in magisk hide list.
chmod suggestion did not work
Running latest version of lineageos on my htc u11. I think the issues started when I installed the latest build (11/08).
Any suggestions to fix this?
Same issue here with this app:
https://play.google.com/store/apps/details?id=eu.mobeepass.nfcniceticket
Is there any way to troubleshoot what triggers the root detection?
Ps24u said:
Same issue here with this app:
https://play.google.com/store/apps/details?id=eu.mobeepass.nfcniceticket
Is there any way to troubleshoot what triggers the root detection?
Click to expand...
Click to collapse
Using my app VD INFOS you can see every detectable thing. (Root/Magisk/Xposed/Riru/and others.)
And then you can fix what needs to be fixed.
[APP][v1.10] VD Infos (Package: com.vitaodoidao.vdinfos)
(Para quem fala PORTUGUÊS, o próximo post está totalmente traduzido !) VD Infos v1.10 As we all know, Android is a super powerful and super versatile operating system. What nobody tells you is that all your personal details and confidential...
forum.xda-developers.com

Categories

Resources