Firefds / FirefdsKit

Xposed module for Samsung devices (Android 6, 7, 8, 9, 10, 11, 12, 13, 14)
138 stars 17 forks source link

ActivityNotFoundException: Reboot to recovery does not work #15

Closed binarynoise closed 3 years ago

binarynoise commented 3 years ago

When clicking on the button, SystemUI always crashes:

android.content.ActivityNotFoundException: Unable to find explicit activity class {sb.firefds.q.firefdskit/sb.firefds.q.firefdskit.activities.WanamRebootActivity}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2074)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1720)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1000)
    at android.app.ContextImpl.startActivity(ContextImpl.java:971)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:389)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:389)
    at sb.firefds.q.firefdskit.actionViewModels.RestartActionViewModel.reboot(RestartActionViewModel.java:87)
    at sb.firefds.q.firefdskit.actionViewModels.RestartActionViewModel.onPress(RestartActionViewModel.java:69)
    at com.samsung.android.globalactions.presentation.view.GlobalActionsContentItemView.lambda$setViewAttrs$4$GlobalActionsContentItemView(GlobalActionsContentItemView.java:143)
    at com.samsung.android.globalactions.presentation.view.-$$Lambda$GlobalActionsContentItemView$Ph46jXgNd3y2rgt6J5Na8kAd5lw.onClick(Unknown Source:2)
    at android.view.View.performClick(View.java:7862)
    at android.view.View.performClickInternal(View.java:7831)
    at android.view.View.access$3600(View.java:879)
    at android.view.View$PerformClick.run(View.java:29359)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

Using Android Q, App version stable 6

Firefds commented 3 years ago

@binarynoise what device and what rom are you using? Also, please provide EdXposed Module and Verbose logs as well after you perform the action.

binarynoise commented 3 years ago

@Firefds Device: Samsung galaxy s10e (sm-g970f) Rom: One UI 2.5, Android 10 Riru 23.1, EdXposed v0.5.1.4 4655 SandHook

binarynoise commented 3 years ago

EdXposed_Verbose_20210106_212601.txt

Firefds commented 3 years ago

@binarynoise I need EdXposed module logs as well please

binarynoise commented 3 years ago

EdXposed_Modules_20210106_214233.txt

binarynoise commented 3 years ago

Before I forget: the crash is uncaught, I use the Xposed module Scoop to capture those crashes

Firefds commented 3 years ago

I see the error in the log you provided, but that's actually a bug in the fallback reboot action. I don't understand why the main reboot action fails. Please try this one, added some logging, you will need to use Scoop again. (I didn't fix the fallback action, just added logs to main action)

https://drive.google.com/file/d/1dua93fkgBirzRX1OFN_mlpLvx23xGiys/view?usp=sharing

BTW, are you using any app of exposed module that checks/changes/disables app permissions?

binarynoise commented 3 years ago

New version didn't work either. EdXposed_Verbose_20210107_195713.txt EdXposed_Modules_20210107_195700.txt

android.content.ActivityNotFoundException: Unable to find explicit activity class {sb.firefds.q.firefdskit/sb.firefds.q.firefdskit.activities.WanamRebootActivity}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2074)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1720)
    at android.app.ContextImpl.startActivity(ContextImpl.java:1000)
    at android.app.ContextImpl.startActivity(ContextImpl.java:971)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:389)
    at android.content.ContextWrapper.startActivity(ContextWrapper.java:389)
    at sb.firefds.q.firefdskit.actionViewModels.RestartActionViewModel.reboot(RestartActionViewModel.java:89)
    at sb.firefds.q.firefdskit.actionViewModels.RestartActionViewModel.onPress(RestartActionViewModel.java:70)
    at com.samsung.android.globalactions.presentation.view.GlobalActionsContentItemView.lambda$setViewAttrs$4$GlobalActionsContentItemView(GlobalActionsContentItemView.java:143)
    at com.samsung.android.globalactions.presentation.view.-$$Lambda$GlobalActionsContentItemView$Ph46jXgNd3y2rgt6J5Na8kAd5lw.onClick(Unknown Source:2)
    at android.view.View.performClick(View.java:7862)
    at android.view.View.performClickInternal(View.java:7831)
    at android.view.View.access$3600(View.java:879)
    at android.view.View$PerformClick.run(View.java:29359)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
Firefds commented 3 years ago

@binarynoise I wrote it won't work, I just added logging to check why the main reboot action doesn't work. Could you send a full logcat, and not just the error part?

Also, please answer this question - are you using any app of exposed module that checks/changes/disables app permissions?

binarynoise commented 3 years ago

logcat.txt

I am not aware of permission changing modules. I also disabled every other module and it didn't work either.

Firefds commented 3 years ago

@binarynoise as I figured, seems like SystemUI isn't getting the reboot permissions. I don't know why, but this appears to happen only with your device.

Can you try this - Disable all xposed modules. Uninstall firefds kit Reboot Install firefds kit Activate firefds kit Reboot Enable the advanced power menu Reboot + Get logcat from beginning of reboot using the following method -

This requires that you have adb set up on your PC and connected the device via USB. Assuming you're experiencing a boot loop or system crashes, turn off the device and execute adb logcat -v time > logcat.txt in command line window. Then turn on the device and wait a few minutes. Then press Ctrl + C in the command line window to stop capturing. If you're just having issues with an app, it's enough to execute the logcat command, reproduce the issue and then press Ctrl + C.

binarynoise commented 3 years ago

logcat.txt hth

Firefds commented 3 years ago

Thank you. Unfortunately, I don't see any issue besides that SystemUI isn't getting the reboot permission and the fallback doesn't work. Please try this version - https://drive.google.com/open?id=1dua93fkgBirzRX1OFN_mlpLvx23xGiys This has the fallback fixed, but if you are having permission issues, I supposed it won't help as well..

Also, Please make sure you are not using black list or whitelists. and if you are using whitelists, make sure you whitelist everything needed:

Android System - android Call - com.samsung.android.incallui Camera - com.sec.android.app.camera Contacts - com.samsung.android.contacts Email - com.samsung.android.email.provider Firefds Kit - sb.firefds.q.firefdskit Messaging - com.samsung.android.messaging MTP Application - com.samsung.android.MtpApplication NFC - com.android.nfc One UI Home - com.sec.android.app.launcher Settings - com.android.settings Software Update - com.wssyncmldm System UI - com.android.systemui

binarynoise commented 3 years ago

I use a blacklist, but I'll try without.

binarynoise commented 3 years ago

logcat.txt

SystemUI didn't crash this time, instead the reboot activity shows up.

Firefds commented 3 years ago

Ok, please try this again - https://drive.google.com/open?id=1dua93fkgBirzRX1OFN_mlpLvx23xGiys

binarynoise commented 3 years ago

Same behavior logcat.txt

Firefds commented 3 years ago

Yep. Something is blocking the reboot permissions from being granted on your device to both SystemUI and Firefds Kit. Unfortunately, this seems to be a specific issue on your device which I can't reproduce.

I'm sorry I couldn't fix this for you, but thank you for reporting and testing the versions I did send.

Firefds commented 3 years ago

@binarynoise while I still think this is very rare bug that happens only for a handful of users and probably has something to do with a faulty xposed setup or conflicting modules, I've added an extreme workaround under System --> Power Menu Options --> Override Reboot Permissions. This will override reboot permission checks for all apps, but will make the reboot to recovery option work. Please try this version - https://drive.google.com/open?id=1l5wqZ7_0Ggksc8uhmmnr0HkN8EyBYTnS

Firefds commented 3 years ago

@binarynoise can you please provide Xposed logs after trying to perform the reboot with the new option?

binarynoise commented 3 years ago

logcat.txt I forgot to enable the option, now I tried again, but it still didn't work.

Thank you for your patience

Firefds commented 3 years ago

logcat.txt I forgot to enable the option, now I tried again, but it still didn't work.

Thank you for your patience

Thank you, Can you provide both module and verbose xposed logsvas well?

binarynoise commented 3 years ago

Sure: EdXposed_Modules_20210120_180820.txt EdXposed_Verbose_20210120_180824.txt

I also disabled all the other modules

Firefds commented 3 years ago

@binarynoise I just need to ask - have you rebooted the device after enabling the new option? If not, please try that. If yes, it seems that xposed is not hooking your android package. please try this:

  1. In EdXposed Manager, enter Settings
  2. Under Framework, enable whitelisting
  3. Enter the whitelisting menu
  4. Search for the android package and enable it
  5. Go back to Settings and disable whitelisting
  6. Reboot the device and try again

If that also fails, please try to enable whitelisting again and whitelisting all the following apps:

binarynoise commented 3 years ago

@Firefds I did what you suggested, event reinstalled xposed, but it didn't help. I made myself a small module to log which packages are hooked but the android process won't show up, the android package can't be hooked. Seems my installation is somehow broken. I guess I'll have to live with that as I don't want to start over.

Firefds commented 3 years ago

@binarynoise that's indeed weird.. I'd suggest heading over to the EdXposed GitHub, maybe they will have a solution for you.

Firefds commented 3 years ago

@binarynoise another thing that may help is installing the debug version of EdXposed (https://github.com/ElderDrivers/EdXposed/releases) which may show more logs

binarynoise commented 3 years ago

@binarynoise another thing that may help is installing the debug version of EdXposed (ElderDrivers/EdXposed/releases) which may show more logs

I already used the debug versions

@binarynoise that's indeed weird.. I'd suggest heading over to the EdXposed GitHub, maybe they will have a solution for you.

I guess, I'll try that. Thanks for the idea.

binarynoise commented 3 years ago

Hi, I've got some good news and some bad news: The bad news is that I bricked my phone while reinstalling EdXposed, the good news is that after I reflashed the firware and reinstalled EdXposed, I can now hook the android package and everything works now!