Magisk Manager 280 can't dump NAND boot image on some devices

Created on 30 Mar 2020  路  32Comments  路  Source: topjohnwu/Magisk

What is the issue I have:

  • Magisk Manager does not find boot.img, but
    /data/adb/magisk/busybox nandwrite /dev/bootimg /sdcard/boot.img works.

Log from the console:

Unable to detect target image
Installation failed

In which version of Magisk Manager is this happening:

Canary Debug be8479fd (280)聽聽聽[Build date: March 30, 2020]
Stable 7.5.1 (267) (7)聽聽聽聽聽聽聽聽聽聽聽[Build date: March 28, 2020]

Device specifications:

_Device_: Alcatel Pixi 3 7" 3G /9002X/聽聽聽聽聽_(tablet)_
_OS_: Android Kitkat 4.4.2
_RAM_: 512MB
_CPU_: MT8312 _(not sure)_

confirmed

Most helpful comment

Awesome. I'll add both fixes. :wink:

My guess is it works on other devices like @Msprg's because it also has by-name links under /dev/block or something.

All 32 comments

Try 280, and also what's the location of your boot partition?

Edit: Nevermind, I see /dev/bootimg there. On other devices it finds /dev/bootimg fine. Not sure what's up there.

Try 280

Same..

Is there anything I can help you with? The situation is strange.

Could be related/similar to #2609, I wonder.

Do you have a working TWRP? Does flashing the Magisk zip work there?

There is only CWM recovery for my device. The flashable Magisk zip also does not detect boot image.

Full recovery.log after an install attempt please. 馃檪

Full recovery.log after an install attempt please. 馃檪

last_log.txt

馃檪

(I just found out that CWM Recovery for my tablet is ported from another device 馃槂)

@Msprg, are things still working well on your NAND device?

@Msprg & @martobg10, can you both please give me the output of ls -al /dev/block on your devices while in recovery?

@martobg10, did it work with any older Magisk version?

Output of ls -al /dev/block when device is booted in system

root@Pixi3-7_3G:/ # ls -al /dev/block
brw------- root     root       7,   0 2020-03-30 13:40 loop0
brw------- root     root       7,   1 2020-03-30 13:40 loop1
brw------- root     root       7,   2 2020-03-30 13:40 loop2
brw------- root     root       7,   3 2020-03-30 13:40 loop3
brw------- root     root       7,   4 2020-03-30 13:40 loop4
brw------- root     root       7,   5 2020-03-30 13:40 loop5
brw------- root     root       7,   6 2020-03-30 13:40 loop6
brw------- root     root       7,   7 2020-03-30 13:40 loop7
brw-rw---- root     system   179,   0 2020-03-30 13:40 mmcblk0
brw-rw---- root     system   179,  32 2020-03-30 13:40 mmcblk0boot0
brw------- root     root     179,  64 2020-03-30 13:40 mmcblk0boot1
brw------- root     root     179,   1 2020-03-30 13:40 mmcblk0p1
brw------- root     root     179,   2 2020-03-30 13:40 mmcblk0p2
brw------- root     root     179,   3 2020-03-30 13:40 mmcblk0p3
brw------- root     root     179,   4 2020-03-30 13:40 mmcblk0p4
brw------- root     root     179,   5 2020-03-30 13:40 mmcblk0p5
brw------- root     root     179,   6 2020-03-30 13:40 mmcblk0p6
brw------- root     root     179,   7 2020-03-30 13:40 mmcblk0p7
brw------- root     root     179,   8 2020-03-30 13:40 mmcblk0p8
brw------- root     root     179,   9 2020-03-30 13:40 mmcblk0p9
drwxr-xr-x root     root              2020-03-30 13:40 platform
drwx------ root     root              2020-03-30 13:40 vold
brw------- root     root     253,   0 2020-03-30 13:40 zram0
root@Pixi3-7_3G:/ #

Output of ls -al /dev/block when device is booted in recovery

D:\Android\001_SDK Platform Tools (version 29.0.5)>adb shell
~ # ls -al /dev/block
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
drwxr-xr-x    4 root     root           500 Mar 30 13:03 .
drwxr-xr-x   11 root     root          3400 Mar 30 13:03 ..
brw-------    1 root     root        7,   0 Mar 30 13:03 loop0
brw-------    1 root     root        7,   1 Mar 30 13:03 loop1
brw-------    1 root     root        7,   2 Mar 30 13:03 loop2
brw-------    1 root     root        7,   3 Mar 30 13:03 loop3
brw-------    1 root     root        7,   4 Mar 30 13:03 loop4
brw-------    1 root     root        7,   5 Mar 30 13:03 loop5
brw-------    1 root     root        7,   6 Mar 30 13:03 loop6
brw-------    1 root     root        7,   7 Mar 30 13:03 loop7
brw-------    1 root     root      179,   0 Mar 30 13:03 mmcblk0
brw-------    1 root     root      179,  32 Mar 30 13:03 mmcblk0boot0
brw-------    1 root     root      179,  64 Mar 30 13:03 mmcblk0boot1
brw-------    1 root     root      179,   1 Mar 30 13:03 mmcblk0p1
brw-------    1 root     root      179,   2 Mar 30 13:03 mmcblk0p2
brw-------    1 root     root      179,   3 Mar 30 13:03 mmcblk0p3
brw-------    1 root     root      179,   4 Mar 30 13:03 mmcblk0p4
brw-------    1 root     root      179,   5 Mar 30 13:03 mmcblk0p5
brw-------    1 root     root      179,   6 Mar 30 13:03 mmcblk0p6
brw-------    1 root     root      179,   7 Mar 30 13:03 mmcblk0p7
brw-------    1 root     root      179,   8 Mar 30 13:03 mmcblk0p8
brw-------    1 root     root      179,   9 Mar 30 13:03 mmcblk0p9
drwxr-xr-x    3 root     root            60 Mar 30 13:03 platform
drwx------    2 root     root           280 Mar 30 13:03 vold
brw-------    1 root     root      253,   0 Mar 30 13:03 zram0
~ #

And ls -alR /dev/block/platform ?

Output of ls -alR /dev/block/platform when device is booted in system

shell@Pixi3-7_3G:/ $ ls -alR /dev/block/platform

/dev/block/platform:
drwxr-xr-x root     root              2020-03-30 16:07 mtk-msdc.0

/dev/block/platform/mtk-msdc.0:
drwxr-xr-x root     root              2020-03-30 16:07 by-num
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p7 -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p8 -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              2020-03-30 16:07 mmcblk0p9 -> /dev/block/mmcblk0p9

/dev/block/platform/mtk-msdc.0/by-num:
lrwxrwxrwx root     root              2020-03-30 16:07 p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2020-03-30 16:07 p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2020-03-30 16:07 p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2020-03-30 16:07 p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2020-03-30 16:07 p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2020-03-30 16:07 p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2020-03-30 16:07 p7 -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              2020-03-30 16:07 p8 -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              2020-03-30 16:07 p9 -> /dev/block/mmcblk0p9
shell@Pixi3-7_3G:/ $

Output of ls -alR /dev/block/platform when device is booted in recovery

~ # ls -alR /dev/block/platform
/dev/block/platform:
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
drwxr-xr-x    3 root     root            60 Mar 30 13:11 .
drwxr-xr-x    4 root     root           500 Mar 30 13:11 ..
drwxr-xr-x    3 root     root           300 Mar 30 13:11 mtk-msdc.0

/dev/block/platform/mtk-msdc.0:
drwxr-xr-x    3 root     root           300 Mar 30 13:11 .
drwxr-xr-x    3 root     root            60 Mar 30 13:11 ..
drwxr-xr-x    2 root     root           220 Mar 30 13:11 by-num
lrwxrwxrwx    1 root     root            18 Mar 30 13:11 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx    1 root     root            23 Mar 30 13:11 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx    1 root     root            23 Mar 30 13:11 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p7 -> /dev/block/mmcblk0p7
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p8 -> /dev/block/mmcblk0p8
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 mmcblk0p9 -> /dev/block/mmcblk0p9

/dev/block/platform/mtk-msdc.0/by-num:
drwxr-xr-x    2 root     root           220 Mar 30 13:11 .
drwxr-xr-x    3 root     root           300 Mar 30 13:11 ..
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p7 -> /dev/block/mmcblk0p7
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p8 -> /dev/block/mmcblk0p8
lrwxrwxrwx    1 root     root            20 Mar 30 13:11 p9 -> /dev/block/mmcblk0p9
~ #

@martobg10, did it work with any older Magisk version?

@osm0sis, please see this log I think it will help. This is the log from recovery.
What are my steps:

  1. I boot device in recovery
  2. I flashed Magisk 20.2
  3. I flashed Magisk 20.3
  4. I flashed Magisk 20.4
  5. Reboot in system

Full recovery log:
last_log.txt

Things that I noticed:

************************
* Magisk v20.3 Installer
************************
- Mounting /system
mount: can't find /system in /etc/fstab
! Cannot mount /system
- Unmounting partitions
***********************
 Magisk 20.4 Installer
***********************
- Mounting /system
! Unable to detect target image
- Unmounting partitions



md5-537c4c2182d3664fe9def918ec9e3cdf



recovery filesystem table
=========================
  0 /bootimg emmc /dev/bootimg 0
  1 /recovery emmc /dev/recovery 0
  2 /uboot emmc /dev/uboot 0
  3 /system ext4 /emmc@android 0
  4 /cache ext4 /emmc@cache 0
  5 /data ext4 /emmc@usrdata 0
  6 /storage/sdcard1 vfat /devices/platform/mtk-msdc.1/mmc_host/mmc1 0
  7 /tmp ramdisk ramdisk 0

@osm0sis, I think this can also help. Maybe the problem is in my recovery.
recovery_experiments.txt

You didn't really answer my question.. I don't think this has ever worked on your device before, am I right?

I have an idea why it doesn't work. There is no by-name or named partitions under /dev/block, so find_block fails entirely there, which leaves the fallback in find_boot_image.

Can you try grep -v '#' /etc/*fstab* | grep -E '/boot[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1 in recovery?

You didn't really answer my question.. I don't think this has ever worked on your device before, am I right?

Yes

Can you try grep -v '#' /etc/*fstab* | grep -E '/boot[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1 in recovery?

~ # grep -v '#' /etc/*fstab* | grep -E '/boot[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z
0-9_./-]*' | head -n 1
~ #

Nothing displayed.

Maybe this can help:

~ # cd /etc
/etc # ls
fstab           mtab            recovery.fstab

/etc # cat fstab
/emmc@android /system ext4 defaults
/emmc@cache /cache ext4 defaults
/emmc@usrdata /data ext4 defaults

/etc # cat recovery.fstab
# Android fstab file.
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

#<src>                <mnt_point>     <type>  <mnt_flags and options>                <fs_mgr_flags>
/dev/bootimg            /bootimg       emmc    defaults                                defaults
/dev/recovery           /recovery      emmc    defaults                                defaults
/dev/uboot              /uboot         emmc    defaults                                defaults
/emmc@android           /system        ext4    ro,noatime                              wait
/emmc@cache             /cache         ext4    noatime,nosuid,nodev,noauto_da_alloc    wait
/emmc@usrdata           /data          ext4    noatime,nosuid,nodev,noauto_da_alloc    wait,encryptable=footer

#/devices/platform/mtk-msdc.0/mmc_host/mmc0    auto    vfat    defaults    voldmanaged=sdcard0:8
/devices/platform/mtk-msdc.1/mmc_host/mmc1    auto    vfat    defaults    voldmanaged=sdcard1:auto

Now

grep -v '#' /etc/*fstab* | grep -E '/boot[a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1

and

find /dev \( -type b -o -type c -o -type l \) -iname bootimg | head -n 1

please. :slightly_smiling_face:

Wait there's _both_ uboot and bootimg here... interesting

grep -v '#' /etc/*fstab* | grep -E '/boot[a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1

Output:
/dev/bootimg

find /dev \( -type b -o -type c -o -type l \) -iname bootimg | head -n 1

Output:
Again /dev/bootimg

Awesome. I'll add both fixes. :wink:

My guess is it works on other devices like @Msprg's because it also has by-name links under /dev/block or something.

@Msprg, are things still working well on your NAND device?

@Msprg & @martobg10, can you both please give me the output of ls -al /dev/block on your devices while in recovery?

@martobg10, did it work with any older Magisk version?

Sorry late to the party, is this still needed?

@Msprg, yeah would still be nice to confirm v20.4's zip is still working for you and then verify my hunch as to why. :+1:

Okay I got Magisk 20.401 (ef9d077c), Installation from TWRP seems to be working flawlessly. Instalation through Manager (canary) does not work.
More info later.

Okay I got Magisk 20.401 (ef9d077), Installation from TWRP seems to be working flawlessly. Instalation through Manager (canary) does not work.
More info later.

ls -al /dev/block and ls -alR /dev/block/platform while in recovery please. :+1:

There you go!

ls -al /dev/block
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
brw------- root     root       7,   0 2020-03-30 16:57 loop0
brw------- root     root       7,   1 2020-03-30 16:57 loop1
brw------- root     root       7,   2 2020-03-30 16:57 loop2
brw------- root     root       7,   3 2020-03-30 16:57 loop3
brw------- root     root       7,   4 2020-03-30 16:57 loop4
brw------- root     root       7,   5 2020-03-30 16:57 loop5
brw------- root     root       7,   6 2020-03-30 16:57 loop6
brw------- root     root       7,   7 2020-03-30 16:57 loop7
brw------- root     root     179,   0 2020-03-30 16:57 mmcblk0
brw------- root     root     179,  32 2020-03-30 16:57 mmcblk0boot0
brw------- root     root     179,  64 2020-03-30 16:57 mmcblk0boot1
brw------- root     root     179,   1 2020-03-30 16:57 mmcblk0p1
brw------- root     root     179,   2 2020-03-30 16:57 mmcblk0p2
brw------- root     root     179,   3 2020-03-30 16:57 mmcblk0p3
brw------- root     root     179,   4 2020-03-30 16:57 mmcblk0p4
brw------- root     root     179,   5 2020-03-30 16:57 mmcblk0p5
brw------- root     root     179,   6 2020-03-30 16:57 mmcblk0p6
brw------- root     root     179,   7 2020-03-30 16:57 mmcblk0p7
brw------- root     root     179,  96 2020-03-30 16:57 mmcblk1
brw------- root     root     179,  97 2020-03-30 16:57 mmcblk1p1
drwxr-xr-x root     root              2020-03-30 16:57 platform
brw------- root     root     253,   0 2020-03-30 16:57 zram0

aaand

ls -alR /dev/block/platform

/dev/block/platform:
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
drwxr-xr-x root     root              2020-03-30 16:57 mtk-msdc.0
drwxr-xr-x root     root              2020-03-30 16:57 mtk-msdc.1

/dev/block/platform/mtk-msdc.0:
drwxr-xr-x root     root              2020-03-30 16:57 by-num
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0 -> /dev/block/mmcblk0
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0boot0 -> /dev/block/mmcblk0boot0
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0boot1 -> /dev/block/mmcblk0boot1
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk0p7 -> /dev/block/mmcblk0p7

/dev/block/platform/mtk-msdc.0/by-num:
lrwxrwxrwx root     root              2020-03-30 16:57 p1 -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2020-03-30 16:57 p2 -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              2020-03-30 16:57 p3 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2020-03-30 16:57 p4 -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2020-03-30 16:57 p5 -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2020-03-30 16:57 p6 -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2020-03-30 16:57 p7 -> /dev/block/mmcblk0p7

/dev/block/platform/mtk-msdc.1:
drwxr-xr-x root     root              2020-03-30 16:57 by-num
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk1 -> /dev/block/mmcblk1
lrwxrwxrwx root     root              2020-03-30 16:57 mmcblk1p1 -> /dev/block/mmcblk1p1

/dev/block/platform/mtk-msdc.1/by-num:
lrwxrwxrwx root     root              2020-03-30 16:57 p1 -> /dev/block/mmcblk1p1

Hmm that didn't explain how it works for yours and not his.. and I'd like to figure that out before I change anything.

@Msprg, can you try in recovery

ls -al /dev

and

find /dev/block -type l -iname boot | head -n 1
find /dev/block -type l -iname bootimg | head -n 1

aand

grep -v '#' /etc/*fstab* | grep -E '/boot[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1

aaand

toupper() { echo "$@" | tr '[:lower:]' '[:upper:]'; }
grep_prop() {
  local REGEX="s/^$1=//p"
  shift
  local FILES=$@
  sed -n "$REGEX" $FILES 2>/dev/null | head -n 1
}
for uevent in /sys/dev/block/*/uevent; do
  local DEVNAME=`grep_prop DEVNAME $uevent`
  local PARTNAME=`grep_prop PARTNAME $uevent`
  if [ "`toupper bootimg`" = "`toupper $PARTNAME`" ]; then
    echo /dev/block/$DEVNAME
    break
  fi
