-
-
Notifications
You must be signed in to change notification settings - Fork 67
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
BrokenPipeError: [Errno 32] Broken pipe #3
Comments
Can you share the boot.img ? Might have a look then |
Maybe it's because the Android phone is A/B device. (Fairphone 3) Inside makeramdisk.py : The script is writing hdrsize if the header version is superior than 0 : But this variable is read from the image only if a header version of 2 is detected : According to the bootimg.h, hdrsize is part of header version 1 too : (https://android.googlesource.com/platform/system/tools/mkbootimg/+/refs/heads/master/include/bootimg/bootimg.h) I should signal another thing, the init file is extracted from rd.gz as init@0755 under /system/bin and not under / as init@0750 : |
I have managed to modifiy the program in order to complete the process. First, according to bootimg.h, I have modified this part of makeramdisk.py : I have changed the path to the folder /keys. The program was searching it under android_universal\root\scripts\Library\utils\keys (that doesn't exist) while this folder already existed under /root/keys I have set up the arg use_persistent_digest to True for the function add_hash_footer (avbtool3.py) : Because this one was created from reading /dev/urandom that doesn't exist on Windows. So now the program terminates and creates a boot.img.signed. But when I flash it, I cannot retrieve any thing linked to the patch. (None of the .sh's are under /sbin, init.rc doesn't have the "on eary-init" that will import init.shell.rc... etc through TWRP) So nothing seems to work, any idea ? |
In fact, it seems the kernel doesn't load the ramdisk at all. (I have tried boot_a and boot_b) I think it is linked to the boot method in some ways since the init is clearly under /system/bin but the device was not originally under Android 10. What would explain this behavior ? @bkerler |
Hello,
I have tried your program on Ubuntu 20.04 with Python 3.9.5 then 3.7.5. There is a broken pipe error that pops out when the ramdisk is unpacking to tmp.
Have you any idea to circumvent the problem ? (Already tried to add signal(SIGPIPE, SIG_DFL) but as you may know, this doesn't really fix the error)
EDIT : boot.img frop Fairphone 3, Android 10, A/B device.
The text was updated successfully, but these errors were encountered: