Skip to content

Magiskboot cpio operations are broken with -r flag #9604

@utkustnr

Description

@utkustnr

Device: Samsung Galaxy A73
Android version: 16
Magisk version name: 01cb75e
Magisk version code: 30600

I use magiskboot regularly on my projects and I noticed my scripts failing at certain commands. Specifically ones with the cpio command with -r flag. Both ls -r and rm -r cause core dumps similiar to issue #9550 but ls and rm work just fine.

I managed to replicate it both on my laptop (up to date arch linux, x86_64) and phone (termux). x86_64/libmagiskboot.so and arm64-v8a/libmagiskboot.so from this actions run (latest at the time of writing) are used. Magisk app is unaffected because it doesn't run -r flags in the patching process as far as i know.

I have tested multiple magiskboot versions from the actions tab and managed to find the last working version.
Actions run linked to commit 470acc9 seems to be unaffected.
Actions run linked to commit 536e50c IS affected.
One of the 7 commits after 470acc9, non-inclusive, seems to be the issue.

Output from my machine:

[utkustnr@archbtw tmp]$ ./magiskboot unpack ../vendor_boot.img 
Parsing boot image: [../vendor_boot.img]
VENDOR_BOOT_HDR
HEADER_VER      [3]
RAMDISK_SZ      [709562]
DTB_SZ          [466624]
PAGESIZE        [4096]
NAME            [SRPUH27A010]
CMDLINE         [console=null androidboot.hardware=qcom androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 androidboot.usbcontroller=a600000.dwc3 swiotlb=0 loop.max_part=7 cgroup.memory=nokmem,nosocket firmware_class.path=/vendor/firmware_mnt/image pcie_ports=compat loop.max_part=7 iptable_raw.raw_before_defrag=1 ip6table_raw.raw_before_defrag=1 printk.devkmsg=on]
RAMDISK_FMT     [gzip]
VBMETA
[utkustnr@archbtw tmp]$ ./magiskboot cpio ramdisk.cpio "ls lib/modules"
Loading cpio: [ramdisk.cpio]
drwxr-xr-x      0       0       0 B     0:0     lib/modules
drwxr-xr-x      0       0       0 B     0:0     lib/modules/5.4-gki
-rw-r--r--      0       0       45 B    0:0     lib/modules/modules.alias
-rw-r--r--      0       0       0 B     0:0     lib/modules/modules.dep
-rw-r--r--      0       0       0 B     0:0     lib/modules/modules.load
-rw-r--r--      0       0       55 B    0:0     lib/modules/modules.softdep
[utkustnr@archbtw tmp]$ ./magiskboot cpio ramdisk.cpio "ls -r lib/modules"
Loading cpio: [ramdisk.cpio]
Illegal instruction        (core dumped) ./magiskboot cpio ramdisk.cpio "ls -r lib/modules"
[utkustnr@archbtw tmp]$ ./magiskboot cpio ramdisk.cpio "rm lib/modules/modules.alias"
Loading cpio: [ramdisk.cpio]
Removed entry [lib/modules/modules.alias]
Dumping cpio: [ramdisk.cpio]
[utkustnr@archbtw tmp]$ ./magiskboot cpio ramdisk.cpio "rm -r lib/modules"
Loading cpio: [ramdisk.cpio]
Illegal instruction        (core dumped) ./magiskboot cpio ramdisk.cpio "rm -r lib/modules"
[utkustnr@archbtw tmp]$ ./magiskboot cpio ramdisk.cpio "ls lib/modules"
Loading cpio: [ramdisk.cpio]
drwxr-xr-x      0       0       0 B     0:0     lib/modules
drwxr-xr-x      0       0       0 B     0:0     lib/modules/5.4-gki
-rw-r--r--      0       0       0 B     0:0     lib/modules/modules.dep
-rw-r--r--      0       0       0 B     0:0     lib/modules/modules.load
-rw-r--r--      0       0       55 B    0:0     lib/modules/modules.softdep

Metadata

Metadata

Assignees

No one assigned

    Labels

    regressionSomething works in previous versions but not in the current one

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions