• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM][OFFICIAL][fajita][11.0]crDroid Android[v7.11]

Search This thread
BE3pE0l.png


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 many of the best features in existence today.

Features

A quick glossary and primer on slots for A/B devices (like ours):

- "Clean flash": Removing device protection & clearing user settings before installing a bootable system install zip (usually by either wiping or formatting data, see below).
- "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": Synonymous with "factory reset", accomplished from TWRP recovery by selecting "Wipe", then performing the "Slide to factory reset". Clears user data without erasing any partitions, removing encryption, or deleting contents of internal storage.
- "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.
- Some partitions are duplicated (system, vendor, boot, and probably 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 booted from) and "inactive" upon next reboot.
- 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 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.

Prerequisites:
- Make sure your bootloader is unlocked, and that you have a working platform tools (adb & fastboot command line binaries & necessary drivers) installation on your computer, with a known-good USB cable.
- Make sure you've downloaded most recent full OxygenOS OTA installer zip (11.0 or newer), crDroid zip, bootable custom recovery boot.img (see below) and TWRP installer zip (official 3.5.2_9-0 or newer), and whatever Magisk/GApps/microG installation packages you want to use to your computer.
- Yes, we've moved to using OOS 11.x firmware as a base. For now, it *should* work with OOS 10.3.12 base firmware still, however the upstream LineageOS devs are intentionally not fixing anything broken due to using older vendor blobs, in an effort to move everyone to the newer code base. You should consider using crDroid 6 instead if you want to remain with OOS 10 as a base.
- Make sure you've backed up whatever data you want to keep to somewhere that's not on your phone; we're going to format the data partition and you're going to lose everything from internal storage.

Notes on custom recoveries with OxygenOS 11 firmware:
- Trying to `fastboot boot` the current official TWRP 3.5.2_9-0 twrp.img after installing OxygenOS 11 doesn't work, and will drop you into Qualcomm Crash Dump mode. Don't try to flash it as your boot partion, either.
- FLASHING the TWRP 3.5.2_9-0 INSTALLER zip on top of OOS 11.x DOES work for the time being, but you need to be in a recovery environment that allows you to flash that installer in the first place (either by booting into an already-installed TWRP recovery before updating firmware, or by having an Android 11 compatible recovery boot.img to be able to `fastboot boot`).
- I spent a lot of time the last month working on adapting Nebrassy's Android 11 TWRP commits to our device trees and getting it to work on Fajita. It's not quite there yet for general use (erasing and factory resetting and some aspects of encryption handling are broken), but it DOES give you a working custom recovery that can decrypt internal storage and allow you to flash the official TWRP 3.5.2_9-0 installation zip on Fajita as well as Enchilada, if you're already on OxygenOS 11.0 or newer.
- Alternatively, you could download the latest "recovery image" from the LineageOS downloads page at https://download.lineageos.org/fajita, `fastboot flash boot filename.img` (not just boot) that downloaded boot image, restart bootloader (loads the newly-flashed bootloader code), restart recovery (launches LineageOS recovery with the purple background), then either use it and its custom userspace fastbootd implementation to flash partition img files, or `adb sideload` the official TWRP installer zip, and finally reboot to recovery to be able to factory reset/format data/install crDroid/anything else from within TWRP.
- You could just work with the LOS recovery (fastboot flashing it to /boot as above, and never flashing the TWRP installer zip since it's also built-in to crDroid), however it has some limitations of its own: it can't decrypt or perform file operations on internal storage, it can't factory reset without wiping internal storage, it doesn't let you "downgrade" flash to inactive slot even though you're trying to update firmware and need to flash an older OTA before a new one, and it requires you to be able to extract the individual partition images from the payload.bin, extracted from the OOS installer zip, in order to update firmware. Further instructions are at https://wiki.lineageos.org/devices/fajita/fw_update (although figuring out how to actually accomplish step them can be challenging), if you want to get to know your way around LineageOS recovery and not use TWRP.

First time installing crDroid to your OP6T, coming from stock OxygenOS 11.x or another ROM:
- Make sure you have either my custom TWRP 3.5.2_11-0_test boot.img (see attached files) or the LOS recovery boot.img downloaded, and have read the notes about custom recoveries & OxygenOS 11 above, and want to stick with TWRP anyway.
- Reboot to bootloader, then EITHER 1) `fastboot boot path/to/twrp_test.img` to start up into TWRP recovery, OR 2) `fastboot flash boot path/to/LOS_recovery.img` to overwrite current bootloader, then reboot bootloader, then choose "Start recovery" to enter LOS recovery (only choose option 1 or option 2 above, not both).
- ADB sideload the official TWRP 3.5.2_9-0 installation zip, then reboot to recovery.
- Now that you have a working TWRP environment, mount System partition read-write, use file manager to delete the /system/addons.d/ directory if it exists, unmount System.
- Choose Wipe > Format data, type "yes" and hit enter to nuke everything in the data partition.
- Choose Advanced > ADB sideload (don't worry about selecting cache/dalvik wipe options yet) and then on the computer, do `adb sideload path/to/OxygenOSOTA.zip`.
- Go get a drink, this'll take a while.
- When that's done, hit "back" in TWRP and start ADB sideload again, and this time send the crDroid installation zip.
- When that's done, ADB sideload the TWRP installation zip.
- Reboot to recovery (this will switch the active slot to use the system partition you just installed those zip files into).
- Wipe data (Wipe > "Slide to factory reset" in TWRP).
- That was so much fun, let's do it again! ADB sideload OxygenOS full OTA zip.
- ADB sideload crDroid zip.
- ADB sideload TWRP installer zip.
- Reboot to recovery (switches slots again, now we have latest OxygenOS firmware plus crDroid populated in both sets of partitions and won't have to do that again until the next OOS update comes out).
- Flash Magisk (if desired).
- Flash GApps or microG package (if desired).
- Wipe dalvik.
- If you copied anything to internal storage instead of flashing it via ADB sideload, delete it now before first boot.
- Reboot system.
- Go through setup wizard, but do not add a PIN or other screen lock yet, and do not add a Google account yet.
- Reboot system (now we've got the "user 0" directories, yay; it will be much happier now when you finalize your settings).
- It's gonna harass you to finish setup, go ahead and customize everything to your heart's content and add security options and such now.

OTA updating from TWRP (preferred, assuming you're coming from OOS 10.3.12 base firmware on crDroid 7.9 or older):
You don't need to remove device protection; it works fine with PIN. Be sure you have a PIN set, or have looked up whatever that arcane chart of pattern > numeric incantations in case of pattern unlock. It's awful.
- Boot into TWRP recovery.
- Choose install, then select OOS 11.x firmware OTA, then choose select additional zips, then select crDroid.zip, select additional zips, choose TWRP zip, slide to confirm flash.
- Reboot recovery.
- Choose install, then select OOS 11.x firmware OTA, then choose select additional zips, then select crDroid.zip, select additional zips, choose TWRP zip, slide to confirm flash again.
- Reboot recovery again.
- Choose install, then select Magisk zip (if using), select additional zips, choose GApps/microG (if using), slide to confirm flash.
- Please keep off of the grass, shine your shoes, wipe your... dalvik.
- Reboot system.

OTA updating from Updater app:
Warning: Maintainer just does it all from TWRP, and doesn't know if this procedure actually works, but you do you.
- Install update in built-in Updater app (Settings > System > Updater), do NOT reboot yet.
- Open Magisk, go to modules, and download & install "TWRP A/B Retention Script", do NOT reboot yet.
- Go back to Magisk app home, click "Install" next to Magisk, and choose the "Install to Inactive Slot (After OTA)" method.
- For GApps/microG: We don't have inline TWRP any more, and I honestly don't know how well addon.d survival scripts deal with live OTAs instead of flashing from recovery, so if you use GApps/MicroG that needs to be re-flashed to /system, reboot recovery and flash that or else your world will be pain.
- NOW you can reboot to system.

Look, we're moving to a new firmware base. You need a custom recovery to do that, either using TWRP to flash the OOS OTA zip, or via userspace fastbootd in LOS recovery to individually flash updated partition images to both slots (because the OnePlus bootloader won't let you flash critical partitions). After we've had more than one release of 7.10 pushed to official OTA and you've already updated to OOS 11.x, then you'll be able to use the built-in updater instructions again.

Reporting bugs:
I'm a parent of three young kids whose industry disappeared in the pandemic and is now full-time house husband & parent-in-charge while my wife is teaching full-time, trying to save my small live-event-turned-streaming-studio company in my spare time on weekends. This is the back-up hobby for in-between Diablo 3 seasons. I'm not actually a programmer, I just wanted a ROM with signature spoofing support and more customization than the unofficial microg-compatible LineageOS builds, so if there are bugs or feature requests, I go over to the crDroid dev chat and ask if someone has time to hold my hand & help. Don't make me get yelled for annoying them, mmkay? That said...
- Logs/screenshots/recordings or it didn't happen. Either the built-in Matlog app, or Syslog (free, open source, available on Play store and F-droid) are your friends here.
- I try to keep an organized notebook of roadmap, feature reqeusts, bug reports, etc. I won't always be able to fix it, but I'll at least look and do my best to ask the actual devs.
- I don't sign into XDA much, so if I haven't said anything, check out the Telegram group. Lots of helpful folks there.
- Please keep your questions in this thread instead of PMing me with them directly, so that the entire class can benefit from the discussion and you can find out if it's just you or if this is a widespread issue.

It's your device to use the way you want of course, and I use Magisk & microG and like to tweak things myself. But don't expect much support if you:
- didn't do a clean flash.
- aren't using the built-in kernel.
- are using extensive modifications (besides Magisk) like Xposed/Riru, Dolby Atmos, Viper4A, etc.
- immediately start using "finalize.zip" or flashing migrate restore zips instead of following the actual instructions.
- are running decrypted.

Donate - Support development!

crDroid Website - Download here!

Telegram Oneplus6/6t group - Share your best cat pictures!

Source Code:
- Device tree: https://github.com/crdroidandroid/android_device_oneplus_fajita/tree/11.0
- OP6/6T Common device tree: https://github.com/crdroidandroid/android_device_oneplus_sdm845-common/tree/11.0
- Kernel: https://github.com/crdroidandroid/android_kernel_oneplus_sdm845/tree/11.0
 

Attachments

  • fajita_twrp-3.5.2_11-0_test3.img
    64 MB · Views: 101
Last edited:
Notes:
- Yes it supports package signature spoofing permission for microG compatibility out of the box (but will work without ANY GApps/microG implementation installed as well).
- Maintainer does not use GApps, so cannot answer questions about which packages work best from firsthand experience. In general, go with the smallest package you can and then install other Google apps from the Play Store. Please note that if you replace the stock dialer with Google Dialer, you may lose access to the Phone Info menu (*#*#4636#*#*) until you install another dialer. For recommendations, see https://wiki.lineageos.org/gapps.
- Requires OOS 11.1.1.1 firmware.
- Tested against official TWRP 3.5.2_9-0, works well.
- Tested against latest Magisk canary (with zygisk instead of magiskhide), works well.
- No there won't be official builds with inline GApps; please don't ask.

crDroid 7.11 - October 2021 ASB release notes/known issues:
Common:
- October ASB (Android Security Bulletin) merged.
- Imported blobs from OOS 11.1.1.1 firmware (myself, because LuK is busy. YOLO).
- OOSCam v3 works now! 🥳 Pulled directly from OOS 11.1.1.1 OTA payload APKs.
- Imported upstream LineageOS "android_hardware_oneplus" updates, with unified DeviceExtras ("OnePlus Settings") additions by AnierinB from Evolution-X.
- Imported upstream CAF updates to hardware/qcom-caf/sdm845/display/ repo that Lineage hasn't merged yet.
- Added overlay to require swiping up now to enable Face Unlock on secure lock screen (as though we had pop-up camera hardware), to make it more cumbersome to use. Stop using faceunlock if you value your security.
- Removed built-in GCam to free up room in system partition (and no longer conflicts with MJL ports).
- Kernel compiler updated to clang v13.0.3
- Fixed wifi not turning on in some edge situations; dropped LOS commits about HDD initialization, added qcacld-3.0 changes from mcd kernel instead.
- Rip out KCal and changing panel modes in DeviceExtras ("OnePlus Settings") and go back to LiveDisplay. *sighs* Fixes the HDR/color thing (composite mode problem in HWC it seems).
- Merged OnePlusOSS 11.1.1.1 kernel sauce update.
- Updated overlay to fix Night Light's torrid love affair with orange (that came from a set of much-improved colorspace mapping changes merged into crDroid upstream from kdrag0n's ProtonAOSP work, which exposed a problem in LOS default overlay values).
- Dropped some stuff from kernel that won't be supported in cr8/A12 l(ike safetynet hacks that didn't work, usb2.0 slightly faster charging that might ruin your motherboard or mess with onboard voltage regulator, kcal pieces, boeffla wl blocker driver, dynamic fsync, etc.).

Fajita-specific:
Yo dawg, it's not my place to tell me how to use your phone, but...
- Don't use AppLock on fajita unless you like rando FOD circles showing up everywhere and screwing up nightlight and such.
- Don't use FaceUnlock either; it's the Motorola implementation, Google removed the official one for a darn good reason. Sometimes causes FOD circle to get left on because some aspect of biometric sensor handling & sercurity handling doesn't realize that faceunlock got there first and doesn't dismiss the FOD view.
I dont' know why those add-on features were merged into crDroid when they don't work correctly with phones that have a FOD fingerprint sensor. Please feel free to open issues on https://github.com/crdroidandroid/android_frameworks_base and let the core developers know that those imitation security features break actual hardware security features of your phone. All bug reports about it to me will be ignored as I'm going to consider using them to be unsupported.

Other known issues:
- The "up vee" /\ screen-off gesture, left-to-right single finger swipe, and right-to-left single finger swipe screen-off gestures don't work (maybe?), all the other ones do. I don't know why. Sorry.
- You tell me!

Other stuff:

- I once met a man with a wooden leg named Smith. Didn't catch the name of his other leg. :D


Helpful links:

Download ROM

TWRP (use v3.5.2_9-0 or later)

Magisk (use v23 or later)

OxygenOS Full OTA (use 11.0 or 11.1)

MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade)
 
Last edited:

kmr168401

Senior Member
Jul 2, 2016
265
68
OnePlus 6T
hi dev thanks for this rom i have successfully installed now, so there is a small info i like to share, that is installing any version of nikgapps apart from core nikgapps will result in bootloop or after even format the data, rom will boot but set up screen says it crashed, so i have installed with core version of nikgapps, rom booted successfully. that's all i have info to share now. (y)😁
 

kmr168401

Senior Member
Jul 2, 2016
265
68
OnePlus 6T
Hi dev ROM is working fantastically after installed all the application I used before, so thanks for it, it has enough customization thanks for it too.
 

kmr168401

Senior Member
Jul 2, 2016
265
68
OnePlus 6T
Hi devs i don't know the reason why this happening, the problem is when i change default launcher to nova launcher system ui automatically crashes, i can't specifically pinpoint the reason, but after launching the Paytm app for first time then paytm also crashed so i don't know what to do now. I have attached logcat from matlog so I think I have captured required info.
 

Attachments

  • IMG_20210115_084214.jpg
    IMG_20210115_084214.jpg
    1.4 MB · Views: 680
  • IMG_20210115_083101.jpg
    IMG_20210115_083101.jpg
    5.2 MB · Views: 684
  • VID_20210115_082958_0_COMPRESSED.rar
    26.2 MB · Views: 78
  • 2021-01-15-09-10-12.txt
    1.1 MB · Views: 19
  • logs-2021-01-15-09-10-26.zip
    141.4 KB · Views: 12
Last edited:

autologic

Member
Feb 10, 2012
5
0
hi all,

I'm on fajita with crdroid 5.11 - Android 9.

i'd like to bump up to this thread's version. any tips for how to go about that - step by step?
I assume it would be something like -- update TWRP, update firmware, then flash rom as usual with instructions in first post?

many thanks
 
Feb 12, 2019
14
2
hi all,

I'm on fajita with crdroid 5.11 - Android 9.

i'd like to bump up to this thread's version. any tips for how to go about that - step by step?
I assume it would be something like -- update TWRP, update firmware, then flash rom as usual with instructions in first post?

many thanks

1 - remove any passwords used to unlock screens - 2 - Backup all your important data, - 3 - Make sure you're on latest TWRP for Fajita and that you have latest OOS firmware, Gapps, TWRP installer and the ROM you want to install (zip files) copied to your "Downloads " directory, then reboot into recovery mode, - 4 - make sure you're on slot A (tap "reboot", tap slot "A" and reboot to recovery again), 5 - tap "Wipe", "advanced wipe" and select " Dalvick Art/Cache", " data" and "system", - 6 - swipe to wipe, 7 - tap "install" and select OOS, then swipe to install, 8 - install TWRP zip file, 9 - reboot to recovery, - 10 - install OOS on the second slot, 11- install TWRP, 12 - reboot to recovery, 13 - install the new ROM, 14 - tap "Wipe", advanced Wipe", "Dalvick Art/Cache" and "Data", 15 - swipe to wipe, 16 - install TWRP and reboot to recovery, 17 - install GAPPS, - wipe " Dalvick Art/Cache and reboot to system. That's it!
 

letmedanz

Senior Member
Aug 26, 2010
2,739
4,137
Bangalore
hi all,

I'm on fajita with crdroid 5.11 - Android 9.

i'd like to bump up to this thread's version. any tips for how to go about that - step by step?
I assume it would be something like -- update TWRP, update firmware, then flash rom as usual with instructions in first post?

many thanks

Boot in latest TWRP
Flash latest OOS 10
Flash CR Droid Zip
Flash Finalize.zip
Flash latest TWRP
Format data -type Yes to confirm
Reboot to recovery
Flash Gapps & Magisk (Optional)

Coming from a different version of Android, format data is recommended. Backup your data before you do this
 

kmr168401

Senior Member
Jul 2, 2016
265
68
OnePlus 6T
Hi dev i attached a video, in which i try to explain a problem, i can't pinpoint say amazon app only having this kind of problem, but i can say irresponsible of which app suddenly ui will have some kind of problem, it will appear from nowhere after that phone will hang and i need to restart the phone or else battery drains very fast. Kindly look into it. I reinstalled the rom two time freshly, even though it having same kind of problem presist, but i really loved one good feature that is finger print working fantastic even after reboot. OS is not crashing and reboot by itself, app also not crashing but suddenly some part is acting wired. Anyway i will upload the video for proof. I have attached gif file as per xda rules.
 

Attachments

  • screen-20210119-120458.gif
    screen-20210119-120458.gif
    181.6 KB · Views: 338
Last edited:

kmr168401

Senior Member
Jul 2, 2016
265
68
OnePlus 6T
I have one last idea in my head instead of using app called migrate to take back up of application installed in my phone and restore to newly installed rom. Better use play store to install all app one by one and see there is any difference, i really love this rom thats why i reinstalling freshly again and again to see any difference possible
 

flash713

Senior Member
I've never used micro g a whole lot in the past but I'm all for it now due to the unbelievable amount of permissions apps ask for and while I love Android I'm no Google person either. I flashed 7.2 CrDroid two days ago and didn't install gapps. Then I went back in twrp and flashed micro g and fdroid from (stable) nano droid installer thread here on XDA. Going to read up more about micro g ..etc.. Op, if you are testing anything that has to do with this or anything feel free to msg me anytime. Ill run whatever through everything possible and gather logs if need be and send them to you properly. Thanks for this rom!! Great job!! Always loved CrDroid! Think i 1st used CrDroid back in 2013 or so. Fantastic rom!! My Screen time on 7.2 CrDroid. :D
 
I've never used micro g a whole lot in the past but I'm all for it now due to the unbelievable amount of permissions apps ask for and while I love Android I'm no Google person either. I flashed 7.2 CrDroid two days ago and didn't install gapps. Then I went back in twrp and flashed micro g and fdroid from (stable) nano droid installer thread here on XDA. Going to read up more about micro g ..etc.. Op, if you are testing anything that has to do with this or anything feel free to msg me anytime. Ill run whatever through everything possible and gather logs if need be and send them to you properly. Thanks for this rom!! Great job!! Always loved CrDroid! Think i 1st used CrDroid back in 2013 or so. Fantastic rom!! My Screen time on 7.2 CrDroid. :D
Yeah I feel you I'm right where you are I think it's time to ditch Google and get a similar setup. Wonder if there's a thread in the 6t section yet? Google still my friend she'll teach me how to set it up, lol
 
  • Like
Reactions: flash713

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Sorry for the longer than usual even for me delay; been on a virtual gig (work from home, but still) that's taken 10-12 hours per day for nearly a month... which means coordinating childcare and schedules with my wife who already works full time, and wasn't able to get the October security update releases out before that started.
    I've got some release candidates that I'm gonna call "good enough" and kick out there now, since the November ASB has now been merged into crDroid and I've been avoiding syncing that for fear of it breaking something (it ALWAYS breaks SOMETHING).
    Thanks for hanging on, we're not dead yet!
    The plan will be to then try to merge the updates and build again and see what's broken and if that can be fixed & pushed again before the actual end of this month. *gasp!* *shock!* *astonishment!*
    3
    So I have test builds of v7.12 (and v6.24) in the Telegram group.
    There are two issues I can't resolve with crDroid 7.12, one of which is cosmetic, the other might be a show-stopper:

    1) Due to upstream changes from the core ROM dev team, soft screen corners & notch cutouts are showing up jagged again instead of antialiased properly. Fiddling with the "hide notch" or "kill notch" or "immersive" settings or changing the corner radius away from default value, then changing it back can maybe sometimes get it to start behaving itself. I just use dark mode so I basically don't see it anyway. We have all the right resources & values in the device tree, it's just not being interpreted correctly due to changes beyond my control. Apparently this happens in OP 8 series now as well with v7.12.

    2) This is more of an issue -- for some folks, the external mic isn't working. I don't know why, or what to do about it. I've tried removing the kernel stuff & "OnePlus Settings" (DeviceExtras) bits for messing with mic & earpiece gain, there's no sepolicy denials going on that I can see; it's something to do with ACDB-LOADER but I don't know what to do about that. I couldn't recreate it, either on my daily driver enchilada or testing fajita, dirty flashing or clean flashing, so I'm not sure where this leaves us.

    I can push the updates to OTA, but I don't want to break anyone's ability to record audio from one or the other external mic. And the core dev team is already trying to shift focus to crDroid 8, so... I don't know what the best course of action is. I want this to keep working well, not get worse suddenly and then no more fixes. :/
    1
    after you installed gcam, did the camera work? which version of gcam did you use
    open_gapps-arm64-11.0-pico-20211116
  • 15
    BE3pE0l.png


    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 many of the best features in existence today.

    Features

    A quick glossary and primer on slots for A/B devices (like ours):

    - "Clean flash": Removing device protection & clearing user settings before installing a bootable system install zip (usually by either wiping or formatting data, see below).
    - "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": Synonymous with "factory reset", accomplished from TWRP recovery by selecting "Wipe", then performing the "Slide to factory reset". Clears user data without erasing any partitions, removing encryption, or deleting contents of internal storage.
    - "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.
    - Some partitions are duplicated (system, vendor, boot, and probably 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 booted from) and "inactive" upon next reboot.
    - 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 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.

    Prerequisites:
    - Make sure your bootloader is unlocked, and that you have a working platform tools (adb & fastboot command line binaries & necessary drivers) installation on your computer, with a known-good USB cable.
    - Make sure you've downloaded most recent full OxygenOS OTA installer zip (11.0 or newer), crDroid zip, bootable custom recovery boot.img (see below) and TWRP installer zip (official 3.5.2_9-0 or newer), and whatever Magisk/GApps/microG installation packages you want to use to your computer.
    - Yes, we've moved to using OOS 11.x firmware as a base. For now, it *should* work with OOS 10.3.12 base firmware still, however the upstream LineageOS devs are intentionally not fixing anything broken due to using older vendor blobs, in an effort to move everyone to the newer code base. You should consider using crDroid 6 instead if you want to remain with OOS 10 as a base.
    - Make sure you've backed up whatever data you want to keep to somewhere that's not on your phone; we're going to format the data partition and you're going to lose everything from internal storage.

    Notes on custom recoveries with OxygenOS 11 firmware:
    - Trying to `fastboot boot` the current official TWRP 3.5.2_9-0 twrp.img after installing OxygenOS 11 doesn't work, and will drop you into Qualcomm Crash Dump mode. Don't try to flash it as your boot partion, either.
    - FLASHING the TWRP 3.5.2_9-0 INSTALLER zip on top of OOS 11.x DOES work for the time being, but you need to be in a recovery environment that allows you to flash that installer in the first place (either by booting into an already-installed TWRP recovery before updating firmware, or by having an Android 11 compatible recovery boot.img to be able to `fastboot boot`).
    - I spent a lot of time the last month working on adapting Nebrassy's Android 11 TWRP commits to our device trees and getting it to work on Fajita. It's not quite there yet for general use (erasing and factory resetting and some aspects of encryption handling are broken), but it DOES give you a working custom recovery that can decrypt internal storage and allow you to flash the official TWRP 3.5.2_9-0 installation zip on Fajita as well as Enchilada, if you're already on OxygenOS 11.0 or newer.
    - Alternatively, you could download the latest "recovery image" from the LineageOS downloads page at https://download.lineageos.org/fajita, `fastboot flash boot filename.img` (not just boot) that downloaded boot image, restart bootloader (loads the newly-flashed bootloader code), restart recovery (launches LineageOS recovery with the purple background), then either use it and its custom userspace fastbootd implementation to flash partition img files, or `adb sideload` the official TWRP installer zip, and finally reboot to recovery to be able to factory reset/format data/install crDroid/anything else from within TWRP.
    - You could just work with the LOS recovery (fastboot flashing it to /boot as above, and never flashing the TWRP installer zip since it's also built-in to crDroid), however it has some limitations of its own: it can't decrypt or perform file operations on internal storage, it can't factory reset without wiping internal storage, it doesn't let you "downgrade" flash to inactive slot even though you're trying to update firmware and need to flash an older OTA before a new one, and it requires you to be able to extract the individual partition images from the payload.bin, extracted from the OOS installer zip, in order to update firmware. Further instructions are at https://wiki.lineageos.org/devices/fajita/fw_update (although figuring out how to actually accomplish step them can be challenging), if you want to get to know your way around LineageOS recovery and not use TWRP.

    First time installing crDroid to your OP6T, coming from stock OxygenOS 11.x or another ROM:
    - Make sure you have either my custom TWRP 3.5.2_11-0_test boot.img (see attached files) or the LOS recovery boot.img downloaded, and have read the notes about custom recoveries & OxygenOS 11 above, and want to stick with TWRP anyway.
    - Reboot to bootloader, then EITHER 1) `fastboot boot path/to/twrp_test.img` to start up into TWRP recovery, OR 2) `fastboot flash boot path/to/LOS_recovery.img` to overwrite current bootloader, then reboot bootloader, then choose "Start recovery" to enter LOS recovery (only choose option 1 or option 2 above, not both).
    - ADB sideload the official TWRP 3.5.2_9-0 installation zip, then reboot to recovery.
    - Now that you have a working TWRP environment, mount System partition read-write, use file manager to delete the /system/addons.d/ directory if it exists, unmount System.
    - Choose Wipe > Format data, type "yes" and hit enter to nuke everything in the data partition.
    - Choose Advanced > ADB sideload (don't worry about selecting cache/dalvik wipe options yet) and then on the computer, do `adb sideload path/to/OxygenOSOTA.zip`.
    - Go get a drink, this'll take a while.
    - When that's done, hit "back" in TWRP and start ADB sideload again, and this time send the crDroid installation zip.
    - When that's done, ADB sideload the TWRP installation zip.
    - Reboot to recovery (this will switch the active slot to use the system partition you just installed those zip files into).
    - Wipe data (Wipe > "Slide to factory reset" in TWRP).
    - That was so much fun, let's do it again! ADB sideload OxygenOS full OTA zip.
    - ADB sideload crDroid zip.
    - ADB sideload TWRP installer zip.
    - Reboot to recovery (switches slots again, now we have latest OxygenOS firmware plus crDroid populated in both sets of partitions and won't have to do that again until the next OOS update comes out).
    - Flash Magisk (if desired).
    - Flash GApps or microG package (if desired).
    - Wipe dalvik.
    - If you copied anything to internal storage instead of flashing it via ADB sideload, delete it now before first boot.
    - Reboot system.
    - Go through setup wizard, but do not add a PIN or other screen lock yet, and do not add a Google account yet.
    - Reboot system (now we've got the "user 0" directories, yay; it will be much happier now when you finalize your settings).
    - It's gonna harass you to finish setup, go ahead and customize everything to your heart's content and add security options and such now.

    OTA updating from TWRP (preferred, assuming you're coming from OOS 10.3.12 base firmware on crDroid 7.9 or older):
    You don't need to remove device protection; it works fine with PIN. Be sure you have a PIN set, or have looked up whatever that arcane chart of pattern > numeric incantations in case of pattern unlock. It's awful.
    - Boot into TWRP recovery.
    - Choose install, then select OOS 11.x firmware OTA, then choose select additional zips, then select crDroid.zip, select additional zips, choose TWRP zip, slide to confirm flash.
    - Reboot recovery.
    - Choose install, then select OOS 11.x firmware OTA, then choose select additional zips, then select crDroid.zip, select additional zips, choose TWRP zip, slide to confirm flash again.
    - Reboot recovery again.
    - Choose install, then select Magisk zip (if using), select additional zips, choose GApps/microG (if using), slide to confirm flash.
    - Please keep off of the grass, shine your shoes, wipe your... dalvik.
    - Reboot system.

    OTA updating from Updater app:
    Warning: Maintainer just does it all from TWRP, and doesn't know if this procedure actually works, but you do you.
    - Install update in built-in Updater app (Settings > System > Updater), do NOT reboot yet.
    - Open Magisk, go to modules, and download & install "TWRP A/B Retention Script", do NOT reboot yet.
    - Go back to Magisk app home, click "Install" next to Magisk, and choose the "Install to Inactive Slot (After OTA)" method.
    - For GApps/microG: We don't have inline TWRP any more, and I honestly don't know how well addon.d survival scripts deal with live OTAs instead of flashing from recovery, so if you use GApps/MicroG that needs to be re-flashed to /system, reboot recovery and flash that or else your world will be pain.
    - NOW you can reboot to system.

    Look, we're moving to a new firmware base. You need a custom recovery to do that, either using TWRP to flash the OOS OTA zip, or via userspace fastbootd in LOS recovery to individually flash updated partition images to both slots (because the OnePlus bootloader won't let you flash critical partitions). After we've had more than one release of 7.10 pushed to official OTA and you've already updated to OOS 11.x, then you'll be able to use the built-in updater instructions again.

    Reporting bugs:
    I'm a parent of three young kids whose industry disappeared in the pandemic and is now full-time house husband & parent-in-charge while my wife is teaching full-time, trying to save my small live-event-turned-streaming-studio company in my spare time on weekends. This is the back-up hobby for in-between Diablo 3 seasons. I'm not actually a programmer, I just wanted a ROM with signature spoofing support and more customization than the unofficial microg-compatible LineageOS builds, so if there are bugs or feature requests, I go over to the crDroid dev chat and ask if someone has time to hold my hand & help. Don't make me get yelled for annoying them, mmkay? That said...
    - Logs/screenshots/recordings or it didn't happen. Either the built-in Matlog app, or Syslog (free, open source, available on Play store and F-droid) are your friends here.
    - I try to keep an organized notebook of roadmap, feature reqeusts, bug reports, etc. I won't always be able to fix it, but I'll at least look and do my best to ask the actual devs.
    - I don't sign into XDA much, so if I haven't said anything, check out the Telegram group. Lots of helpful folks there.
    - Please keep your questions in this thread instead of PMing me with them directly, so that the entire class can benefit from the discussion and you can find out if it's just you or if this is a widespread issue.

    It's your device to use the way you want of course, and I use Magisk & microG and like to tweak things myself. But don't expect much support if you:
    - didn't do a clean flash.
    - aren't using the built-in kernel.
    - are using extensive modifications (besides Magisk) like Xposed/Riru, Dolby Atmos, Viper4A, etc.
    - immediately start using "finalize.zip" or flashing migrate restore zips instead of following the actual instructions.
    - are running decrypted.

    Donate - Support development!

    crDroid Website - Download here!

    Telegram Oneplus6/6t group - Share your best cat pictures!

    Source Code:
    - Device tree: https://github.com/crdroidandroid/android_device_oneplus_fajita/tree/11.0
    - OP6/6T Common device tree: https://github.com/crdroidandroid/android_device_oneplus_sdm845-common/tree/11.0
    - Kernel: https://github.com/crdroidandroid/android_kernel_oneplus_sdm845/tree/11.0
    5
    Notes:
    - Yes it supports package signature spoofing permission for microG compatibility out of the box (but will work without ANY GApps/microG implementation installed as well).
    - Maintainer does not use GApps, so cannot answer questions about which packages work best from firsthand experience. In general, go with the smallest package you can and then install other Google apps from the Play Store. Please note that if you replace the stock dialer with Google Dialer, you may lose access to the Phone Info menu (*#*#4636#*#*) until you install another dialer. For recommendations, see https://wiki.lineageos.org/gapps.
    - Requires OOS 11.1.1.1 firmware.
    - Tested against official TWRP 3.5.2_9-0, works well.
    - Tested against latest Magisk canary (with zygisk instead of magiskhide), works well.
    - No there won't be official builds with inline GApps; please don't ask.

    crDroid 7.11 - October 2021 ASB release notes/known issues:
    Common:
    - October ASB (Android Security Bulletin) merged.
    - Imported blobs from OOS 11.1.1.1 firmware (myself, because LuK is busy. YOLO).
    - OOSCam v3 works now! 🥳 Pulled directly from OOS 11.1.1.1 OTA payload APKs.
    - Imported upstream LineageOS "android_hardware_oneplus" updates, with unified DeviceExtras ("OnePlus Settings") additions by AnierinB from Evolution-X.
    - Imported upstream CAF updates to hardware/qcom-caf/sdm845/display/ repo that Lineage hasn't merged yet.
    - Added overlay to require swiping up now to enable Face Unlock on secure lock screen (as though we had pop-up camera hardware), to make it more cumbersome to use. Stop using faceunlock if you value your security.
    - Removed built-in GCam to free up room in system partition (and no longer conflicts with MJL ports).
    - Kernel compiler updated to clang v13.0.3
    - Fixed wifi not turning on in some edge situations; dropped LOS commits about HDD initialization, added qcacld-3.0 changes from mcd kernel instead.
    - Rip out KCal and changing panel modes in DeviceExtras ("OnePlus Settings") and go back to LiveDisplay. *sighs* Fixes the HDR/color thing (composite mode problem in HWC it seems).
    - Merged OnePlusOSS 11.1.1.1 kernel sauce update.
    - Updated overlay to fix Night Light's torrid love affair with orange (that came from a set of much-improved colorspace mapping changes merged into crDroid upstream from kdrag0n's ProtonAOSP work, which exposed a problem in LOS default overlay values).
    - Dropped some stuff from kernel that won't be supported in cr8/A12 l(ike safetynet hacks that didn't work, usb2.0 slightly faster charging that might ruin your motherboard or mess with onboard voltage regulator, kcal pieces, boeffla wl blocker driver, dynamic fsync, etc.).

    Fajita-specific:
    Yo dawg, it's not my place to tell me how to use your phone, but...
    - Don't use AppLock on fajita unless you like rando FOD circles showing up everywhere and screwing up nightlight and such.
    - Don't use FaceUnlock either; it's the Motorola implementation, Google removed the official one for a darn good reason. Sometimes causes FOD circle to get left on because some aspect of biometric sensor handling & sercurity handling doesn't realize that faceunlock got there first and doesn't dismiss the FOD view.
    I dont' know why those add-on features were merged into crDroid when they don't work correctly with phones that have a FOD fingerprint sensor. Please feel free to open issues on https://github.com/crdroidandroid/android_frameworks_base and let the core developers know that those imitation security features break actual hardware security features of your phone. All bug reports about it to me will be ignored as I'm going to consider using them to be unsupported.

    Other known issues:
    - The "up vee" /\ screen-off gesture, left-to-right single finger swipe, and right-to-left single finger swipe screen-off gestures don't work (maybe?), all the other ones do. I don't know why. Sorry.
    - You tell me!

    Other stuff:

    - I once met a man with a wooden leg named Smith. Didn't catch the name of his other leg. :D


    Helpful links:

    Download ROM

    TWRP (use v3.5.2_9-0 or later)

    Magisk (use v23 or later)

    OxygenOS Full OTA (use 11.0 or 11.1)

    MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade)
    5
    (Posting in all 4 threads -- OP6-cr6, OP6-cr7, OP6T-cr6, OP6T-cr7)
    Jeez, it's been almost another month. I'm really sorry I haven't been able to kick out a release for June; I did a big old device tree rewrite for cr6 & cr7, and I've been kernel shopping a lot, and trying to get OOSCam integration stable (so close!). It won't even look that much different when it finally comes out, but it's what needed to happen to be able to maintain both Android 10 & 11 (cr6 & cr7) going forward.
    Probably going to require a clean flash to support the changes in priv-app contents for the camera apps to work correctly... but I'll try to keep this kind of thing to a minimum.
    If you want to live on the edge anyway, come join the Telegram channel where all the test releases get linked as I bang on stuff. Life is busy right now, I can't change that and won't apologize for taking care of my family & comrades & real-life stuff first... But I still want to do right by everyone.
    I'm not dead, and neither are releases of crDroid for OP6/6T. cr7 is the way forward for sure (much as I hate Android 11), but cr6 will be back to official status Real Soon Now(TM).
    5
    crDroid v7.8 (July ASB) is up! Check installation instructions in post #1 and update notes in post #2 for more info. Have fun, kids!
    5
    From the 'Better Nate Than Lever' department... new official March build is out, my first release as the new maintainer.
    Highlights:
    - Switching to Illusion kernel from AOSiP (the lineage-17.1 based one from before is unlikely to ever be updated with additional nodes from the OOS 10.0 source release, and doesn't support the DeviceSettings customizations we want in A11. meanwhile, Illusion was also LineageOS-based originally, but has more of the goodies from Q added that support the customizations we want, and maintained more frequently), with updated linux-stable security patches and updated wireguard.
    - Reworked the device tree with a much cleaner merge of vanilla lineage-18.1 sources, unofficial bringup patchset from the Lineage gerrit, and commits from crDroid. This is mostly cleaning up under-the-hood to make it easier going forward (because I made a royal mess of things earlier this yeear/late last year).
    - Temporarily removed DeviceSettings (Settings > OnePlus Settings) for now, because it was buggy as heck. I'm still working on it, but you have to remove some Lineage things to replace with it, and I want you folks to have things working right while I figure stuff out.
    - Panel color modes are temporarily gone due to kernel differences, but DC dimming should be working great (in Settings > Display > Livedisplay > Anti Flicker).
    - (Fajita only): FOD should be working again, although I've heard there's some funky business with the fingerprint graphic not disappearing after opening an app with securelocker; swiping the notification shade down and back up seems to clear it.

    Recommended setup (I haven't tested on anything else, so please match this if you're filing bugs):
    - 10.3.8 OOS base firmware or newer (10.3.9 just came out and works well)
    - Official TWRP 3.5.1_9 (adds ability to flash apks as flashable zips if they have the right content, like magisk 22)
    - Magisk v22 if you're going to root (release, beta, or canary - I've been on canary the whole time, works well)
    - I don't use GApps, but happy to take recommendations for which packages work best. I'm using FriendlyNeighborhoodShane's MinMicroG standard package myself, installed to /system.

    Dirty flash from 7.3 should work fine, although you might want to wipe Dalvik since we're changing kernels, and possibly clear storage/cache of the Settings app itself (that's where most of the work has been done).

    No inline TWRP yet in A11; the old method for including it has been removed ROM-side, so not much I can do for now. If you're installing from recovery or doing a clean flash, you'll need to install the ROM zip, install TWRP, reboot to recovery, install Magisk, then install any GApps/MicroG (or not!), wipe Dalvik, and finally reboot system.