[ROM][13.0_r43][Official]crDroid Android[v9.5][May 2023 ASB]

Search This thread
Hi, same issue here.
In the meantime I'm trying Samuel_Owolabi's fix to check if at least NFC stops crashing.

EDIT: no joy, NFC keeps crashing :(
Okay, that sounds more like an upstream issue in NFC under Android 13 itself, with our LineageOS base & source-built vendor. We switched to building the NFC stack from source in Android 13, and it does seem like this kind of function broke for a few people, while it still worked with the prebuilt NFC blobs in Android 12.

That's good and bad news.

The good news is that you could potentially help a LOT of people (everyone using LineageOS & derivatives, like crDroid) on OnePlus 6-series... if you're able to submit a bug report with usable logs and jump through all the hoops required to get the LOS devs to engage with you on the issue.

The bad news is that it probably means doing a clean install of official LineageOS with the recommended Google Apps package (MindTheGapps arm64 for Android 13.0 official), and then having an environment where you can reboot, recreate the issue, and then capture logs shortly thereafter.

It's hard to get traction on something like this sometimes. But if you've got the ability to follow the instructions to the letter, and submit the LineageOS bugreport, it would be immensely helpful. I've tried switching back to using the prebuilt NFC stack from Android 12 in 13, and it broke everything.

Go to https://wiki.lineageos.org/how-to/bugreport and follow those instructions to submit the bug report as properly/completely as possible.
Go to https://wiki.lineageos.org/how-to/logcat and read up on how to take logs, and practice.

@dhemker You too. That's how we're gonna get anywhere with this; by getting some actionable information that luk1337 & EdwinMoq and friends at LineageOS can do something with.
 

faabiano7

Senior Member
Oct 6, 2014
50
6
I upgraded from 9.1 to 9.2 and everything seems rock solid.

Two things I miss as they were present in several other roms:
1. Set a maximum and minimum level for charging the battery. I believe they call this Smart Charger
2. A sleep mode that activates airplane mode and disables various other functions at the programmed time to avoid battery consumption during the night
 

ashish1989

Senior Member
Aug 22, 2014
491
38
Ghaziabad
Enable "Developer Settings" (Settings > About phone > scroll to the bottom & tap on "Build number" until it shows a toast message saying "You are now a developer!"), go to Settings > System > Developer options, scroll down about 2/3 of the way and look for "Display cutout".
Set it to "Hide" and see if that makes your life better.
But that will shift whole status bar icons below notch area. Any other workaround apart that?
 
I upgraded from 9.1 to 9.2 and everything seems rock solid.

Two things I miss as they were present in several other roms:
1. Set a maximum and minimum level for charging the battery. I believe they call this Smart Charger
2. A sleep mode that activates airplane mode and disables various other functions at the programmed time to avoid battery consumption during the night
1. It's in Settings > crDroid Settings > Miscellaneous > Smart Charging
2. Sounds cool. If you know some commits that you could recommend to the ROM dev team, that would help. I'm just the maintainer for this device and have very limited ability to help import new framework features (which that sounds like).
But that will shift whole status bar icons below notch area. Any other workaround apart that?
Not that I'm aware of, sadly.

That doesn't mean it doesn't exist, I just don't know. But then, I'm not typically watching stuff that's wider than 16:9 aspect anyway.

I'm not entirely sure what the "Full Screen Apps" toggles in "crDroid Settings > User Interface" are supposed to do, but it either doesn't work or does something else. I'll check with the dev team, see if I've got something broken in the device tree after all.
 
  • Like
Reactions: faabiano7

ashish1989

Senior Member
Aug 22, 2014
491
38
Ghaziabad
Not that I'm aware of, sadly.

That doesn't mean it doesn't exist, I just don't know. But then, I'm not typically watching stuff that's wider than 16:9 aspect anyway.

I'm not entirely sure what the "Full Screen Apps" toggles in "crDroid Settings > User Interface" are supposed to do, but it either doesn't work or does something else. I'll check with the dev team, see if I've got something broken in the device tree after all.
If in display settings we can get a option like hide notch in apps in fullscreen, that would be great or something else. Its really annoying to see full screen videos with notch cutout. In stock A11 rom I use a app called 'round screen corners and hide notch' but the app is not working in A13 sadly.
 
  • Like
Reactions: Terminator.J

marfai83

Member
Oct 17, 2022
25
9
1. It's in Settings > crDroid Settings > Miscellaneous > Smart Charging
2. Sounds cool. If you know some commits that you could recommend to the ROM dev team, that would help. I'm just the maintainer for this device and have very limited ability to help import new framework features (which that sounds like).

Not that I'm aware of, sadly.

That doesn't mean it doesn't exist, I just don't know. But then, I'm not typically watching stuff that's wider than 16:9 aspect anyway.

I'm not entirely sure what the "Full Screen Apps" toggles in "crDroid Settings > User Interface" are supposed to do, but it either doesn't work or does something else. I'll check with the dev team, see if I've got something broken in the device tree after all.
Actually I already opened a bug some time ago with a couple of logcats:


But I fear it is being ignored :(
 
  • Like
Reactions: Terminator.J
Actually I already opened a bug some time ago with a couple of logcats:


But I fear it is being ignored :(
Wait, the other person's issue is that NFC stops prematurely when using an authenticator app that's trying to read a certain kind of tag in a government-issued ID card, using the Android 13 source-built NFC stack.

Your issue (as of a month ago when the bug was opened on GitLab) was that the stack was just crashing constantly, and luk1337 said it looked like the already-closed bug.

Do you keep your phone in the vicinity of a government-issued ID card with an NFC tag in it, or have a wallet case or something?

Right now, as far as I know, we're at the point where most credit card & bus pass NFC tags work (for contactless payments) but there are some other types that seem to be bugged. You're still just having NFC crash (and cause SystemUI to hang) any time it's enabled?
 

dhemker

Senior Member
Mar 23, 2017
58
139
Wait, the other person's issue is that NFC stops prematurely when using an authenticator app that's trying to read a certain kind of tag in a government-issued ID card, using the Android 13 source-built NFC stack.

Your issue (as of a month ago when the bug was opened on GitLab) was that the stack was just crashing constantly, and luk1337 said it looked like the already-closed bug.

Do you keep your phone in the vicinity of a government-issued ID card with an NFC tag in it, or have a wallet case or something?

Right now, as far as I know, we're at the point where most credit card & bus pass NFC tags work (for contactless payments) but there are some other types that seem to be bugged. You're still just having NFC crash (and cause SystemUI to hang) any time it's enabled?
The phone is always in vicinity of the card, both stacked on a table. Nothing around. I came from LOS 19, there the eID card worked flawlessly - same setup all the times. Same error also occurs fot the health insurance card; has worked in LOS 19, too. Furthermore, my UI does not hang nor does the NFC stack crash.
 

marfai83

Member
Oct 17, 2022
25
9
Wait, the other person's issue is that NFC stops prematurely when using an authenticator app that's trying to read a certain kind of tag in a government-issued ID card, using the Android 13 source-built NFC stack.

Your issue (as of a month ago when the bug was opened on GitLab) was that the stack was just crashing constantly, and luk1337 said it looked like the already-closed bug.

Do you keep your phone in the vicinity of a government-issued ID card with an NFC tag in it, or have a wallet case or something?

Right now, as far as I know, we're at the point where most credit card & bus pass NFC tags work (for contactless payments) but there are some other types that seem to be bugged. You're still just having NFC crash (and cause SystemUI to hang) any time it's enabled?
So, I have both the issue with the ID card and the NFC constantly crashing, despite the fix of the bug related to the mine. I think that everything is connected.

I don't keep the phone close to my ID card.
 
Last edited:
The phone is always in vicinity of the card, both stacked on a table. Nothing around. I came from LOS 19, there the eID card worked flawlessly - same setup all the times. Same error also occurs fot the health insurance card; has worked in LOS 19, too. Furthermore, my UI does not hang nor does the NFC stack crash.

If you have the time to switch to official LineageOS, with the recommended MindTheGapps official for Google Apps (if you need Google Apps package), and could add logs of your crashes to the LineageOS bug tracker issue at https://gitlab.com/LineageOS/issues/android/-/issues/5417, that would help with getting luk1337 and friends to have more data.

I think I have one or two people in the Telegram group that still face this issue that I could ask to contribute as well, so that they know that NFC isn't fixed yet.
 
  • Like
Reactions: marfai83
Hello,
i've installed this rom with nikgapps and all is working fine... very great work!!!! thank you for this rom!!!!!!
The only little issue is the low precision of fingerprint
I've found three things to help with the fingerprint:
- Remove any tempered glass screen protector, say a prayer, roll some dice, light a candle, sacrifice a chicken, and pick another brand of screen protector at random and hope it works better.
- Wash your hands thoroughly, then use a little rubbing alcohol on the fingertip to help dehydrate the skin slightly, use non-moisturizing hand sanitizer to clean the screen really good, then register the print twice for each thumb/finger you want to use.
- Lick your thumb first.

If all that fails, consider upgrading to a 6 instead of a 6T; it's basically superior in every way that matters. 😁
 
  • Haha
Reactions: crisontur

onlylove943

Member
Dec 17, 2017
40
2
How do I make At a glance widget showing time and when I press on the time it will open clock app? And weather too. Is there anyway to make it when I press on temperature, it will open weather provider website? I used to use those features with lawnchair, but lawnchair isn't support for Android 13.
 

onlylove943

Member
Dec 17, 2017
40
2
And if possible, is there anyway to make home screen folder background transparent or atleast blur? It really look horrible haha
 

luvis

Senior Member
Dec 27, 2010
51
15
TLDR: Bootloop after dirty flash. Help

Hi. So I was having terrible issues with crdroid 8. For some reason I had suddenly lost access to all files on the phone and so there was no way for me to access anything. I already had the latest version so I thought, I can't break anything further and dirty flashed version 9 and nikgapps. It worked fine and the phone was up and running and perfect for about a week. Then my battery died and when pluging it in to boot up, I'm in an endless boot loop. Is there any way to fix this? I've tried reflashing both the rom, boot.img and nikgapps but it doesn't help. Eventually the bootloop ended and I was thrown back into the classic fastboot screen and am unable to leave that screen, it just comes back no matter what I try. Any ideas?
 

NOTXpert(*_*)

New member
Mar 20, 2023
1
1
Facing FCing with the GCam while switching to different modes ( photo and video ) or while switching to front and back camera... Tried with the config too but still crashing... And for some reason in portrait mode the front camera opens in zoomed and it can't me zoomed out as it displays 1x... Other than this the notification pannel lags while opening it to see notifications if there are available ( for like 5-6 notifications it laggs )
 
  • Like
Reactions: faabiano7
Facing FCing with the GCam while switching to different modes ( photo and video ) or while switching to front and back camera... Tried with the config too but still crashing... And for some reason in portrait mode the front camera opens in zoomed and it can't me zoomed out as it displays 1x... Other than this the notification pannel lags while opening it to see notifications if there are available ( for like 5-6 notifications it laggs )
There a test build that tries to address the camera going to crashdump issue. Come find download links & release notes & such in the most recent pinned message in the TG group.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    Well that took an extra two weeks, but hey.
    Pushed 9.4 to OTA last night, including fixes for the white corners peeking out from under the curve on enchilada.
    The white corners will still be there in screenshots, because... reasons.
    Look, there are kind of two ways to get to a similar place with rounded corners & a notch & status bar spacing.
    I kinda hopped over to a different one than what LineageOS uses, because it played better with burn-in protection a few months ago (that's what was up with stuff wandering around), while setting "rounded_corner_radius[_top|_bottom]" plus "rounded_corner_content_padding" gets ignored more?
    I dunno, it's a moving target and I'm tired of it.

    I need to sort out my dimens overlay commits and then try A/B testing again to see if it's even necessary still on A13 now. Heh, "need to". I need to stop having to worry about little stuff like that, and get on with life.

    ANYWAY! crDroid 9.4 pushed to OTA, second post has updated changelog (and link to 01 May updated release of my custom config NikGapps, recommended package going forward).
    2
    Meanwhile, official 9.5 OTA update is out! Check out those release notes in Post #2, as well as updated custom-config NikGapps based on 31 May releases.

    If anyone feels like they're bored of being stable, check out the TG channel for a highly experimental kernel build including OC GPU frequencies, KernelSU support, and pointless extra TCP congestion algorithms for that circa-2019 gaming kernel flavor!
    1
    ANYWAY! crDroid 9.4 pushed to OTA, second post has updated changelog (and link to 01 May updated release of my custom config NikGapps, recommended package going forward).
    This new update 9.4 has been really good. It is visibly a lot smoother, no stutters and the overall experience is great. Thanks!
    1
    Percentage for the battery has gone from the expanded notifications
    1
    is it not possible to disable blur? like when unlocking the screen?
    Settings > System > Developer Options > Toggle off "Allow window-level blurs".
  • 17
    BE3pE0l.png

    *** Disclaimer ***​

    I am not responsible for any damage you cause to your device.
    I hope you like reading.
    You have been warned.


    crDroid is built on top of LineageOS, and is designed to increase performance and reliability over stock Android for your device, while also attempting to bring you many of the best features in existence today.

    Features:​

    General:​

    See our current feature list at our GitHub!

    Device-specific:​

    • OnePlus Camera & Gallery fully working (using APKs directly from OOS 11.1.2.2 or apkmirror.com with verifiable signatures; currently shipping OnePlus Camera v3.14.40 and OnePlus Gallery v4.0.297); including 60fps video recording in 1080p & 4K, watermark, depth effect, smart content detection, actually-working HDR, et al.
    • DeviceExtras for OnePlus-feature-specific customizations including alert slider modes, DC dimming, High Brightness Mode including customizable Auto-HBM threshold, customizable rendered FPS overlay, digital earpiece/mic gain controls, built-in UI jitter test, and 3-category vibration strength control (thanks to AnierinBliss for all his work on this implementation).
    • OnePlus-style color modes available through LiveDisplay (6 & 6T have slightly different implementations and you may not notice a difference, but think of "Natural" and "Wide Gamut" like uncalibrated versions of "sRGB" and "DCI-P3").
    • Ongoing kernel tuning (trying to get the best of both worlds tuning existing QTI perfd & scheduler & lmk, rather than cutting over to Google libperfmgr/powerhints/userspace lmk, definite improvements over vanilla LOS, mostly importing/adapting work by EdwinMoq and mcdachpappe).
    • Upstreamed updates from 4.9-q branch of Android common kernel for 4.9 LTS (merges courtesy of BananaFunction).

    Everything you never wanted to know about slots & A/B devices (but have been forced to find out):​

    • "Clean flash": Removing device protection & clearing user settings before installing a bootable system install zip by formatting data.
    • "Dirty flash": Flashing a ROM zip (usually upgrading to new version, sometimes just re-flashing the existing one) without wiping data or anything first.
    • "Wipe data": This used to be synonymous with "factory reset" in TWRP, without formatting the data partition and losing the contents of internal storage. Now, with TWRP being deprecated and using built-in LineageOS-based recovery, "wipe data" and "factory reset" mean the same thing as "format data" (which means, everything in internal storage gets erased).
    • "Format data": Formats the data partition itself, resets all file-based encryption keys, loses all contents of internal storage, and in fact deletes all "user 0" directories (this has some implications for internal storage before & after first boot).
    • "User 0" directories are a series of directories that store userdata for the primary user, "Owner", and get created in various places throughout the filesystem on first system boot if they don't exist already. Anything you copy to "internal storage" while booted in recovery after "formatting data" will actually be copied to /data/media/ instead of /data/media/0/, and will become invisible to regular file browsing after first boot once the system has created /data/media/0, since the system will prefer to use that path for internal storage from then on (so you'll need a root file browser to delete things from /data/media, or just ADB sideload things instead of copying after formatting but before booting).
    • "OTA package": Originally an abbreviation for "over the air", referring to how a software update could be delivered (as opposed to having to take your phone to a carrier's store for a firmware update via serial/USB connection). The common usage in Android circles is any installation zip file that actually includes a bootable system. Is always installed to the currently "inactive slot", and will trigger a slot switch upon the next reboot.
    • Some partitions are duplicated (system, vendor, boot, and a couple others, but not data) and have a "slot A" & "slot B" copy.
    • "Slot A" and "slot B" are absolute designations, but most installer zip scripts use the relative designations: "active" and "inactive". Whichever slot you're booted from currently is "active", and the other one is "inactive".
    • Installing a zip file that's flagged as being an OTA package will 1) install the contents to the "inactive" slot, and then 2) flag the bootloader to switch which slot is considered "active" and "inactive" upon next reboot; causing it to attempt to boot from the formerly-inactive slot's boot partition.
    • The OxygenOS full OTA zip files and all custom ROM installer zip files are considered "OTA packages" and will trigger a slot switch on next boot after installation.
    • You can install multiple OTA zip packages one after the other without rebooting in both the stock recovery and TWRP; they will all get installed into the correct partitions in the "inactive" slot, one on top of the other, and then it will swap active & inactive upon reboot.
    • We don't use what are called "delta" updates, which can patch existing partitions by block or by file; we use full filesystem images. So for us, OTA zip packages are really just a bunch of partition filesystem image files all wrapped up into a "payload.bin" with some extra instructions & metadata/checksums, so when you flash a ROM, it overwrites entire partitions at a time instead of individual files or filesystem blocks within that partition. So if you've changed something in a partition like system that gets written as part of flashing an OTA zip, all your changes are gone. The only thing in the system partition afterward will be what was in the system.img that was included in the ROM zip payload.
    • The partitions that crDroid, LineageOS, and most custom ROMs for OnePlus 6 & 6T install to when flashing are boot (contains recovery & kernel), dtbo, system, vbmeta, and now vendor as of Android 12. If you are planning on going back to an Android 11 ROM that does not build the vendor partition from source (so everything except SyberiaOS, essentially), you'll need to flash the OOS stock vendor partition to both slots from fastboot before installing the OTA zip.
    • "Prebuilt vendor" vs. "source-built" vendor partitions: when first trying to get a custom ROM working on a new device now that we have separate system & vendor partitions & Google's "Project Treble" is a thing, you'll often just leave the contents of the vendor partition alone, because that's where all the proprietary or device-specific stuff lives (manufacturer specific hardware drivers & interfaces, any DRM libraries, custom frameworks & selinux policies for talking to them), and you make a compatibility map of what framework versions you're compiling against in system and what vendor version they're compatible with or supersede or you overlay updated things that should replace stuff in the vendor partition and keep it in system_ext instead. But you're also limited in that if there are some things in vendor, you CAN'T work around it from the ROM side (like, OnePlus Camera working correctly). So often, once the basics are functioning, the goal is to move to building the contents of the vendor partition from source, because you then have the freedom to fix problems with sepolicy, library/framework mismatches, etc. and make things work with the custom ROM instead of only working with the OEM's flavor of Android, and you can still copy individual pre-compiled files from the stock vendor filesystem image if needed (like if there's no open-source equivalent for some driver). We finally got a source-built vendor bringup for OnePlus SDM845 (enchilada & fajita) as part of the Android 12 (lineage-19.1) bringup, so some things work better, and some things work worse, but at least it's possible to fix things and keep moving forward to newer Android versions. However, since we're still dependent upon at least SOME binary blobs copied over from OxygenOS 11.1.2.2, the vendor patch level will remain at the release date for the last release of OOS 11, because we can't know for sure that some component isn't vulnerable, no matter how new all of the source-built components are.
    • "Updating firmware" simply means we're flashing updated contents from the manufacturer into all the OTHER partitions besides the ones that the ROM OTA zip touches. There are another dozen or more of those, besides system & boot, that the full OxygenOS OTA zip would normally write to when you install it. The contents of the system & vendor partitions in custom ROMs for our device are generally built against a particular version of OxygenOS; in this case OOS 11.1.2.2 was the final release by OnePlus before they announced the end of support & updates for the OnePlus 6 series. Some people are still on older firmware that is now dramatically different than what the current custom ROM was intended to deal with (that is, all the stuff from OxygenOS is still based on Android 10, while the ROM is expecting compatibility with Android 11), and while I tend to agree that OxygenOS 10 was better than 11, that doesn't matter when you're talking about installing this custom ROM over it. So please; update to OOS 11.1.2.2 firmware (see instructions below).

    Notes on stock recovery & TWRP:​

    • TWRP is deprecated & unsupported, for purposes of bug reporting & getting help with crDroid. I liked it personally, and I agree with all the reasons for wanting to try and keep using it; but the source has been described as a hot mess, the official releases for enchilada & fajita have not had good compatibility with Android 12 or newer (trouble with decrypting file-based encryption for userdata), and there are too many variations & unofficial TWRP-based recoveries for me to keep track of.
    • Meanwhile, the stock crDroid recovery (based on LineageOS) intentionally cannot decrypt userdata, and doesn't correctly process addon.d OTA survival scripts on A/B devices; so after using it to flash any OTA zips, you'll need to reboot to recovery and manually flash things like Magisk or GApps installers. But for all those shortcomings, it has working fastbootd (aka "Userspace fastboot", which is what happens when you go to "Advanced", then choose "Enter fastboot") that lets you flash one image to both slots at once with a single command, and unlocks critical partitions... while the OnePlus OEM bootloader (where it says "Fastboot Mode" in a square, then goes to the big green "START" text over white & dark red terminal font type text) can't be used to flash every partition to update firmware. Personally, I still think of it as wannabe-class and not a "proper" custom recovery until the Lineage team 1) implements userdata decryption so you can manage files in /data and install updates from internal storage, 2) allows for a factory reset the way we've always all understood it ("wipe data") WITHOUT nuking the contents of internal storage for no good reason ("formatting data"), and 3) gets the updater to call backuptool correctly & process addon.d OTA survival scripts on A/B devices. But they're not going to, and since crDroid is LineageOS-based; it's what we've got, and fastbootd is the best way to update firmware.
    • The takeaway: If you want to try different custom recoveries (new builds of TWRP, OrangeFox, PBRP, whatever), feel free; and let us know how it works! But you're on you're own doing that; it's an unsupported configuration.
    • For purposes of doing updates, plan on doing your initial installation from bootloader & recovery then applying subsequent system OTA updates using the built-in Updater tool (Settings > System > Updater), both with new OTA releases and when choosing a file from "Local Installation". It executes OTA survival scripts correctly from /system/addon.d/ as well. I've personally tested and it correctly preserved Magisk canary for several versions, and MindTheGapps & NikGapps on my tester fajita and MinMicroG "system" install package on my daily driver enchilada.
    • The built-in recovery DOES support use of a USB thumb drive and will mount it in OTG mode, so any place in the instructions you see "adb sideload", you can instead copy all your things to a FAT32-formatted USB stick and then apply the update from there instead.

    Flashing Instructions:​

    Pre-installation prerequisites:​

    • Make sure your bootloader is unlocked (and don't plan on relocking it ffs).
    • Make sure you have a reasonably-current, working installation of android platform tools (adb & fastboot command line binaries & necessary drivers) on your computer, USB drivers, and a known-good USB cable (see links in post #2).
    • Make sure you've downloaded the most recent full OxygenOS OTA installer zip (11.1.2.2), crDroid zip, matching crDroid boot.img, and whatever Magisk/GApps/microG installation packages you want to use to your computer (see links in post #2).
    • Make sure you've backed up whatever data you want to keep to somewhere that's not on your phone; for a new install, we're going to format the data partition and you're going to lose everything from internal storage.
    • If you don't KNOW you already have OOS 11.1.2.2 flashed to BOTH slots, follow the "Updating Firmware" instructions below. You may also want a utility like 7-zip in order to extract .tgz files under Windows.

    Updating Firmware:​

    • Reboot phone to bootloader (no USB cable connected until you've entered OEM bootloader).
    • If you're not already using the stock crDroid recovery, you'll need to 'fastboot flash boot path/to/boot.img' on the computer, substituting in the path & filename for the current crDroid boot.img that you downloaded as part of the prerequisites listed above.
    • Reboot to bootloader again (actually loads new bootloader contents that you just flashed).
    • Use Vol +/- buttons to select "Recovery mode" and press Pwr button to boot stock recovery.
    • Tap "Advanced", then tap "Enter fastboot" (the already-selected first option).
    • Follow the instructions for extracting the partition images from the official OxygenOS Updater full OTA zip you already downloaded using the "payload-dumper-go" utility, and flashing them one at a time, from https://wiki.lineageos.org/devices/enchilada/fw_update or https://wiki.lineageos.org/devices/fajita/fw_update, except for the very last command ('fastboot reboot').
    • If you're only updating firmware and were already on crDroid, you can just 'fastboot reboot' which will go back to booting the system normally. If this is part of coming to crDroid 9.x from another ROM, continue with the first-time installation instructions below.

    First-time installation:​

    (when coming from any other ROM or stock OOS or crDroid 8.x or earlier)
    • *Back up anything you want to keep from the phone's internal storage to your computer/cloud storage, because we're going to format the userdata partition in this process.*
    • Download boot.img & rom zip to computer.
    • Reboot phone to bootloader.
    • Flash boot image to both slots ('fastboot flash boot_a boot.img' then 'fastboot flash boot_b boot.img').
    • Reboot phone to bootloader.
    • Use vol +/- keys to select recovery mode & press power button to enter recovery.
    • On phone, choose "Apply update" > "ADB sideload" & then from computer, 'adb sideload path/to/rom.zip' (substituting the actual path to the actual filename) to sideload the installation zip; the orange recovery header graphic will disappear until the process has completed ("error" messages like "no error", or finishing at 47% on the computer are normal).
    • On phone, choose "Factory reset / Wipe data", and confirm (note: this will erase everything from the phone's internal storage; make sure that you have backed up anything you want to keep first!). If you want to try out f2fs as a filesystem for userdata, give it a shot. It should be stable. If you don't know, just pick ext4; that's what we've been using forever.
    • On phone, choose "Advanced" > "Reboot recovery" to reboot into recovery on the newly-flashed slot.
    • Use adb sideload to flash GApps or microG installer zips (MinMicroG installer requires you to choose "Advanced" > "Mount/unmount system" first, others might as well).
    • Reboot into system.
    • If you want to root with Magisk, complete the initial first boot setup, then reboot the phone back into recovery, choose "Apply update" > "ADB sideload", and then from the computer, 'adb sideload path/to/latest_magisk.apk' to flash Magisk, and reboot back to System afterwards.
    • ???
    • Profit!

    Update installation:​

    • Use the built-in Updater ("Settings > System > Updater") to apply OTA updates as they become available, or to manually flash a ROM zip by going to the three-dot menu in the upper right and choosing "Local update". Seriously, that's it; it processes addon.d survival scripts correctly, including Magisk, MindTheGapps, NikGapps, MinMicroG, and presumably others.
    If you must update from recovery, then be aware that the stock crDroid recovery does NOT process addon.d OTA survival scripts correctly on our non-dynamic, non-virtual A/B system-as-root device, so you'll need to do the following:
    • Reboot phone to recovery.
    • Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' from a terminal on the computer (or use a USB drive with appropraite files copied to it and choose OTG as the update source instead).
    • After installation has completed and the menus have reappeared on the phone, go back, then choose "Advanced > Reboot to recovery" on the phone.
    • Choose "Apply update > Apply from ADB" on the phone, and 'adb sideload path/to/installation.zip' for each addon like Magisk or GApps installation zip you need in order to match what was initially installed on the phone.
    • Reboot system.

    Please see post #2 for current boot.img files, information about Google apps & microG, release notes, installation notes, known issues, and lots of helpful links.
    Please see post #3 for information about bug reporting & troubleshooting.

    Sources:​

    ROM:​

    https://github.com/crdroidandroid

    Device trees:​

    https://github.com/crdroidandroid/android_device_oneplus_enchilada
    https://github.com/crdroidandroid/android_device_oneplus_fajita
    https://github.com/crdroidandroid/android_device_oneplus_sdm845-common
    https://github.com/crdroidandroid/android_hardware_oneplus/tree/13.0-op6

    Kernel:​

    https://github.com/crdroidandroid/android_kernel_oneplus_sdm845

    Vendor-specific:​

    https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_enchilada
    https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_fajita
    https://gitlab.com/crdroidandroid/proprietary_vendor_oneplus_sdm845-common
    https://gitlab.com/crdroidandroid/android_vendor_oneplus_apps
    https://github.com/Terminator-J/vendor_ih8sn

    Download:​

    ROM:​

    https://crdroid.net/enchilada/9
    https://crdroid.net/fajita/9

    Changelog:​

    https://crdroid.net/enchilada/9#changelog
    https://crdroid.net/fajita/9#changelog

    Links:​

    Visit the official website at crDroid.net
    crDroid OnePlus 6/6T Telegram Group
    crDroid Community Telegram Group
    crDroid Updates Telegram Channel
    Donate to help our team pay server costs (PayPal or Patreon)
    Donate to support me in maintaining this device (PayPal or Patreon)
    16

    crDroid 9.5 - May 2023 ASB release notes/changelog:

    Changelog since v9.4 (09 May) release:
    • May 2023 ASB merged.
    • Device trees/hardware/kernel/vendor changes pulled from LineageOS.
    • crDroid:
      • Updated kernel clang version to 17.0.2.
      • Lots of stuff I imagine, I dunno. Haven't been paying attention because I'm always a month behind.
    • Device-specific:
      • Updated kernel commits from bananafunction's lineage-20 branch & upstream LineageOS lineage-20 branch.
      • Much thanks to @snnbyyds for inspiration to dig into crosshatch (Pixel 3XL) trees, and whose work on OP6-series for PixelExperience also helped me figure out a few other things.
      • Added ZRAM writeback for uncompressible pages & configured to mostly match crosshatch (Pixel 3XL, also sdm845).
      • Dropped ZRAM to 25% of system RAM (crosshatch only shipped with 8GB, but we have more hardware variants) & tuned a little more.
      • Some more composition tuning to make it smoove & reduce jank; should help a bit when pulling down shade or on lockscreen with active mediaplayer session visible.
      • Further block device I/O, cgroup & PSI virtual memory pressure tracking tuning.
      • I thought I managed to add back USB-OTG support in recovery, so you can load from a USB thumbdrive instead of ONLY ever being able to flash via ADB sideloading in Android 13, but now it's not working again? Dunno there, I'll keep working on it, maybe...
      • Reverted kernel commits that attempted to lock GPU thermal throttling off by making sysfs node write-once-then-read-only... they were actually locking throttling ON for the last few months, leading the governor to attempt to decrease GPU freqs once the phone got up to operating temperatures (30-40C). Instead, added control to DeviceExtras to allow controlling Adreno thermal throttling from there. If you want to prioritize CPU over GPU, turn it on. If you want to prioritize graphical smoothness, turn it off.
      • Dropped -O3 optimization flag in kernel Makefile back down to -02; should be less crash-dumpy about camera stuff now.
      • For the clang nerds in the back, enabled LLVM_IAS (clang inline assembler) in kernel finally. Whoops, that wasn't getting used automatically even with LLVM=1 enabled... guess we were using gnu binutils assembler before.
      • Also finished enabling VDSO compat and 32-bit VDSO compat cross-compile in kernel, might help speed up... something? That wasn't actually getting built before at any rate, now it is.
      • "Misc tweaks and bugfixes" (dropped another unused charging driver, "qnovo", that wasn't doing anything except making more things show up in sysfs that we don't care about; regular and DASH charging seem unaffected).
    • Overall it seems _slightly_ more battery hungry if you're doing things that utilize kgsl (GPU acceleration) on a regular basis -- so turn off that QS shade background transparency, or turn on GPU throttling. Just feels technically a little smoother, a few more things done right, performance feels good overall.
    • And if you come to the TG channel, I've got a little something something for you kernel-wise that isn't going into the official release build. 😁
    Known issues:
    • Upstream crDroid/LineageOS things:
      • Custom fonts in crDroid Settings don't get reapplied to everything on reboot; need to select a different font & then back to preferred font after restarting.
      • There might occasionally be icons that don't work when "Themed Icons" is enabled in crDroid Home settings. If home screen keeps going black and then reloading, open Settings, then go to Apps > Default Apps, and click the gear next to "crDroid Home" to open our built-in launcher settings, and toggle off "Themed Icons" for now. Send me the crash report URL (paste.crdroid.net) or MatLog zip and it'll tell me which icon needs to get fixed.
    • Google Apps: If you have MindTheGapps or older NikGapps and you have SetupWizard installed as part of your Google Apps package, then enable Multiple Users and create a new Guest User, the "Setup Wizard" activity will fail to run at the end of the new profile creation, which will leave a couple props unset that normally tell Android that you've finished initial setup; and you won't be able to interact with the notifications/QS shade & will only have the "back" button in the navbar. You can either wait 10 minutes and it automagically fixes itself, or exit the "Guest session" without deleting data, and the next time you enter it, you'll have full control over navigation & statusbar/shades. This seems to be a limitation on multiple custom ROMs currently.
    • I don't know if this is an upstream issue or device-specific or certain Google Apps packages, but Google Assistant Hotword Detection/Voice Match causes media playback stutter sometimes. So you can either disable it, or doing an adb sideload installation rather than update seems to help some people (permissions issue in Android 13? who knows). *** Might be fixed in 9.5 ***
    • People don't read documentation.
    • You tell me, with logs!

    Installation notes:​

    • In case of bootloop (boot animation stuck for longer than about 2 minutes and never gets to lock screen), reboot to recovery and manually flash the ROM zip via ADB sideload from computer, then reboot to recovery again, and re-flash your same Google Apps/microG/Magisk/whatever install zips (again via ADB sideload), and reboot system. This *should* take care of any lingering errors with old things getting stuck in your /system/addon.d/ directory that might be trying to preserve old privileged system apps without privileged permissions (which is what causes those boot loops in the first place).
    • The built-in OTA updater in Settings > System > Updater goes a lot faster if you go into Updater preferences and toggle on "prioritize updater process", and make sure the screen stays on by using the Caffeine QS tile, or "never sleep while charging" toggle in Developer Options, or changing your Display timeout to 30 minutes.
    • If you're installing MinMicroG instead of Google Apps, then before ADB sideloading the zip, from built-in recovery on the phone, go to Advanced > and choose "Mount/Unmount System" first. Then go back to "Apply update" and proceed with ADB sideloading as normal to install.

    General Notes:

    • Yes this ROM supports package signature spoofing permission for microG compatibility out of the box (but will work without ANY GApps/microG implementation installed as well).
    • Requires OOS 11.1.2.2 firmware (last official release). You should consider using an Android 10 ROM if you want to continue using Android 10 firmware.
    • Tested against latest Magisk canary, works well.
    • No there won't be official builds with inline GApps; please don't ask. The dev team's policy is vanilla-only whenever possible (and it's very possible with our devices).

    Google Apps:​

    Maintainer doesn't often use Google Apps personally as daily driver, but here are some notes gathered from peoples' testing:
    • TL;DR: If you're doing a fresh install, use this Nik GApps custom version (updated 01 June 2023):
      https://sourceforge.net/projects/ni...ps-crDroid-op6-arm64-13-20230601.zip/download

    • Otherwise, use Nik Gapps Core + Setup Wizard addon (if you're going to restore from a Google Drive cloud backup during setup; *not* the Pixel one, it breaks our launcher) + GoogleSearch addon (for assistant & hotword integration) + GoogleTTS & GoogleTalkback (more voice integration) + Markup (optional, good screenshot editor that you cannot add from Play Store later as a user app) for now.
      https://nikgapps.com/downloads#downloads

    • If you're already on MindTheGapps, and it's working fine, then ignore this. If you're on official MindTheGapps and facing weird battery drain issues, try my modified build. It seems to vary by person and I don't know why.

      Due to intermittent issues with excessive battery drain & missing location or network access permissions after Android 13.0 QPR1 that seemed to correlate with MindTheGapps 13.0 arm64 current official release, but not with NikGapps, I went ahead and made a modified build of MindTheGapps that includes additional allowances copied into permissions, default-permissions, and sysconfig XMLs from NikGapps, and the issues seem to be resolved. If you have battery drain issues with MindTheGapps official, then I recommend this package for everyone until such time as I can get the fixes narrowed down and commits submitted for inclusion upstream to the official MindTheGapps project. I have never been able to recreate the drain issue myself, although I have experienced the permissions problems with failure to pre-grant permissions for network access or location to Play Store and Setup Wizard/Android Setup.
      However, some folks have had issues with my build that they didn't have with official, so... I don't even know any more. Use what works best if you're already on MindTheGapps.
      https://github.com/TJ-Releases/mtg/releases/tag/tau-20230224

      Until we can get a fix submitted, I am NOT recommending the use of official MindTheGapps 13.0, as it has begun exhibiting battery drain & permissions retention problems after Android 13 QPR1 was merged in December 2022. If you still need official MindTheGapps, you can get it here:
      http://downloads.codefi.re/jdcteam/javelinanddart/gapps

      To switch from official MindTheGapps to my modified build (and back):
      - Reboot phone to recovery
      - ADB sideload the latest ROM zip
      - Choose Advanced > Reboot recovery to reboot phone directly to crDroid recovery again
      - ADB sideload desired MindTheGapps zip (use my modified build, unless you're specifically trying to help me trace down permissions/battery issues)
      - ADB sideload Magisk (if you're rooting)
      - Reboot system

    • Otherwise, in general, try to go with the lightest weight package you can and don't replace the stock dialer/messaging apps (just download them from Play Store and set defaults).

    • BitGApps ... exist. No idea how that's going. I hear it works though, so give a shot. Don't know the link, sorry.

    • Flame Gapps I have no idea about in Android 13.0.
      https://flamegapps.github.io/download.html

    • Since we are LineageOS-based, here are the Lineage team's recommendations & reasoning:
      https://wiki.lineageos.org/gapps.html

    • OpenGApps are not recommended, for reasons outlined in the LineageOS wiki link above.
    Please report what worked for you, whether or not it survives updates when using the System Updater, whether or not it survives manual "dirty" update flashing via built-in recovery, and whether it passed SafetyNet, so I can keep this list updated.

    Magisk and Google Play Integrity API (SafetyNet):​

    Without root:
    • We pass SafetyNet/Play Integrity out of the box, avoiding hardware-backed attestation & falling back to basic integrity (using PixelProps in framework).
    • I also build & ship ih8sn inline, which should cover all sensitive props to keep most apps from being able to detect root or bootloader unlock.
    • I don't know how to set up everything correctly to sign builds & verify everything needed to safely enable bootloader re-locking. I'm not even sure it's possible. So just don't try it; you're asking for a trip to MSMTool-land.
    With root (Magisk):
    • If you root with Magisk and configure the Zygisk denylist correctly (see below), you should still pass. For fastest "certified" status, wait after initial installation & signing in to Google to update Play Store & Play Services before rebooting to recovery & ADB sideloading Magisk to root.
    • Be sure you're on an official topjohnwu release; I recommend beta or canary. "Magisk Delta" is unneeded; we already spoof the props you're worrying about.
    • Do not install kdrag0n's "Universal SafetyNet Fix"; it's not only unnecessary with this ROM but actively causes problems & interferes with other things (like preferences resetting every reboot).
    • Look, I don't like the idea of "Shamiko" or anything else that employs LSposed techniquies or similar to do framework injection, and I'm not going to troubleshoot bug reports from people using it. It's a Magisk module that's not open source, so there's no way to verify what it's doing with the root access you have given it. But if that's what makes your ****ty bank app work, then do what you gotta do. I would change to a credit union that doesn't try to hold you hostage with crappy apps.
    How to configure Magisk & the Zygisk denylist:
    • 1. Hide the Magisk app:
      • Go to Magisk > Settings, and choose "Hide Magisk app", granting "install from untrusted source" permission along the way if needed, re-open the hidden "Settings" app
    • 2. Enable Zygisk process hiding:
      • Go to Magisk > Settings
      • Enable Zygisk, Enable Enforce Denylist
    • 3. Set up Zygisk denylist:
      • From Magisk Settings, go to Configure Denylist
      • Tap overflow (three-dot) menu in upper-right, and select "Show system apps"
    • 4. Find "Google Play Services" and select the following:
      • com.google.android.gms
      • com.google.android.gms.persistent [needed for Google Pay/Wallet]
      • com.google.android.gms.unstable
      • com.google.android.gms.snet
    • 5. Find "Google Play Store" and select the following:
      • com.android.vending
    • 6. [Optional, for contactless payment] Find "Google Wallet" or "Google Pay" if installed and select the following:
      • everything, who cares; it's like 2 processes
    • 7. Back out of "Configure Denylist"
    • 8. Get app info for Google Play Store, force stop, and clear app cache
    • 9. Get app info for Google Play Services, and clear app cache
    • 10. Reboot
    Use something like YASNAC to verify that you're now passing Play Integrity API attestation with basic integrity.

    Other helpful links:​

    • Download current boot.img files: enchilada / fajita (also attached below)
    • Android platform tools (adb & fastboot)
    • OxygenOS 11.1.2.2 Full OTA: enchilada / fajita
    • Firmware update instructions (LineageOS Wiki): enchilada / fajita
    • MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade): enchilada / fajita
    • MinMicroG (recommend the "Standard" package from "abuse-cl" releases; needs you to "Mount System" in crDroid recovery Advanced options before installing)
    • Magisk (recommend latest stable/beta v26.1 release; bootloop-to-recovery-after-OTA-update issue appears to have been fixed).
    9
    Will this be in OTA?
    Yeah, eventually. I got a little help with actually figuring out which kernel commits needed reverting to see if it takes care of the issue from bananafunction, and it's just been a super-busy week.

    Oh, and I also ended up moving to a new build box...
    photo_2023-04-01_21-01-11.jpg
    8
    Well that took an extra two weeks, but hey.
    Pushed 9.4 to OTA last night, including fixes for the white corners peeking out from under the curve on enchilada.
    The white corners will still be there in screenshots, because... reasons.
    Look, there are kind of two ways to get to a similar place with rounded corners & a notch & status bar spacing.
    I kinda hopped over to a different one than what LineageOS uses, because it played better with burn-in protection a few months ago (that's what was up with stuff wandering around), while setting "rounded_corner_radius[_top|_bottom]" plus "rounded_corner_content_padding" gets ignored more?
    I dunno, it's a moving target and I'm tired of it.

    I need to sort out my dimens overlay commits and then try A/B testing again to see if it's even necessary still on A13 now. Heh, "need to". I need to stop having to worry about little stuff like that, and get on with life.

    ANYWAY! crDroid 9.4 pushed to OTA, second post has updated changelog (and link to 01 May updated release of my custom config NikGapps, recommended package going forward).
    8
    FINALLY, crDroid 9.1 is officially released to OTA servers.
    Get it while it's hot!
    Also updated my unofficial build of MindTheGapps with more priv-app permissions pulled from NikGapps T for the rest of the packages that it bundles (see 2nd post).