Skip to content

[BUG] Use new API instead of MODE_WORLD_READABLE implementation #50

@wwxiaoqi

Description

@wwxiaoqi

Describe the bug
In higher system versions, Context.MODE_WORLD_READABLE has been deprecated. Although EdXposed has provided special support for this, if users employ a combination like KernelSU + LSposed, it inevitably leads to a SecurityException being thrown for the mode. It is recommended to use the new version of the API as a replacement for it.

Device:

  • Device: Galaxy A53
  • Chipset: Exynos
  • Model: SM-A5360
  • KernelSU: GKI-5.10.198-android12
  • ZygiskNext: 1.1.0-330-a1b0e69-release
  • LSposed: Zygisk-LSposed-1.9.2(0724)

Xposed or Logcat logs

[ 2024-08-13T17:10:33.142     1000:  1300:  1300 I/LSPosed-Bridge  ] FFK: Xposed cannot read Firefds Kit preferences!
[ 2024-08-13T17:10:38.808     1000:  1300:  1300 I/LSPosed-Bridge  ] FFK: Xposed cannot read Firefds Kit preferences!
[ 2024-08-13T17:10:38.937     1000:  1300:  1300 I/LSPosed-Bridge  ] FFK: Xposed cannot read Firefds Kit preferences!
[ 2024-08-13T17:10:40.268     1000:  1300:  1300 I/LSPosed-Bridge  ] FFK: Xposed cannot read Firefds Kit preferences!
[ 2024-08-13T17:11:21.375    10353:  6359:  6359 E/AndroidRuntime  ] FATAL EXCEPTION: main
Process: sb.firefds.u.firefdskit, PID: 6359
java.lang.RuntimeException: Unable to start activity ComponentInfo{sb.firefds.u.firefdskit/sb.firefds.u.firefdskit.FirefdsKitActivity}: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4164)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8919)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ContextImpl.checkMode(ContextImpl.java:3737)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:612)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:602)
	at sb.firefds.u.firefdskit.FirefdsKitActivity.attachBaseContext(Unknown Source:15)
	at android.app.Activity.attach(Activity.java:8827)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4096)
	... 12 more
[ 2024-08-13T17:11:23.135    10353:  6796:  6796 E/AndroidRuntime  ] FATAL EXCEPTION: main
Process: sb.firefds.u.firefdskit, PID: 6796
java.lang.RuntimeException: Unable to start activity ComponentInfo{sb.firefds.u.firefdskit/sb.firefds.u.firefdskit.FirefdsKitActivity}: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4164)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8919)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ContextImpl.checkMode(ContextImpl.java:3737)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:612)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:602)
	at sb.firefds.u.firefdskit.FirefdsKitActivity.attachBaseContext(Unknown Source:15)
	at android.app.Activity.attach(Activity.java:8827)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4096)
	... 12 more
[ 2024-08-13T17:11:24.409    10353:  7062:  7062 E/AndroidRuntime  ] FATAL EXCEPTION: main
Process: sb.firefds.u.firefdskit, PID: 7062
java.lang.RuntimeException: Unable to start activity ComponentInfo{sb.firefds.u.firefdskit/sb.firefds.u.firefdskit.FirefdsKitActivity}: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4164)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8919)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ContextImpl.checkMode(ContextImpl.java:3737)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:612)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:602)
	at sb.firefds.u.firefdskit.FirefdsKitActivity.attachBaseContext(Unknown Source:15)
	at android.app.Activity.attach(Activity.java:8827)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4096)
	... 12 more
[ 2024-08-13T17:11:35.174    10353:  8635:  8635 E/AndroidRuntime  ] FATAL EXCEPTION: main
Process: sb.firefds.u.firefdskit, PID: 8635
java.lang.RuntimeException: Unable to start activity ComponentInfo{sb.firefds.u.firefdskit/sb.firefds.u.firefdskit.FirefdsKitActivity}: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4164)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8919)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ContextImpl.checkMode(ContextImpl.java:3737)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:612)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:602)
	at sb.firefds.u.firefdskit.FirefdsKitActivity.attachBaseContext(Unknown Source:15)
	at android.app.Activity.attach(Activity.java:8827)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4096)
	... 12 more
[ 2024-08-13T17:11:36.944    10353:  8769:  8769 E/AndroidRuntime  ] FATAL EXCEPTION: main
Process: sb.firefds.u.firefdskit, PID: 8769
java.lang.RuntimeException: Unable to start activity ComponentInfo{sb.firefds.u.firefdskit/sb.firefds.u.firefdskit.FirefdsKitActivity}: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4164)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)
	at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8919)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
	at android.app.ContextImpl.checkMode(ContextImpl.java:3737)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:612)
	at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:602)
	at sb.firefds.u.firefdskit.FirefdsKitActivity.attachBaseContext(Unknown Source:15)
	at android.app.Activity.attach(Activity.java:8827)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4096)
	... 12 more

Additional context

Context.MODE_WORLD_READABLE

EdXposed XSharedPreferences

KernelSU

LSposed

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions