I'm on Android 12 and the Shizuku method worked for me but I had to reinstall both games and only open BG2 and do the import method to create the folders and rename the original files to make another one. However as soon as I made a character in BG1 I got locked out again. Funny enough I can still access BG2 folders and actually access my BG1 saves to import my character now. All these hoops to jump through wow
Yeah, Android file permissions are such a mess lately. I had to do something similar — reinstall, open BG2 first, let it create the folders, then rename and move stuff manually. It's wild that BG2 can still access BG1 saves even after BG1 locks you out again. At least importing works now, but seriously, the hoops we have to jump through just to play properly... unreal 😅
I have an idea for a potential workaround, but am too lazy to try (I still have an Android 6 tablet, so I will fall back to that to play BGEE). But I have tried this workaround on another Android app that was suffering similar problems due to scoping changes introduced in Android 11, and it did work there. Basically, you need to obtain the APK for BGEE, and modify the manifest file inside the APK to add the MANAGE_EXTERNAL_STORAGE permission. Beamdog COULD do that themselves, BUT they probably chose not to, because Google has been banning apps from Play market that have this permission set in the manifest. Look for the free tool APK Studio Editor, this tool allows you to decompile, edit, recompile APKs.....this is all you need to edit the manifest file. After modifying the APK as I have described, simply install BGEE from your recompiled APK. If this doesn't work, the other thing you could do until Beamdog fixes the problem is install the game on BlueStacks or Nox, which I believe is still using Android 6 or 7 for emulation.
I tried that. Modified the app. It didn't change its behaviour, sadly. My manifest for the 3.1.3.1 PSTEE Android version is:
Yeah, Android file permissions are such a mess lately. I had to do something similar — reinstall, open BG2 first, let it create the folders, then rename and move stuff manually. It's wild that BG2 can still access BG1 saves even after BG1 locks you out again. At least importing works now, but seriously, the hoops we have to jump through just to play properly... unreal 😅
Unfortunately, not even this method is working for me now. I'm not sure what changed, but now I can't even copy the files in.
Any time I view the folder even after clearing cache/data- still shows blank. I've even gone as far as to delete the whole folder, paste one in, then let the game make what it needs to. When I do this, it'll just ignore any of the files I've added.
Also I noticed if I have the files in the right place; When I attempt to create a new character and export, (just to force the game to write a file) the game will crash.
I've been waiting over 2 years to be able to export my BG1 save on my android device. Since then BG3 has released. Come on guys please help me export my save. I still can't access my files on android.
I was planning on buying the whole EE Trilogy+IWD and PS:T, both on Android and PC to play on the go and move saves and characters to PC while at home.
I just asked refund for BG2 and I'll stick to my old PC version. Too bad I tried too long to make it work and now I can't ask refund for BG1 too.
Not fixing a permission issue that apparently every other Android developer is able to fix speaks clearly about beamdog care for its customers.
Hey all, I thought I'd share the workaround I've been using for data folder access.
There are a bunch of virtual machine apps on the play store that allow you to run an old version of android within your current version of android. Newer phones support virtualization so the performance impact seems minimal.
Installing Baldur's Gate within that older version of android allows full access for any other apps also installed in the VM, such as cloud sync apps or file managers.
The one I used was called Virtual Master and I installed Android 9, the only tinkering I had to do with that one was to toggle "Disable child process restrictions" in Developer options. The app prompted that it wanted adb permissions to disable those itself but I'd definitely recommend skipping that and doing it yourself. Many vendors added a simple toggle in Developer Options where you can do this, and if your phone doesn't have that it's safer to run those adb commands yourself.
Comments
I even installed Shizuku and let FV File Explorer to access all files. Still the game file in the Android folder appears as empty.
I tried that. Modified the app. It didn't change its behaviour, sadly. My manifest for the 3.1.3.1 PSTEE Android version is:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="34" android:compileSdkVersionCodename="14" package="com.beamdog.pstee" platformBuildVersionCode="34" platformBuildVersionName="14"> <uses-feature android:glEsVersion="0x00030000"/> <queries> <package android:name="com.beamdog.baldursgateenhancededition"/> <package android:name="com.beamdog.siegeofdragonspear"/> <intent> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="https"/> </intent> <intent> <action android:name="com.android.vending.billing.InAppBillingService.BIND"/> </intent> </queries> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> <uses-permission android:maxSdkVersion="32" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:maxSdkVersion="32" android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:maxSdkVersion="32" android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="com.android.vending.CHECK_LICENSE"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="false" android:xlargeScreens="true"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <uses-permission android:name="com.android.vending.BILLING"/> <permission android:name="com.beamdog.pstee.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="signature"/> <uses-permission android:name="com.beamdog.pstee.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/> <application android:allowBackup="true" android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:extractNativeLibs="true" android:icon="@drawable/icon" android:label="@string/app_name" android:name="androidx.multidex.MultiDexApplication" android:requestLegacyExternalStorage="true" android:supportsRtl="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize" android:exported="true" android:label="@string/app_name" android:name="com.beamdog.pstee.PSTEE" android:screenOrientation="sensorLandscape"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> <service android:name="com.beamdog.infinity.BGDownloaderService"/> <receiver android:name="com.beamdog.infinity.BGAlarmReceiver"/> <provider android:authorities="com.beamdog.pstee.EHZipUriProviderPSTEE" android:exported="false" android:multiprocess="true" android:name="com.beamdog.pstee.EHZipUriProviderPSTEE"/> <provider android:authorities="com.beamdog.pstee" android:exported="false" android:grantUriPermissions="true" android:name="androidx.core.content.FileProvider"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="@string/app_id"/> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/> <uses-library android:name="org.apache.http.legacy" android:required="false"/> <activity android:excludeFromRecents="true" android:exported="false" android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <service android:exported="true" android:name="com.google.android.gms.auth.api.signin.RevocationBoundService" android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" android:visibleToInstantApps="true"/> <activity android:exported="false" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <meta-data android:name="com.google.android.play.billingclient.version" android:value="6.0.1"/> <activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize" android:exported="false" android:name="com.android.billingclient.api.ProxyBillingActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <provider android:authorities="com.beamdog.pstee.androidx-startup" android:exported="false" android:name="androidx.startup.InitializationProvider"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" android:value="androidx.startup"/> <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup"/> <meta-data android:name="androidx.profileinstaller.ProfileInstallerInitializer" android:value="androidx.startup"/> </provider> <receiver android:directBootAware="false" android:enabled="true" android:exported="true" android:name="androidx.profileinstaller.ProfileInstallReceiver" android:permission="android.permission.DUMP"> <intent-filter> <action android:name="androidx.profileinstaller.action.INSTALL_PROFILE"/> </intent-filter> <intent-filter> <action android:name="androidx.profileinstaller.action.SKIP_FILE"/> </intent-filter> <intent-filter> <action android:name="androidx.profileinstaller.action.SAVE_PROFILE"/> </intent-filter> <intent-filter> <action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION"/> </intent-filter> </receiver> <service android:exported="false" android:name="com.google.android.datatransport.runtime.backends.TransportBackendDiscovery"> <meta-data android:name="backend:com.google.android.datatransport.cct.CctBackendFactory" android:value="cct"/> </service> <service android:exported="false" android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService" android:permission="android.permission.BIND_JOB_SERVICE"/> <receiver android:exported="false" android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver"/> </application> </manifest>Unfortunately, not even this method is working for me now. I'm not sure what changed, but now I can't even copy the files in.
Any time I view the folder even after clearing cache/data- still shows blank. I've even gone as far as to delete the whole folder, paste one in, then let the game make what it needs to. When I do this, it'll just ignore any of the files I've added.
Also I noticed if I have the files in the right place; When I attempt to create a new character and export, (just to force the game to write a file) the game will crash.
FYI for those who may have missed it. ^
Maybe in a year or two it will be done :P Btw I could see there was some update in play store but installing it didn't help in my case.
I just asked refund for BG2 and I'll stick to my old PC version. Too bad I tried too long to make it work and now I can't ask refund for BG1 too.
Not fixing a permission issue that apparently every other Android developer is able to fix speaks clearly about beamdog care for its customers.
There are a bunch of virtual machine apps on the play store that allow you to run an old version of android within your current version of android. Newer phones support virtualization so the performance impact seems minimal.
Installing Baldur's Gate within that older version of android allows full access for any other apps also installed in the VM, such as cloud sync apps or file managers.
The one I used was called Virtual Master and I installed Android 9, the only tinkering I had to do with that one was to toggle "Disable child process restrictions" in Developer options. The app prompted that it wanted adb permissions to disable those itself but I'd definitely recommend skipping that and doing it yourself. Many vendors added a simple toggle in Developer Options where you can do this, and if your phone doesn't have that it's safer to run those adb commands yourself.