-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot install an app downloaded to internal storage #417
Comments
Have you granted yalp privileges to access storage? |
Yes. |
What is the download directory in yalp settings set to? |
It is set to internal storage. i.e. not on the sdcard but in the private storage of the app itself. |
What is the actual string? |
|
Can the native file manager for that rom access the downloaded file using the exact same path? (There are other paths to the same location such as |
This is external storage path. The log messages you provided do not come from Yalp Store. Your logs mention lack of INTERNET permission which Yalp Store has. Yalp Store has no classes called DictionaryProvider, UpdateHandler or DatabaseUtils. Seems like a DownloadManager error, but it is not used when downloading to internal storage. Are you sure you enabled internal storage downloads in Yalp Store settings? Please reproduce the problem and use Yalp Store's built-in error reporter; mention this issue so that I would know it is you. |
@yeriomin You are definitely confusing internal vs external storage definitions. External is, for example, a removable SD card, while Internal is the storage space already in the phone. The new option in Settings is mislabeled as well. I already tried to explain this in #386 but you haven't answered. I could say you are right if I look from the app perspective: internal for files inside app's own /data folder and external for every other place; but, this is wrong when we generally talk about file management in a phone... |
No, I am not. I understand why there is a confusion - according to Android docs:
So "external" does not mean that it is a removable SD card. It means public storage accessible to user and other apps, not its physical implementation. Did you notice there is a word "emulated" in the path |
@yeriomin why all file managers call it internal? It would be a good research someone talking about this difference in concepts. Edit: after reading more of this Android docs my conclusion is that it 1) Makes sense from the perspective of apps and developers; 2) Is more likely a terminology that makes no sense to end-users but Google wants to impose on people; 3) Considering Android also use the path /sdcard for its 'external-(internal in truth) storage' which is not a real SD card, I would risk saying it is a legacy terminology from early Android versions when phones might have had real SD cards internally; 4) Is is bad and slow at fixing things that make little sense. Also, I don't get what you mean by "external emulated by internal". Are there two different nand chips? Moreover, something emulated is, for example, a piece of software made for one platform that is being tricked to run in a non-native environment, eg, DOS emulated by QEMU running inside Windows, or a Nintendo game running inside a emulator on PC. @yeriomin All above out, and sorry for the off-topic, my question really is: Are you going to support downloading to removable external SD cards? |
It is not a matter of opinion. The docs clearly state which is which.
From wikipedia:
Many android devices don't have an SD card slot at all. The need for a shared user-accessible storage for generic files has not disappeared though. Every android device has some kind of external storage. For old devices it is most likely an SD card. For new devices it is either just the internal storage which emulates externals storage (emulated storage) or emulated storage + SD card. Emulated because it has the function of the external storage, but is backed by something physically inseparable from the device.
Two logical volumes on one physical device. It could be an HDD. Android does not care. |
How exactly does it fail? Like I said, @shuhaowu's logs are not from Yalp Store. Please reproduce the problem and post the logs here or use Yalp Store's feedback tool (mention your name and/or this issue number because the reports are anonymous by default).
This is irrelevant, that permission is for external storage. Using internal storage requires no permission at all. |
I finally got a logcat:
|
Now I know, how to fix this problem: I just have to execute adb pm grant com.github.yeriomin.yalpstore android.permission.INTERNET Edit: This command didn't work. I got the following error: |
@conrad-heimbold That's very strange. android.permission.INTERNET is (and always has been) in Yalp Store's manifest. If it wasn't, no network request would be allowed to happen you wouldn't get to the download part. Also, it is not a dangerous permission, so it does not need to be requested explicitly. Something might be wrong with your OS. When something as ubiquitous as internet permission is not granted, it usually means some third-party app has done that, or some xposed plugin maybe. Does your problem happen all the time or downloads partly work? Does reinstalling Yalp Store help? |
my OS is LineageOS 15.1 with microg, I don't have xposed or anything like that. Deleting all data from yalpstore in the settings (almost equivalent to reinstalling) doesn't help; I got the error again. It always fails, no matter what app I choose on google play. |
Same happened to me. Fresh LOS install. Yalp Store was installed through OTA. Installing an app through local storage failed so I had to disable it. |
PackageInstaller is now used instead of reflection on Lollipop and higher. Reflection method could not work with content uris and file uris were deprecated in Nougat, which made privileged installation from internal storage impossible on Nougat and higher.
@GustavMarwin
This helped me find an issue. I'm not sure if it was the issue @shuhaowu and @conrad-heimbold were talking about... Please, guys, don't ignore the issue template:
|
Expected behaviour
After enabling download of apps to internal storage, it should be installable.
Actual behaviour
A toast come out and say could not be installed, with the following error logs
Steps to reproduce
Info about your device
kiwi (Huawei Honor 5x), Lineage 4 Microg 14.1
The text was updated successfully, but these errors were encountered: