Assigned
Status Update
Comments
lb...@gmail.com <lb...@gmail.com> #2
Attached here the XAPK file.
lb...@gmail.com <lb...@gmail.com> #3
Attached screenshots of showing that it fails to copy the files, and that the folder is not writeable.
lb...@gmail.com <lb...@gmail.com> #4
It seems this issue has started from API 31, reached API 32 and API 33.
On API 30 and below, it works fine.
Watch the video about how to test this out.
I demonstrated about API 30 vs API 33.
For some reason, on API 30 it has a different bug, but it might be related to the next ones too: the "all files access" permission was granted, but it doesn't show up on the settings properly, and only when I deny&grant it again, it works fine and the app is allowed to copy files to the OBB folder.
Sadly this workaround doesn't work on API 33.
Also attached bug reports files of both APIs.
This issue was also found on Pixel 6 with API 33.
On API 30 and below, it works fine.
Watch the video about how to test this out.
I demonstrated about API 30 vs API 33.
For some reason, on API 30 it has a different bug, but it might be related to the next ones too: the "all files access" permission was granted, but it doesn't show up on the settings properly, and only when I deny&grant it again, it works fine and the app is allowed to copy files to the OBB folder.
Sadly this workaround doesn't work on API 33.
Also attached bug reports files of both APIs.
This issue was also found on Pixel 6 with API 33.
lb...@gmail.com <lb...@gmail.com> #5
Comment has been deleted.
lb...@gmail.com <lb...@gmail.com> #6
Attached a sample project that you can play with, and see for yourself that granting both permissions, and then checking if you can write to OBB folder, you get that you can't.
Removing of the all-files-access permission, it still has an issue with reaching the OBB folder, so it's not as I thought before. Maybe just a coincidence on API 30.
Removing of the all-files-access permission, it still has an issue with reaching the OBB folder, so it's not as I thought before. Maybe just a coincidence on API 30.
lb...@gmail.com <lb...@gmail.com> #7
A workaround on API 33 and maybe others, is to kill the process of the app (or restart the OS).
lb...@gmail.com <lb...@gmail.com> #8
About what I wrote on @7 , sadly I couldn't use this workaround for some reason.
I've noticed it only on the app of ApkPure, as it seems to have restarted after it noticed it can't copy the files.
I've noticed it only on the app of ApkPure, as it seems to have restarted after it noticed it can't copy the files.
su...@google.com <su...@google.com>
su...@google.com <su...@google.com> #9
We have shared this with our product and engineering team and will update this issue with more information as it becomes available.
fl...@gmail.com <fl...@gmail.com> #11
is there a fix for this_
ry...@gmail.com <ry...@gmail.com> #12
no
su...@google.com <su...@google.com> #13
Can you please provide the bugreport of the issue ? and sample apks or psuedocode to reproduce the issue ?
lb...@gmail.com <lb...@gmail.com> #14
@13 About bug report, I will attach on the next comment, restricted. I don't think you will see anything special because I've already handled the error by showing a toast. But maybe the OS shows something that I don't.
About samples, I already provided sample APK files. Just follow the instructions. It's on the links.
I've attached them here too. Steps with them:
0. Run on a real device with Android 13.
1. Install "App Manager" (attached "App Manager.apk"), which can install various types of APK files, including those that have OBB files with them (inside "XAPK" files as on the next step). Grant it all the permissions it requests till you reach the main screen that shows a list of installed apps.
2. Put the "Sound Touch Lite.xapk" in the storage of the device, in the Downloads folder.
3. Using any file manager app (example is "Total Commander" but also the built-in file-manager app should be fine), open the XAPK file that you've put, and choose to open it via "App Manager" app.
4. Grant it the permission it needs to install, and notice that it fails, because it can't save the OBB file into the correct path.
5. Because of the failure, the newly installed app (Sound Touch lite) will fail to run properly, as it misses the OBB file.
About pseudocode , it's as such:
1. with a given Uri/file-path, install APK/s and also get package name of it. You can use PackageInstaller or even the legacy Intent for it. An example of such files can be found on the link I've provided. There are plenty of free apps (mainly games) that have OBB files.
2. Because on the way you got the permission, reach the proper OBB path for the newly installed app, and try to create a folder for it, and put there an OBB file for it.
About samples, I already provided sample APK files. Just follow the instructions. It's on the links.
I've attached them here too. Steps with them:
0. Run on a real device with Android 13.
1. Install "App Manager" (attached "App Manager.apk"), which can install various types of APK files, including those that have OBB files with them (inside "XAPK" files as on the next step). Grant it all the permissions it requests till you reach the main screen that shows a list of installed apps.
2. Put the "Sound Touch Lite.xapk" in the storage of the device, in the Downloads folder.
3. Using any file manager app (example is "Total Commander" but also the built-in file-manager app should be fine), open the XAPK file that you've put, and choose to open it via "App Manager" app.
4. Grant it the permission it needs to install, and notice that it fails, because it can't save the OBB file into the correct path.
5. Because of the failure, the newly installed app (Sound Touch lite) will fail to run properly, as it misses the OBB file.
About pseudocode , it's as such:
1. with a given Uri/file-path, install APK/s and also get package name of it. You can use PackageInstaller or even the legacy Intent for it. An example of such files can be found on the link I've provided. There are plenty of free apps (mainly games) that have OBB files.
2. Because on the way you got the permission, reach the proper OBB path for the newly installed app, and try to create a folder for it, and put there an OBB file for it.
lb...@gmail.com <lb...@gmail.com> #15
@13 This was tested on Pixel 6 with Android 13.
lb...@gmail.com <lb...@gmail.com> #16
@13 BTW, trying on Android emulator with Android 14, it fails there as well.
Will now attach (restricted) a bug report of it too, and a video showing how to perform the test.
Will now attach (restricted) a bug report of it too, and a video showing how to perform the test.
lb...@gmail.com <lb...@gmail.com> #17
@13 A weird thing is that on the next time you try, the app (App Manager) succeeds to copy the OBB file.
Sadly for the example of "Sound Touch Lite", it crashes when I try to open it after everything seems fine. No idea what's wrong with Android opening old apps.
:(
You can try any of these instead:
https://apkpure.com/little-misfortune-demo/com.KillmondayGames.LittleMisfortuneDemo/download
https://apkpure.com/exos-heroes/com.linegames.exos/download
Sadly for the example of "Sound Touch Lite", it crashes when I try to open it after everything seems fine. No idea what's wrong with Android opening old apps.
:(
You can try any of these instead:
ra...@google.com <ra...@google.com>
s....@gmail.com <s....@gmail.com> #18
Any updates on this? It's still a problem y'all... Cannot access my android folder as I used to and that's really a problem.
ta...@gmail.com <ta...@gmail.com> #19
to protect your privacy choose another folder please remove
ja...@google.com <ja...@google.com> #20
Looking at bugreport-oriole-TQ1A.230205.002-2023-02-23-11-05-25.zip
, the app has the REQUEST_INSTALL_PACKAGES
appop allowed:
Uid u0a1047:
state=fgsvc
capability=---N
appWidgetVisible=false
READ_EXTERNAL_STORAGE: mode=ignore
WRITE_EXTERNAL_STORAGE: mode=ignore
LEGACY_STORAGE: mode=ignore
MANAGE_EXTERNAL_STORAGE: mode=allow
Package com.lb.app_manager:
SYSTEM_ALERT_WINDOW (default):
GET_USAGE_STATS (allow):
REQUEST_INSTALL_PACKAGES (allow):
START_FOREGROUND (allow):
MANAGE_EXTERNAL_STORAGE (default):
But the dumpsys says that the package doesn't declare the REQUEST_INSTALL_PACKAGES
permission:
Package [com.lb.app_manager] (a672a60):
userId=11047
pkg=Package{39597ae com.lb.app_manager}
codePath=/data/app/~~shewOHsYITY92I03KfHbog==/com.lb.app_manager-MprXcFa3PfUVowpl3nuFiw==
resourcePath=/data/app/~~shewOHsYITY92I03KfHbog==/com.lb.app_manager-MprXcFa3PfUVowpl3nuFiw==
legacyNativeLibraryDir=/data/app/~~shewOHsYITY92I03KfHbog==/com.lb.app_manager-MprXcFa3PfUVowpl3nuFiw==/lib
...
versionCode=502 minSdk=19 targetSdk=33
...
signatures=PackageSignatures{97cc94f version:2, signatures:[15d92662], past signatures:[]}
installPermissionsFixed=true
pkgFlags=[ HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP ]
declared permissions:
com.lb.app_manager.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: prot=signature, INSTALLED
install permissions:
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE: granted=true
com.google.android.c2dm.permission.RECEIVE: granted=true
android.permission.FOREGROUND_SERVICE: granted=true
android.permission.RECEIVE_BOOT_COMPLETED: granted=true
android.permission.INTERNET: granted=true
com.android.vending.BILLING: granted=true
com.lb.app_manager.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION: granted=true
android.permission.USE_EXACT_ALARM: granted=true
android.permission.ACCESS_NETWORK_STATE: granted=true
android.permission.KILL_BACKGROUND_PROCESSES: granted=true
android.permission.REQUEST_DELETE_PACKAGES: granted=true
com.android.launcher.permission.INSTALL_SHORTCUT: granted=true
User 0: ceDataInode=179115 installed=true hidden=false suspended=false distractionFlags=0 stopped=false notLaunched=false enabled=0 instant=false virtual=false
installReason=0
gids=[3003]
runtime permissions:
android.permission.POST_NOTIFICATIONS: granted=true, flags=[ USER_SET|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
android.permission.READ_EXTERNAL_STORAGE: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED|RESTRICTION_INSTALLER_EXEMPT]
android.permission.WRITE_EXTERNAL_STORAGE: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED|RESTRICTION_INSTALLER_EXEMPT]
Though I think it is in fact declared in the AndroidManifest.xml
:
$ aapt dump badging /usr/local/google/home/jaysullivan/Downloads/App\ Manager.apk
package: name='com.lb.app_manager' versionCode='502' versionName='6.02' platformBuildVersionName='13' platformBuildVersionCode='33' compileSdkVersion='33' compileSdkVersionCodename='13'
install-location:'internalOnly'
sdkVersion:'19'
targetSdkVersion:'33'
uses-permission: name='android.permission.REQUEST_DELETE_PACKAGES'
uses-permission: name='android.permission.REQUEST_INSTALL_PACKAGES'
uses-permission: name='com.android.launcher.permission.INSTALL_SHORTCUT'
uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE'
...
@sc...@google.com: do you know any reason why REQUEST_INSTALL_PACKAGES
wouldn't appear here?
pe...@gmail.com <pe...@gmail.com> #21
Was there any follow up on this? It still seems to be an issue.
Description
0. Read this comment, saying that any app that can install APK files - will be able to reach OBB folders of apps, so that it can copy OBB files into there:
1. Use an app that can install APK files, and also copy OBB files if needed. Example is the one attached next that I've made, from here:
2. After granting all permissions that it needs, go to some file manager app, and choose to install the XAPK file that I've attached here, which is a ZIP file of this app (no longer available on the Play Store) :
- What happened.
You can see that it can't reach the OBB folder, and indeed if I debug in code, I can see that creation of the folder fails, and also that calling "canWrite()" returns false for the folder.
- What you think the correct behavior should be.
Should allow the app to reach the OBB folder and copy files to there, as was promised and as it's the only way to do it.
- Is this a security related issue? Yes/No
No