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

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

Search This thread
I need help! Coming to CrDroid from EvoX, I followed instructions for clean flash, using Nic Gapps basic. I believe I did everything by the book, but every reboot ends up in TWRP.
Any suggestions or links welcome (at this point I do not have a working phone), am considering reverting to OOS.

BTW, any source of MD5s for downloaded zips?
Have you formatted data?

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    crDroid v7.9 update (August 2021 security patch) pushing out to OTA now, should be showing up soon!
  • 13

    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.


    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.

    - 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 (10.3.11 or newer), crDroid zip, TWRP bootable image and installer zip (official 3.5.2_9-0 or newer), and whatever Magisk/GApps/microG installation packages you want to use to your computer.
    - 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.

    First time installing crDroid to your OP6, coming from stock OxygenOS or another ROM:
    - Reboot to bootloader, then `fastboot boot path/to/twrp.img` to start up into TWRP recovery.
    - 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 be a bit.
    - 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.

    OTA updating from TWRP (preferred):
    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 firmware OTA (if needed), 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 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.

    Reporting bugs:
    Look, I'm a parent of three young kids whose industry disappeared in the pandemic and is now full-time house husband & virtual classroom proctor & tech support department, trying to save my small business (four of us in a worker-owned co-op) by turning our live event company into a streaming studio in my spare time. 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. ROM ships with Matlog for a reason.
    - 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

    - 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).
    - Yes it passes SafetyNet out of the box (with GApps installed, tested with Nik, Flame, and opengapps).
    - Due to upstream changes from LineageOS & Android 11, we no longer have inline TWRP recovery and are building with the stock LineageOS recovery instead. This makes live OTA updating from the Updater app less seamless. Blame Google for "seamless" A/B horseshittery.
    - Maintainer does not use GApps, so cannot answer questions about which packages work best from firsthand experience. Nik Gapps seems to work the best, opengapps works well, Flame works but clobbers the crDroid setup wizard a little. MindTheGapps probably also works, but might need to be trimmed down to fit in the available space in /system (since I'm shipping with built-in GCam right now, which might change). 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 will lose access to the Phone Info menu (*#*#4636#*#*) until you install another dialer.
    - Tested against OOS 10.3.11 OOS firmware, includes vendor blobs from 10.3.11. Recommend using the latest available (10.3.11 as of this writing).
    - Tested against official TWRP 3.5.2_9-0, works well.
    - Tested against Magisk 23 so far (maintainer runs canary channel and updates as they become available) with no problems.
    - No there won't be official builds with inline GApps; please don't ask.

    crDroid 7.9 - 01 September 2021 release notes/known issues:

    - Vendor blobs from OOS 10.3.12.
    - August ASB merged (so no going back to earlier without formatting /data partition).
    - Awesome Alert Slider! Have you ever wished the alert slider on your OnePlus phone had other, less-useful functions than controlling ringer & notification modes? Me neither! But now you can use it for other things anyway if you so choose, just like those crazy kids with their OnePlus 8 & 9 series phones! In the immortal words of Zoltan Kulle, "Not what I would do, but... when has that stopped you?"
    - Still shipping with forked mcd kernel (arter97 base) r5, modded to build inline with our device tree particulars; updated to CAF msm-4.9 v4.9.280 and reenabled zram for swap (plus upped the background app limit in device tree; should stop killing background apps quite as instantly now). Will keep updated as upstream sources get updated. Why? Because video recording. LOS vanilla, crDroid stock branch (LOS fork with extras), and even newer mcd r6/7 (back to the Radioactive base) are wonderful, except when using them, video recording (or video conference apps like Zoom) crashes after about 10-12 minutes. During a global pandemic, it's probably for the best if your video chat keeps working, so there you go.

    - Took a baby step towards getting hotword enrollment back working (and testing importing a tiny piece of the OOS 11 vendor blobs). It doesn't actually WORK from anywhere outside of the Google app/assistant, but at least you can enable detection again and train a voice model under Android 11. Unfortunately, getting it to work properly probably involves going way beyond what our upstream LineageOS maintainer is willing to spend time doing, and actually import stock audio mixer configs from OOS, which might require changing out the bluetooth stack while we're at it, and it's just a huge can of worms. But hey, for now, it's not any MORE broken. Baby steps!
    - I spent a lot of time trying to fix things (like hotword enrollment -- still broken; getting built-in TWRP to compile & boot again -- it still freezes on bootloader unlocked warning screen; updating stock kernel to see if it would play nice with the cameras -- miraculously I got the DC dimming code cleaned up and the "stock" kernel is pretty tight, but video recording/conferencing still crashes the camera after about 10-12 minutes; etc.) that ultimately didn't work out. So this isn't gonna look like a huge update. But I put in a ton of time trying to work on that kind of stuff for you all (and for me; I use this thing too). Wish I had more to show for it.

    - The "Smart Pixels" overlay really tends to screw up the FOD sensor, by the way. You should probably turn it off unless you're using it to dim the screen even further late at night. This is even more of an issue on Android 11, where any "secure settings" buttons/toggles/whatever refuse to take input if there's a screen overlay going on, so you can't even push some buttons when Dumb Pixels are enabled. I'll leave you to your own judgment as to whether or not the feature is worth using.

    Other known issues:
    - WFD (WiFi Display, Miracast) is still currently broken, from upstream LOS.
    - Per-app data accounting & per-network blocking is still broken, from upstream LOS.
    - I guess screen-off gestures were a little screwed up and I didn't realize it. Re-worked the input/synaptics_driver_s3320.c touchpad driver to be less freakin' weird, and now *almost* everything works... except the "up vee" ( ^ ) gesture doesn't work (???). Like, wtf. It's like something else is eating that input scancode before it registers (much like the Button B problems with the goodix fp sensor and USB/BT gamepads on OP6 stock). I'm clueless, use a different gesture. Sorry.
    - You tell me!

    Other stuff:
    - Not much, friend. What's new with you?
    - Did you know that the Mortal Kombat theme is actually adapted from old Scandanavian church music? Yeah, turns out it's from a Finnish Hymn. :D

    Helpful links:

    Download ROM

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

    Magisk (use v23 or later)

    OxygenOS Full OTA (use v10.3.12, not v11)

    MSMTool (oh now you're in trouble - use latest unless you have a good reason to intentionally downgrade)
    (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).
    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!
    From the 'Better Nate Than Lever' department... new official March build is out, my first release as the new maintainer.
    - 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.