ZaneYork / SMAPI-Android-Installer

SMAPI Installer for Android
GNU Lesser General Public License v3.0
679 stars 60 forks source link

No Android 13 support. #233

Open nick123456789025 opened 2 years ago

nick123456789025 commented 2 years ago

On Android 13, Google has imposed restrictions on file access (SAF), this is preventing the app from working properly. The installer will try to prompt SAF but The user cannot give access to that folder anymore, and it is not possible to select a different folder or the game directory.

Screenshot_20220831-181558

There is a workaround. you can install the app on an Android 9-12 device, and then copy the files over to the device you want to run the game, Install the APK from the SMAPI installer folder.

A possible fix would be to update the path that the framework is looking for when the app prompts it, change it so it is looking for the games directory or whatever directory that the app is currently looking for instead of having access to the entire OBB/data folder. ( I would like to play this game on Android 13 and I hope this is helpful to the development of the next version).

Screenshot_20220831-181943

Minwol commented 2 years ago

I would love to go in and fix this but unfortunately I don't have the time. Here is a work around so you can still play though!

Settings > Apps > Special app access > All files access > com.zane.smapiinstaller (Enable it) Run the SMAPI installer, it should ask for permission to that folder permission in obb but just swipe to go back and it should be generating the file. Then install!

If it doesn't work, grant all permissions to the installer in app info before running.

Let me know if this works for you please

nick123456789025 commented 2 years ago

This workaround does work, it also found all the plugins that were installed and lets me configure them. Thanks for letting me know.

Why does the installer need OBB and data access anyway is it just for the save files?

lividhen commented 2 years ago

This workaround does work, it also found all the plugins that were installed and lets me configure them. Thanks for letting me know.

Why does the installer need OBB and data access anyway is it just for the save files?

OBB contains data like music and graphics. Some games store everything in a .obb file, like sonic the hedgehog, where as stardew i think just stores sound. Data i think is similar but idk the specifics.

nick123456789025 commented 2 years ago

Thx

vikas2316 commented 1 year ago

Only these permissions are showing up for me. It is still asking for permission in app. Screenshot_20230102-202642_Permission controller

Minwol commented 1 year ago

Only these permissions are showing up for me. It is still asking for permission in app. Screenshot_20230102-202642_Permission controller

That is the app permissions screen. You need to find the Special app access under Settings > Apps

ghost commented 1 year ago

Hm?

kenth246 commented 1 year ago

I kinda have the same problem. When I'm giving my the game access to its folder inside Android/data, i cannot give access to the path. I already did give SMAPI installer the All File Access. Screenshot_20230921-234635

uditkandari commented 1 year ago

I did all the steps even gave special apps permission but getting this error when I open the app: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zane.stardewvalley/crc648e5438a58262f792.SMainActivity}: java.lang.ClassNotFoundException: com.google.android.vending.licensing.AESObfuscator at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3909) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4055) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2415) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:211) at android.os.Looper.loop(Looper.java:300) at android.app.ActivityThread.main(ActivityThread.java:8400) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:954) Caused by: java.lang.ClassNotFoundException: com.google.android.vending.licensing.AESObfuscator at crc648e5438a58262f792.SMainActivity.n_onCreate(Native Method) at crc648e5438a58262f792.SMainActivity.onCreate(SMainActivity.java:31) at android.app.Activity.performCreate(Activity.java:8538) at android.app.Activity.performCreate(Activity.java:8502) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1440) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3890) ... 12 more