-
Notifications
You must be signed in to change notification settings - Fork 87
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
Crashes Package Installer on Android 14 QPR1 #595
Comments
On the one hand, this seems to me like a regression in Package Installer, since everything was fine before 14 QPR1, so ideally that would get fixed in AOSP. At the same time, it could be that Package Installer expects something (an image/icon, in a certain format?) in an APK that it is not finding in Cromite, so if that can be added to Cromite and fix this, all the better! I'm willing to help test if needed. |
I don't think it's something I can solve. Assuming the problem is here, I don't seem to have zero bytes resources in the apk.
you are welcome. |
It looks like there's some bizarre Binder stuff going on in Android 14 QPR1. The problem for Cromite isn't a zero-byte resource, but that the generated Bitmap of the icon is larger than can be written to a parcel in-place. If I figure out anything actionable, I'll let you know, since I don't know if/when AOSP will fix this. In the meantime, this is kind of an info dump, so feel free to disregard. I needed to add log lines to get to this point, but with writeBlob in
...with 1048576 being BLOB_MAX_INPLACE_LIMIT. Cromite can be installed with Package Installer if you do something strange like this:
^ This is just to illustrate the problem with Package Installer, since with adb you could easily install Cromite using But, oddly, at certain densities like 100, the error changes vs the error I initially showed, appearing to fail even earlier in the process (can't even send the Intent to InstallInstalling, inside which is where my issue's log fails when trying to write to parcel):
(My initial log for this issue is with a default density of 420 on a Pixel 6a.) |
it is not clear to me which bitmap/file we are talking about, is it possible to deduce this somehow? |
For easier testing, I imported Cromite's icons into an empty Android app. It's Alternatively, if I delete Again though, this is all just in a test app at the moment. |
It turns out the issue is Cromite's is 900x900, Chromium's is 90x90. I suppose it should be scaled down. Android Studio shows:
|
could you verify that it works with the new version? thank you |
Works great, thanks! |
Preliminary checklist
Can the bug be reproduced with corresponding Chromium version?
Yes
Cromite version
120.0.6099.63
Device architecture
arm64-v8a
Platform version
Android 14
Android Device model
Google Pixel 6 Pro / Google Pixel 7a
Is the device rooted?
No
Changed flags
no flags changed
Is this bug happening in an incognito tab?
No
Is this bug caused by the adblocker?
No
Is this bug a crash?
The crash is basically the same on stock Pixel OS, except the package name is
com.google.android.packageinstaller
instead ofcom.android.packageinstaller
.Describe the bug
Trying to install/update Cromite using the built-in "Package Installer", which is used by default when tapping on the download and is the only built-in option available on AOSP, results in Package Installer disappearing / crashing without completing the task. This is not reproducible with Android 14, but it is reproducible with Android 14 QPR1 stock Google Pixel builds and in an AOSP fork.
This can be worked around by using a third-party package installer, such as "APK Explorer & Editor" or "App Manager" from F-Droid.
Steps to reproduce the bug
Expected behavior
The install/update succeeds, and reports success as usual.
Screenshots
Details
The text was updated successfully, but these errors were encountered: