topjohnwu / Magisk

The Magic Mask for Android
GNU General Public License v3.0
48.27k stars 12.32k forks source link

Fate/ Grand Order NA detects root #502

Closed istir closed 6 years ago

istir commented 6 years ago

Few days ago FGO NA rolled another update which prevents users with some custom ROMs (like AOSP Extended) and also all rooted users from playing the game. Magisk manager is repackaged, Magisk Hide is also set up. On Pixel Experience (Android P) game works fine without magisk, but when magisk is flashed it works for few seconds and then crashes as if root was present.

kotori2 commented 6 years ago

513 same issue

ArbitraryFox commented 6 years ago

This happens because Adaway hosts are now detected on game launch even if you enable the systemless method in Magisk. After removing it, the game will boot normally but it still force closes in the loading segment. The only way to fix it is to remove magisk.

Edit: It's not the host file itself, it's detecting Magisk

kotori2 commented 6 years ago

@ArbitraryFox Why the hell they are checking hosts...

ArbitraryFox commented 6 years ago

@lijun0326 Probably because it's a known indicator of having root access at one point.

istir commented 6 years ago

I'm currently unrooted on android p but I have adaway hosts installed and game works fine so your explanation is wrong.

ArbitraryFox commented 6 years ago

@istir I'm on an old N ROM and I have tested this myself. But to give the benefit of the doubt, I will test it again with Magisk removed and will update this post. Thanks for the info anyhow.

Edit: Not host file, it's detecting Magisk

istir commented 6 years ago

@ArbitraryFox I'm not sure how it is on N but when I was using AOSP Extended Oreo on OnePlus 5 I couldn't run the game at all without Magisk and I haven't tried without modified hosts. Next day I flashed PixelExperience Pie and game works great after flashing fgo_patch.zip. I also installed Magisk and game opens but crashes around first "servant" loading screen (10 second in). After unrooting everything works flawlessly. I still have to root every few days because I have permissive kernel and Fire Emblem Heroes doesn't like that, but after I do what I want in FEH, unroot I can play FGO normally.

Try flashing fgo_patch.zip, it's from this thread on reddit. It changes kernel flag ro.debuggable to 0 and build.prop to ro.build.type=user.

It should work on any device but if something goes wrong it's not my fault 😃. But it can be very easily reverted by simply flashing ROM again or changing build.prop and flashing some kernel.

ArbitraryFox commented 6 years ago

@istir I know that patch, I automated all the changes in my kernel (that's how I had all root features on an unrooted ROM) but still no luck. Also, I can confirm that modified host file does not trigger detection. That means FGO is detecting Magisk functions from there.

11lb8oz commented 6 years ago

Lol

On Fri, Aug 31, 2018, 7:34 AM ArbitraryFox notifications@github.com wrote:

@istir https://github.com/istir I know that patch, I automated all the changes in my kernel (that's how I had all root features on an unrooted ROM) but still no luck. Also, I can confirm that modified host file does not trigger detection. That means FGO is detecting Magisk functions from there.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/topjohnwu/Magisk/issues/502#issuecomment-417683258, or mute the thread https://github.com/notifications/unsubscribe-auth/Af3pq37SfAAR739dpbHWuHCy0LSoQskOks5uWUlygaJpZM4WMWSm .

roseyhead commented 6 years ago

@istir if it makes your life easier you can 'trick' fgo into skipping the Magisk check by messing with your system time settings. If you set your time manually to somewhere in the future (say 2020) then open the game it'll be unable to connect to the server and ask you to retry. Then you swap out to settings, set the time back to current or just re-enable auto time sync, swap back to FGO and hit retry and it should let you in. I've been doing this the last week and a half, no issues even though I'm rooted. Its a bit of a pain in the ass but probably less so than doing a full root to play one game then full unroot to play another :)

istir commented 6 years ago

@roseyhead oh hell yeah, it works! I would never even consider thinking about changing date. Thanks bud, let's hope for a magisk update next!

11lb8oz commented 6 years ago

Whoa

On Fri, Aug 31, 2018, 18:07 istir notifications@github.com wrote:

@roseyhead https://github.com/roseyhead oh hell yeah, it works! I would never even consider thinking about changing date. Thanks bud, let's hope for a magisk update next!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/topjohnwu/Magisk/issues/502#issuecomment-417822090, or mute the thread https://github.com/notifications/unsubscribe-auth/Af3pq7B2-qfGkloeQvrRUVP_7bm2Kujkks5uWd3VgaJpZM4WMWSm .

istir commented 6 years ago

Well looks like 17.1 didn't fix it either. Good thing @roseyhead fix works

Ricardo1991 commented 6 years ago

17.1 does not work because nothing was done to make it work. The dev said he would look into it. FGO added some new library that can detect it, its unrelated to what Magisk did before with safety net

hparadiz commented 5 years ago

Still broken on 19.3

Figured I'd bump this for visibility.

The time thing didn't work either. Running a custom Pie ROM on a Galaxy S10+

squaresmile commented 5 years ago

Still broken on 19.3

It's not broken on 19.3. Definitely works on mine and many others' phones.

a custom Pie ROM

Depending on the custom ROM, FGO might detects it. Make sure you look up the right error code.

reconman commented 5 years ago

@hparadiz Works fine on my OnePlus 6 on Magisk 19.3.

hparadiz commented 5 years ago

It's error code 61

reconman commented 5 years ago

@hparadiz Have you:

  1. Changed the Manager's app name in the settings?
  2. Activated Magisk Hide for FGO?
  3. Disabled Developer Mode in Android?
hparadiz commented 5 years ago

Because of the really weird way that root works on the Galaxy 10 devices Magisk is actually patched into the recovery partition so I'm not sure if I can mess with Manager.

Link here for the curious: https://forum.xda-developers.com/galaxy-s10/development/recovery-twrp-3-3-0-galaxy-s10-exynos-t3924856

Not really sure what the right approach here is. I'll play with it though. Thanks for confirming that it works though.

hparadiz commented 5 years ago

Okay yea trying to hide the manager's app name in settings reinstalls Manager with a random AppID but I can't remove the existing one because it's flashed to recovery and then linked to the system partition. ¯\_(ツ)_/¯

ArbitraryFox commented 5 years ago

@hparadiz Check your build.prop, make sure ro.build.type= user and not userdebug.

Did you enable magisk manager repackage? Magisk hide google services framework and play store too.

Have you tried this? https://www.google.com/amp/s/amp.reddit.com/r/grandorder/comments/6kcuih/guide_to_play_fgo_on_unrooted_lineageos/

I've been running fgo on a pie rom, nothing funky going on.

Edit: @hparadiz open a new issue with that recovery problem highlighted.

hparadiz commented 5 years ago

I got it working.

The way the Galaxy S10+ is rooted requires flashing Magisk to recovery so when Magisk hides itself it successfully installs a copy of itself in system but fails to remove the old one. I manually removed the old one with root terminal and also had to remove the /data/data directory. Fate Go and Pokemon Go both work now. Issue was figuring out all the locations to remove magisk manager.

Thanks everyone.

image

david8557 commented 2 years ago

manually removed the old one

Hi, can you tell me how to do this? "manually removed the old one" Thank you!