While I can flash these versions of Magisk canary and boot without encountering bootloops, the system cannot detect the presence of Magisk (Magisk Manager shows installed status as N/A). It looks as if the device is not rooted.
This is tested on LineageOS 17.1 (20200707) ROM. After some bisecting I've confirmed that the build 20407 (2aede977) is the last known good canary that works on this device. The current one at the time of writing, 20419, is broken as well.
EDIT: Should also mention that the latest Magisk Manager is broken on this device as well. The canary version 285 is the last known good one. From 286, the superuser prompt stops showing up and I cannot grant any superuser rights. Starting from 289 things become a bit different, that the superuser prompt shows for a brief moment, then disappears, before I could grant any superuser rights.
EDIT 2: It seems hiding Magisk Manager will require downloading the latest canary (291 at the time of writing) which is not working correctly here. Is there a way to downgrade it to the canary I want? (PS: For the aforementioned superuser prompt issue, setting Automatic Response to Grant will not fix it, and the apps requested will not show up in the Superuser list).
EDIT 3: Another issue (that has existed for quite a while) would be that on Pixel C, Magisk Manager needs to be manually installed after flashing.
Could you grab a logcat on boot?
This is a logcat, booted after installing 20424 canary, and manually installed Magisk Manager, as on Pixel C it never got installed successfully (and the issue has been there for much longer than this).
Magisk Manager shows Magisk is not installed, and there's not even a single mention about Magisk init. Only Magisk-related references are when I install and run the manager.
The issue appears to be similar to #3042. The ROM is crDroid 10 v6.9 (20200811) and it's in a fresh state.
@topjohnwu I've bisected the commit that broke this device: dbf8c412091c9abb6449d7fadb6ef7e6ca456563
It took me 4 builds between 20407 and 20408 to find this commit. This commit appears to be addressing an issue with 2SI...
NOTE: When using an Android 10 ROM, the Pixel C is A-Only, SAR with Ramdisk. After some reading I think the device is indeed 2SI under Android 10 and the commit is relevant.
@lss4 your ROM seems to be using some non standard init, or else it shall always fallback to using fstab.
Maybe the issue is that there is missing kernel boot args so both MagiskInit and init cannot find the fstab filename
Magisk before this commit worked, but still require a manual installation of Magisk Manager afterwards as it doesn't get installed automatically.
The Magisk Manager installation issue on this device has existed for much longer that I couldn't really remember when it started. It wasn't really a serious issue as the Manager will work (and could be hidden) once manually installed from system.
Not sure if the issue with Magisk Manager's installation might also be related to fstab (which in turn defines the system's mount points)...
On the other hand, I'm considering conducting tests regarding issues I had with latest Magisk Manager on this device, using a working Magisk commit as the base (will put up a separate issue about that).
@lss4 because before that commit, Magisk directly hacks the DTB fstab. After that commit, it will instead hack init to load from a fstab file instead because modifying dtbs are proven to break a lot of devices unexpectedly.
May you give me an output of cat /proc/cmdline?
Also, the boot image of the ROM you are using will also be nice
This is done using Magisk commit 8c4fd759 which is the last known good one.
dragon:/ # cat /proc/cmdline
cros_secure vpr=0x08000000@0xf6800000 cros_legacy console= init=/init rw ignore_loglevel=1 drm.atomic=1 firmware_class.path=/vendor/firmware kern_guid=97d8b4b5-ac95-4aa6-a388-0f66ecb04f2e no_console_suspend androidboot.selinux=permissive
And here are dumps of boot.img from TWRP, one on a broken commit (which I think is dbf8c412), the other on a working commit (8c4fd759).
boot-broken.emmc.win.gz
boot-good.emmc.win.gz
@lss4 here you got the issue: there is no androidboot.hardware=<value> entry in the kernel cmdline, which makes MagiskInit and stock init unable to get the filename of fstab to create/read
Just flashed the test kernel and 20425 canary. It's working now. Thanks!
Most helpful comment
@topjohnwu I've bisected the commit that broke this device: dbf8c412091c9abb6449d7fadb6ef7e6ca456563
It took me 4 builds between 20407 and 20408 to find this commit. This commit appears to be addressing an issue with 2SI...
NOTE: When using an Android 10 ROM, the Pixel C is A-Only, SAR with Ramdisk. After some reading I think the device is indeed 2SI under Android 10 and the commit is relevant.