done

:raised_hands:

@martobg10, please show me the output of grep -v '#' /etc/*fstab* | grep -E '/boot(img)?[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1 as my previous change broke it on other devices. :roll_eyes:

Output of grep -v '#' /etc/*fstab* | grep -E '/boot(img)?[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1 in recovery

~ # grep -v '#' /etc/*fstab* | grep -E '/boot(img)?[^a-zA-Z]' | grep -oE '/dev/[
a-zA-Z0-9_./-]*' | head -n 1
/dev/bootimg
~ #

Output of grep -v '#' *fstab* | grep -E '/boot(img)?[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1 in system (fstab files are located in "/", not "/etc/")

Nothing displayed. These are the files that contain fstab in their names.

root@Pixi3-7_3G:/ # cat fstab.fat.nand
# Android fstab file.
#<src>           <mnt_point>         <type>    <mnt_flags and options>                 <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

/emmc@usrdata     /data               ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check,encryptable=footer
/emmc@protect_f   /protect_f          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/emmc@protect_s   /protect_s          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/devices/platform/mtk-msdc.0/mmc_host   auto      vfat      defaults        voldmanaged=sdcard0:emmc@fat,noemulatedsd
/devices/platform/mtk-msdc.1/mmc_host   auto      vfat      defaults        voldmanaged=sdcard1:auto
/devices/platform/mt_usb                auto      vfat      defaults        voldmanaged=usbotg:auto


root@Pixi3-7_3G:/ # cat fstab.nand
# Android fstab file.
#<src>           <mnt_point>         <type>    <mnt_flags and options>                 <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

/emmc@usrdata     /data               ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check,encryptable=footer
/emmc@protect_f   /protect_f          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/emmc@protect_s   /protect_s          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/devices/platform/mtk-msdc.0/mmc_host   auto      vfat      defaults        voldmanaged=sdcard0:emmc@fat,noemulatedsd
/devices/platform/mtk-msdc.1/mmc_host   auto      vfat      defaults        voldmanaged=sdcard1:auto
/devices/platform/mt_usb                auto      vfat      defaults        voldmanaged=usbotg:auto


root@Pixi3-7_3G:/ # cat fstab
# Android fstab file.
#<src>           <mnt_point>         <type>    <mnt_flags and options>                 <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK

/emmc@usrdata     /data               ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check,encryptable=footer
/emmc@protect_f   /protect_f          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/emmc@protect_s   /protect_s          ext4      noatime,nosuid,nodev,noauto_da_alloc    wait,check
/devices/platform/mtk-msdc.0/mmc_host   auto      vfat      defaults        voldmanaged=sdcard0:emmc@fat,noemulatedsd
/devices/platform/mtk-msdc.1/mmc_host   auto      vfat      defaults        voldmanaged=sdcard1:auto
/devices/platform/mt_usb                auto      vfat      defaults        voldmanaged=usbotg:auto

well,

ls -al /dev
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
---------- root     root            0 2020-03-31 08:42 .coldboot_done
crw------- root     root     253,   0 2020-03-31 08:42 BOOT
crw------- root     root     242,   0 2020-03-31 08:42 MTK_SMI
crw------- root     root     251,   0 2020-03-31 08:42 MT_pmic_adc_cali
crw------- root     root      10,  49 2020-03-31 08:42 RT_Monitor
-r--r--r-- root     root       131072 2020-03-31 08:42 __properties__
crw------- root     root     239,   0 2020-03-31 08:42 accdet
crw------- root     root      10,  51 2020-03-31 08:42 aed0
crw------- root     root      10,  50 2020-03-31 08:42 aed1
crw-rw-r-- system   radio     10,  54 2020-03-31 08:42 alarm
crw------- root     root     238,  15 2020-03-31 08:42 android
crw-rw---- adb      adb       10,  28 2020-03-31 08:42 android_adb
crw-rw-rw- root     root      10,  59 2020-03-31 08:42 ashmem
crw-rw-rw- root     root      10,  60 2020-03-31 08:42 binder
drwxr-xr-x root     root              2020-03-31 08:42 block
crw------- root     root     238,  18 2020-03-31 08:42 bmtpool
crw------- root     root     238,   9 2020-03-31 08:42 bootimg
crw------- root     root     250,   0 2020-03-31 08:42 btif
drwxr-xr-x root     root              2020-03-31 08:42 bus
crw------- root     root     238,  16 2020-03-31 08:42 cache
crw------- root     root     236,   0 2020-03-31 08:42 camera-isp
crw------- root     root     233,   0 2020-03-31 08:42 camera-pipemgr
crw------- root     root     235,   0 2020-03-31 08:42 camera-sysram
crw------- root     root       5,   1 2020-03-31 08:42 console
crw------- root     root      10,  31 2020-03-31 08:42 cpu_dma_latency
crw------- root     root      10, 236 2020-03-31 08:42 device-mapper
crw------- root     root     196,   0 2020-03-31 08:42 devmap
crw------- root     root     244,   0 2020-03-31 08:42 dummy_cam_cal
crw------- root     root     243,   0 2020-03-31 08:42 dummy_eeprom
crw-rw---- root     audio     10,  43 2020-03-31 08:42 eac
crw------- root     root      10,  46 2020-03-31 08:42 ebc
crw------- root     root     238,   2 2020-03-31 08:42 ebr1
crw------- root     root     238,  14 2020-03-31 08:42 expdb
crw-rw-rw- root     root       1,   7 2020-03-31 08:42 full
crw------- root     root      10, 229 2020-03-31 08:42 fuse
crw------- root     root     234,   0 2020-03-31 08:42 gps
drwxr-xr-x root     root              2020-03-31 08:42 graphics
crw------- root     root      10,  33 2020-03-31 08:42 gsensor
crw------- root     root      10,  36 2020-03-31 08:42 hid-keyboard
crw------- root     root      10,  34 2020-03-31 08:42 hwmsensor
drwxr-xr-x root     root              2020-03-31 08:42 input
crw------- root     root      10,  48 2020-03-31 08:42 ion
crw------- root     root     248,   0 2020-03-31 08:42 kd_camera_flashlight
crw------- root     root     237,   0 2020-03-31 08:42 kd_camera_hw
crw------- root     root       1,  11 2020-03-31 08:42 kmsg
drwxr-xr-x root     root              2020-03-31 08:42 log
crw------- root     root     238,  13 2020-03-31 08:42 logo
crw------- root     root      10, 237 2020-03-31 08:42 loop-control
crw------- root     root      10,  41 2020-03-31 08:42 mali0
crw------- root     root     238,   1 2020-03-31 08:42 mbr
crw------- root     root     238,  12 2020-03-31 08:42 misc
crw------- root     root      10,  44 2020-03-31 08:42 misc-sd
crw------- root     root      10,  45 2020-03-31 08:42 mt_otg_test
crw------- root     root      10,  38 2020-03-31 08:42 mtfreqhopping
crw------- root     root      10,  39 2020-03-31 08:42 mtgpio
crw------- root     root     240,   0 2020-03-31 08:42 mtk-adc-cali
crw------- root     root      10,  37 2020-03-31 08:42 mtk-kpd
crw------- root     root     249,   0 2020-03-31 08:42 mtk_almk
crw------- root     root     241,   0 2020-03-31 08:42 mtk_disp
crw------- root     root     247,   0 2020-03-31 08:42 mtk_jpeg
crw------- root     root     252,   0 2020-03-31 08:42 mtk_sched
crw------- root     root     246,   0 2020-03-31 08:42 mtkfb_vsync
crw-rw---- root     mtp       10,  27 2020-03-31 08:42 mtp_usb
crw------- root     root      10,  30 2020-03-31 08:42 network_latency
crw------- root     root      10,  29 2020-03-31 08:42 network_throughput
crw-rw-rw- root     root       1,   3 2020-03-31 08:42 null
crw------- root     root     238,   4 2020-03-31 08:42 nvram
crw------- root     root     245,   0 2020-03-31 08:42 pmt
crw-rw---- radio    vpn      108,   0 2020-03-31 08:42 ppp
crw------- root     root     238,   0 2020-03-31 08:42 preloader
crw------- root     root     238,   3 2020-03-31 08:42 pro_info
crw------- root     root     238,   5 2020-03-31 08:42 protect_f
crw------- root     root     238,   6 2020-03-31 08:42 protect_s
crw------- root     root      10,   1 2020-03-31 08:42 psaux
crw-rw-rw- root     root       5,   2 2020-03-31 08:44 ptmx
drwxr-xr-x root     root              1970-01-01 00:00 pts
crw------- root     root       2,   0 2020-03-31 08:42 ptyp0
crw------- root     root       2,   1 2020-03-31 08:42 ptyp1
crw------- root     root       2,   2 2020-03-31 08:42 ptyp2
crw------- root     root       2,   3 2020-03-31 08:42 ptyp3
crw------- root     root       2,   4 2020-03-31 08:42 ptyp4
crw------- root     root       2,   5 2020-03-31 08:42 ptyp5
crw------- root     root       2,   6 2020-03-31 08:42 ptyp6
crw------- root     root       2,   7 2020-03-31 08:42 ptyp7
crw------- root     root       2,   8 2020-03-31 08:42 ptyp8
crw------- root     root       2,   9 2020-03-31 08:42 ptyp9
crw------- root     root       2,  10 2020-03-31 08:42 ptypa
crw------- root     root       2,  11 2020-03-31 08:42 ptypb
crw------- root     root       2,  12 2020-03-31 08:42 ptypc
crw------- root     root       2,  13 2020-03-31 08:42 ptypd
crw------- root     root       2,  14 2020-03-31 08:42 ptype
crw------- root     root       2,  15 2020-03-31 08:42 ptypf
crw-rw-rw- root     root       1,   8 2020-03-31 08:42 random
crw------- root     root     238,  10 2020-03-31 08:42 recovery
crw------- root     root     254,   0 2020-03-31 08:42 rtc0
crw------- root     root     238,  11 2020-03-31 08:42 sec_ro
crw------- root     root     238,   7 2020-03-31 08:42 seccfg
crw------- root     root      10, 231 2020-03-31 08:42 snapshot
drwxr-xr-x root     root              2020-03-31 08:42 snd
drwxr-xr-x root     root              2020-03-31 08:42 socket
crw------- root     root      10,  63 2020-03-31 08:42 sw_sync
crw------- root     root      10,  62 2020-03-31 08:42 tgt
crw------- root     root      10,  32 2020-03-31 08:42 touch
crw------- root     root      10,  47 2020-03-31 08:42 tpd_em_log
crw-rw-rw- root     root       5,   0 2020-03-31 08:42 tty
crw------- root     root     232,   0 2020-03-31 08:42 ttyGS0
crw------- root     root     232,   1 2020-03-31 08:42 ttyGS1
crw------- root     root     232,   2 2020-03-31 08:42 ttyGS2
crw------- root     root     232,   3 2020-03-31 08:42 ttyGS3
crw------- root     root     204, 209 2020-03-31 08:42 ttyMT0
crw------- root     root     204, 210 2020-03-31 08:42 ttyMT1
crw------- root     root     204, 211 2020-03-31 08:42 ttyMT2
crw------- root     root     204, 212 2020-03-31 08:42 ttyMT3
crw------- root     root       3,   0 2020-03-31 08:42 ttyp0
crw------- root     root       3,   1 2020-03-31 08:42 ttyp1
crw------- root     root       3,   2 2020-03-31 08:42 ttyp2
crw------- root     root       3,   3 2020-03-31 08:42 ttyp3
crw------- root     root       3,   4 2020-03-31 08:42 ttyp4
crw------- root     root       3,   5 2020-03-31 08:42 ttyp5
crw------- root     root       3,   6 2020-03-31 08:42 ttyp6
crw------- root     root       3,   7 2020-03-31 08:42 ttyp7
crw------- root     root       3,   8 2020-03-31 08:42 ttyp8
crw------- root     root       3,   9 2020-03-31 08:42 ttyp9
crw------- root     root       3,  10 2020-03-31 08:42 ttypa
crw------- root     root       3,  11 2020-03-31 08:42 ttypb
crw------- root     root       3,  12 2020-03-31 08:42 ttypc
crw------- root     root       3,  13 2020-03-31 08:42 ttypd
crw------- root     root       3,  14 2020-03-31 08:42 ttype
crw------- root     root       3,  15 2020-03-31 08:42 ttypf
crw-rw---- system   vpn       10, 200 2020-03-31 08:42 tun
crw------- root     root     238,   8 2020-03-31 08:42 uboot
crw-rw---- system   net_bt_stack  10,  61 2020-03-31 08:42 uhid
crw------- root     root      10,  35 2020-03-31 08:42 uibc
crw-rw---- system   net_bt_stack  10, 223 2020-03-31 08:42 uinput
crw-rw-rw- root     root       1,   9 2020-03-31 08:42 urandom
drwxrwx--- shell    shell             2020-03-31 08:42 usb-ffs
crw-rw---- root     usb       10,  26 2020-03-31 08:42 usb_accessory
crw------- root     root     238,  17 2020-03-31 08:42 usrdata
crw------- root     root      10,  42 2020-03-31 08:42 uvvp_hotplug
crw------- root     root     154,   0 2020-03-31 08:42 wmtdetect
crw------- root     root      10,  53 2020-03-31 08:42 xLog
crw------- root     root      10,  40 2020-03-31 08:42 xt_qtaguid
crw-rw-rw- root     root       1,   5 2020-03-31 08:42 zero

both find found nothing.

output of ls -al /dev/block/

~ # ls -al /dev/block/
__bionic_open_tzdata: couldn't find any tzdata when looking for localtime!
__bionic_open_tzdata: couldn't find any tzdata when looking for GMT!
__bionic_open_tzdata: couldn't find any tzdata when looking for posixrules!
brw------- root     root       7,   0 2020-03-31 08:42 loop0
brw------- root     root       7,   1 2020-03-31 08:42 loop1
brw------- root     root       7,   2 2020-03-31 08:42 loop2
brw------- root     root       7,   3 2020-03-31 08:42 loop3
brw------- root     root       7,   4 2020-03-31 08:42 loop4
brw------- root     root       7,   5 2020-03-31 08:42 loop5
brw------- root     root       7,   6 2020-03-31 08:42 loop6
brw------- root     root       7,   7 2020-03-31 08:42 loop7
brw------- root     root     179,   0 2020-03-31 08:42 mmcblk0
brw------- root     root     179,  32 2020-03-31 08:42 mmcblk0boot0
brw------- root     root     179,  64 2020-03-31 08:42 mmcblk0boot1
brw------- root     root     179,   1 2020-03-31 08:42 mmcblk0p1
brw------- root     root     179,   2 2020-03-31 08:42 mmcblk0p2
brw------- root     root     179,   3 2020-03-31 08:42 mmcblk0p3
brw------- root     root     179,   4 2020-03-31 08:42 mmcblk0p4
brw------- root     root     179,   5 2020-03-31 08:42 mmcblk0p5
brw------- root     root     179,   6 2020-03-31 08:42 mmcblk0p6
brw------- root     root     179,   7 2020-03-31 08:42 mmcblk0p7
brw------- root     root     179,  96 2020-03-31 08:42 mmcblk1
brw------- root     root     179,  97 2020-03-31 08:42 mmcblk1p1
drwxr-xr-x root     root              2020-03-31 08:42 platform
brw------- root     root     253,   0 2020-03-31 08:42 zram0

now grep on the other hand...

~ # grep -v '#' /etc/*fstab* | grep -E '/boot[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z
0-9_./-]*' | head -n 1
/dev/bootimg
~ #

aaand for your script... nothing happened.

~ # toupper() { echo "$@" | tr '[:lower:]' '[:upper:]'; }
~ # grep_prop() {
>   local REGEX="s/^$1=//p"
>   shift
>   local FILES=$@
>   sed -n "$REGEX" $FILES 2>/dev/null | head -n 1
> }
~ # for uevent in /sys/dev/block/*/uevent; do
>   local DEVNAME=`grep_prop DEVNAME $uevent`
>   local PARTNAME=`grep_prop PARTNAME $uevent`
>   if [ "`toupper bootimg`" = "`toupper $PARTNAME`" ]; then
>     echo /dev/block/$DEVNAME
>     break
>   fi
> done
~ #

I have also tried putting script into file and executing it. Script ran and no any result.

Aha! So something is laid out differently in your fstabs and that's why it finds /dev/bootimg on your device and not the OP's. Awesome.

Finally, @Msprg, please do:

grep -v '#' /etc/*fstab* | grep -E '/boot(img)?[^a-zA-Z]' | grep -oE '/dev/[a-zA-Z0-9_./-]*' | head -n 1

and then

find /dev \( -type b -o -type c -o -type l \) -iname bootimg | head -n 1

:slightly_smiling_face:

Okay so...
in /etc I have file fstab (content:)

/dev/block/mmcblk0p6 /cache ext4 rw 0 0
/dev/block/mmcblk0p7 /data ext4 rw 0 0
/dev/block/mmcblk0p5 /system ext4 rw 0 0
/dev/block/mmcblk1p1 /external_sd vfat rw 0 0

and recovery.fstab (content:)

# mount point   fstype    device        [device2]

/boot               emmc                    /dev/bootimg                flags=display="Kernel";backup=1
/logo               emmc                /dev/logo                                       flags=display="Logo";backup=1
/cache              ext4                    /emmc@cache        flags=display="Cache";wipeingui;backup=1
/data               ext4                    /emmc@usrdata               flags=display="data";storage;wipeingui;backup=1
/nvram              emmc                /dev/nvram                                      flags=display="Nvram";backup=1
/recovery           emmc                    /dev/recovery               flags=display="Recovery";backup=1
/system         ext4                /emmc@android        flags=display="System";wipeingui;backup=1
/external_sd    auto            /dev/block/mmcblk1p1    /dev/block/mmcblk1      flags=display="MicroSD";storage;wipeingui;removable

Both of your grep and find commands, as you have written them, sucessfully found /dev/bootimg

Oh yes, @osm0sis and what about that magisk manager direct flashing not working? Is it suposed to be that way, RN, or is it someting still broken in canary manager?

Yep, that confirms it.

@Msprg's recovery.fstab has the boot line like this:

/boot               emmc                    /dev/bootimg                flags=display="Kernel";backup=1

where @martobg10's has:

/dev/bootimg            /bootimg       emmc    defaults                                defaults

so it having it as /boot is why it could be found by the original find_boot_image fstab fallback while in recovery.

I believe fixing both those functions (find_block and find_boot_image) with my PR will get it working everywhere for you guys. :+1:

Was this page helpful?
0 / 5 - 0 ratings