Skip to content
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

Error - Failed to install OTA update: (Transaction failed on small parcel ...) #83

Closed
luxqaoa opened this issue Sep 22, 2024 · 8 comments · Fixed by #84
Closed

Error - Failed to install OTA update: (Transaction failed on small parcel ...) #83

luxqaoa opened this issue Sep 22, 2024 · 8 comments · Fixed by #84
Assignees

Comments

@luxqaoa
Copy link

luxqaoa commented Sep 22, 2024

Trying to perform OTA update with local installation source as suggested by this comment in avbroot #357. After checking for updates and pressing install, I get the notification

Failed to install OTA update
DeadObjectException (Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffe)

(see attached image below)

What I did

I followed these steps up to step 8 to fix a previously discussed issue with avbroot. The issue happens after pressing "install" (the update), after pressing Check for updates. I installed Custota as a Magisk module.

Pressing "retry" results in the same error message.

Attempting to install a a DivestOS image patched with avbroot 3.7.0

Environment

Custota 4.10 running on Windows 11 23H2 sandbox. Pixel 4a DivestOS with Magisk 26.4

Attachments

Custota log files

bug

@chenxiaolong chenxiaolong self-assigned this Sep 22, 2024
@chenxiaolong
Copy link
Owner

Thanks for the logs! That was very helpful.

09-22 11:17:10.848  5026  5026 W Thread-8: type=1400 audit(0.0:1355): avc: denied { read } for path="/storage/emulated/0/custota/divested-20.0-20240907-dos-sunfish.zip.patched" dev="sdcardfs" ino=119299 scontext=u:r:update_engine:s0 tcontext=u:object_r:sdcardfs:s0 tclass=file permissive=0 app=com.chiller3.custota

Looks like the Pixel 4a uses sdcardfs for its internal storage. (Newer devices that shipped with Android 11 or newer no longer use that so I wasn't aware of it.)

The SELinux rules that Custota adds didn't account for sdcardfs, so Android's internal OTA updater component (update_engine) couldn't access your OTA file.

Can you please give this test build a try? Custota-4.10.r4.g4ac7ee8-release.zip You can just flash this in Magisk--no need to repeat any of the other steps. If it still doesn't work, please upload the new logs.

chenxiaolong added a commit that referenced this issue Sep 22, 2024
Devices that launched with Android <11 use the kernel-based sdcardfs
instead of the userspace FUSE daemon.

Fixes: #83

Signed-off-by: Andrew Gunnerson <[email protected]>
chenxiaolong added a commit that referenced this issue Sep 22, 2024
Devices that launched with Android <11 use the kernel-based sdcardfs
instead of the userspace FUSE daemon.

Fixes: #83

Signed-off-by: Andrew Gunnerson <[email protected]>
chenxiaolong added a commit that referenced this issue Sep 23, 2024
Devices that launched with Android <11 use the kernel-based sdcardfs
instead of the userspace FUSE daemon.

Fixes: #83

Signed-off-by: Andrew Gunnerson <[email protected]>
@luxqaoa
Copy link
Author

luxqaoa commented Sep 23, 2024

Thank you for helping!

Unfortunately, after flashing the new release as a Magisk module, after pressing the "Install" (update) button, I get the notification error

Failed to install OTA update
Exception (9/DOWNLOAD_TRANSFER_ERROR)

logs

@chenxiaolong
Copy link
Owner

That's progress, at least!

It looks like this issue is happening somewhere where Custota can't capture the logs. Could you run this:

adb shell su -c 'dmesg -w | grep avc:'

hit the Install button and then paste the output here once it fails? I'm hoping to see some message that mentions sdcardfs.

The output of this (after the error) would be helpful too:

adb logcat -s update_engine -d > update_engine.txt

@luxqaoa
Copy link
Author

luxqaoa commented Sep 23, 2024

These are the logs that appear after pressing the Install button

[   82.919958] type=1400 audit(1727118218.051:1142): avc: denied { getattr } for comm="update_engine" path="/data/media/0/custota/divested-20.0-20240907-dos-sunfish.zip.patched" dev="dm-12" ino=119299 scontext=u:r:update_engine:s0 tcontext=u:object_r:media_rw_data_file:s0:c143,c256,c512,c768 tclass=file permissive=0
[   82.920661] type=1400 audit(1727118218.051:1143): avc: denied { read } for comm="update_engine" path="/data/media/0/custota/divested-20.0-20240907-dos-sunfish.zip.patched" dev="dm-12" ino=119299 scontext=u:r:update_engine:s0 tcontext=u:object_r:media_rw_data_file:s0:c143,c256,c512,c768 tclass=file permissive=0

update_engine.txt

@chenxiaolong
Copy link
Owner

Thanks! That should be easy to fix. Give me a couple minutes to make a new test build.

chenxiaolong added a commit that referenced this issue Sep 23, 2024
Devices that launched with Android <11 use the kernel-based sdcardfs
instead of the userspace FUSE daemon.

Fixes: #83

Signed-off-by: Andrew Gunnerson <[email protected]>
@chenxiaolong
Copy link
Owner

New test build: Custota-4.10.r6.g5ce1c5a-release.zip

@luxqaoa
Copy link
Author

luxqaoa commented Sep 23, 2024

It works! I was able to successfully ota update. Thank you so much :D

@luxqaoa luxqaoa closed this as completed Sep 23, 2024
@chenxiaolong
Copy link
Owner

No problem, glad you got it working!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants