[ROM][13.0_r30][Official]crDroid Android[v9.2][February 2023 ASB]

Search This thread

gecko8k

Senior Member
Apr 6, 2016
167
36
Thanks for creating an amazing rom, good work!

One (small?) feature request if you need something to develop on. Could you design the media player in quick settings so it has a big play button like this. It makes it somewhat easier to pause and play music. A couple of other Android 13-roms that I have tried has this design.

Media player with big play button.png
 

giantflash

Senior Member
Dec 12, 2011
110
20
Is anyone else having an issue with high battery usage? Android reports "Android System" as 50% of that usage, and BetterBatteryStats didn't show any major wakelocks or similar stuff, so I don't know what I am doing wrong here. Battery lasts half of what it did using the latest lineageOS (Android 12 based)
 
Wow, you folks have been busy here while I've been away ...
I'm getting ready to push the long-overdue December update (Android 13.0_r16 QPR1). A lot of the aforementioned issues should be resolved, especially NFC stack no longer crashing when device enters deep sleep (and everything that impacts, like Google Pay/Wallet, or other QS tiles lagging while it polls NFC status and realizes the stack has crashed & tries to restart NFC).
A huge time-suck has been the statusbar icons/corner spacing & padding.
The "burn-in protection" feature in 9.0-Dec was going overboard and there are still some issues with how spacing/padding is calculated; stuff was trying to spread out wider, and the *battery* meter was getting cut off without reaching the right edge (like it's inside a viewport that doesn't extend to the edge of the screen, due to the privacy indicator "green dot" chip), while the left side (or carrier name chip on lockscreen) was going too far toward the left edge and getting lost under the rounded corner mask.
I had to rework the padding, and ... I'm not happy with it, but it's even & consistent now, even if it's too far from the outside edges now for my liking. At least it's not spreading too far to the sides & getting text/icons cut off after the screen has been on for 15-20 minutes any longer.
Nobody's going to like it, but I need to be able to push SOMETHING to release for now, and keep working on different combinations of padding & corner masking & such for the 9.1 release later.
 
Thank you very much, that was perfectly understandable 😎. I'll go thtough MSM before I flash CrDroid.
I don't think you actually need to use MSMTool, since the actual GPT layout doesn't change when switching to dynamic partition retrofit.

I actually made some test builds with the DPR patches (we're both talking with jabashque, one of the Lineage devs for enchilada/fajita, who likes to play with stuff like that, or setting zram to use 100% of system ram and let God figure it out, or use DPR and then set system & vendor to be squashfs ramdisk images on top of it... good times), but it didn't seem like it was worth it for us, for a couple reasons:

1) The whole point of retrofitting dynamic partitions is to share free space, if one of three filesystems needs more room for putting more stuff in. The way it works is that the three GPT partitions per slot (currently system, odm, and vendor) are now treated as a raw storage pool, and there are "soft" filesystems that span across those three chunks of storage, than can be expanded as needed.

2) crDroid doesn't ship with GApps inline, so that people who want to go Google-free have the option... but you can't ship a read-only system partition filesystem (like squashfs, or erofs like EvoX) if you need to be able to flash a GApps zip.

3) There's plenty of room to install the recommended GApps (MindTheGapps) in the available system partition space as-is.

4) For now anyway, OnePlus Camera & Gallery seem to work okay being compiled into /vendor/priv-app/ with a couple sepolicy hacks, so really, there's no 3rd-party bloat in the system partition to try and work around.
Should be okay with just the clean flash instructions.

It still might not be a bad idea to switch to retrofitting dynamic partitions for crDroid as well, since that means I could put OP Camera & Gallery back in /system/priv-app/ and the sepolicy & permissions for it would be a lot less hacky. But it works fine for Android 13 at the moment, and I don't want to waste hours & hours redoing it again, just to make the initial installation procedure more difficult.

(On the other hand, it might cut down on unneccessary questions from people who can't be bothered to follow the installation instructions... and people insisting on trying to use TWRP for installing from recovery, muahaha :devilish: )
 
@Terminator.J

Thank you so much for this rom!
I was waiting (and hoping) for something like this - I like it a LOT.
Thanks again!


some feedback:

OP6T, flashed like recommended, no Magisk (yet)

1) I had an issue with my fingerprint sensor. Even though it worked flawlessly immediately after set-up, it could not use it to unlock my phone after longer phases of deep sleep. Changing the battery settings for the system app "SecureElementApplication" from optimised to not optimized seems to have fixed this. (I haven't double checked, but it is working NOW)

2) Turn on WIFI automatically ("turn on" - not "connect"!) does not work on my device (location service and always scanning for WLAN on)

3) 3rd party apps like Signal Messenger and Firefox don't adapt to the display setting black design (just light or dark), but this might be connected to the known issue you mentioned in post #2.

ad logs: 1) would be a ~two hours log, I don't think you'd like it ;)
I could make a log for 2) if you want


regards
m.
1) Usually the system log is automatically truncated. Not sure how many lines it saves, but it's a FIFO buffer that keeps it to a somewhat reasonable size; otherwise you'd just die from out of memory errors after a day or two of uptime. :D So capturing a log after the problematic event has happened is still useful, even if you can't reproduce it immediately after a reboot.

But for all of your points... if you're on the 9.0-Nov ASB release (the only "official" 9.0 release so far) and not one of the 9.0-Dec test builds/release candidates I've linked in the TG group, then ... it's probably outdated info and wouldn't help anyway. I've been trying to get the Dec ASB release together, but it took FOREVER to reinvent the wheel on statusbar/corner spacing & padding, and there are still interactions I don't understand, and I hate how it looks now, but it's not running off the sides anymore after the burn-in protection kicks in, so that's an improvement.
 
  • Like
Reactions: maxwell80

maxwell80

Member
Apr 29, 2020
32
14
Thank you for the new build!

There is still an issue I already mentioned in post #32:
Turn on WIFI automatically ("turn on" - not "connect"!) does not work on my device (location service and always scanning for WLAN on)

regards M.
 
  • Like
Reactions: Terminator.J
Thank you for the new build!

There is still an issue I already mentioned in post #32:
Turn on WIFI automatically ("turn on" - not "connect"!) does not work on my device (location service and always scanning for WLAN on)

regards M.
Hmm, seems to be working in 9.1, thankfully!
I made sure wi-fi scanning was on (I don't even have bluetooth scanning enabled), turned off wifi, turned on "automatically turn on wifi" feature toggle... waited 30 seconds, nothing changed.
So then I turned on airplane mode & waited a few seconds then turned it off figuring that would trigger a location refresh, and it popped up the location privacy green dot and a second later wifi came back on.
This is with the recommended MindTheGapps 13.0 arm64 installed on tester phone.
Looks like it's fixed now in January testing builds; come check it out (links in the TG group), or hang tight for January ASB release. :)
 
  • Like
Reactions: maxwell80

dhemker

Senior Member
Mar 23, 2017
56
139
I'm still facing an issue that all apps using the eID via NFC (reading data from the identity card) report a "card removed" error during transmission. In contrast, mobile payment is working. Logcat does not report any errors in libnfc. So I'm unsure where to investigate the problem further and possibly providong logs. Anyone else having this issue?
 
  • Like
Reactions: marfai83

maxwell80

Member
Apr 29, 2020
32
14
Hmm, seems to be working in 9.1, thankfully!
I made sure wi-fi scanning was on (I don't even have bluetooth scanning enabled), turned off wifi, turned on "automatically turn on wifi" feature toggle... waited 30 seconds, nothing changed.
So then I turned on airplane mode & waited a few seconds then turned it off figuring that would trigger a location refresh, and it popped up the location privacy green dot and a second later wifi came back on.
This is with the recommended MindTheGapps 13.0 arm64 installed on tester phone.
Looks like it's fixed now in January testing builds; come check it out (links in the TG group), or hang tight for January ASB release. :)Thanks for the reply!
Good to hear
I think I will wait for the official release
 

truquete

Member
Nov 27, 2012
21
11
Amazing ROM. I couldn't be happier. Everything working smoothly. I feel as if I had just bought a new 1000 USD flagship phone.

I am wondering about the new photo gallery picker of Android 13 where you give individual photo permissions to each app. Do we need to install it manually? By looking at instructions online it looks different from the standard picker from crdroid.
 

Steccas

Senior Member
Dec 6, 2012
81
4
Hello, does someone use this version with minmicrog? I don't want to use gapps. I'm an happy user of crdroid 7 and they work perfectly with that specific version.
 

maxwell80

Member
Apr 29, 2020
32
14
Hello, does someone use this version with minmicrog? I don't want to use gapps. I'm an happy user of crdroid 7 and they work perfectly with that specific version.
I use the NoGoolag Edition and it does it's job.
However, I had an issue with Signal messages always being delayed (though push notifications in general were working with microg), so I use Signals push notification service now (which works flawlessly), but I don't know if it's a microg or Signal or whatever problem ( and I don't care :) ).

m.
 
  • Like
Reactions: Terminator.J

Sblesh

Senior Member
Jan 5, 2011
85
14
Hello, I have a few questions:
Is it a good daily driver rom? (don't have much time during work days and need a responsive phone)
Google Pay works with this rom?
And Call screening (for call center spam)?

Thanks!
 

truquete

Member
Nov 27, 2012
21
11
Hello, I have a few questions:
Is it a good daily driver rom? (don't have much time during work days and need a responsive phone)
Google Pay works with this rom?
And Call screening (for call center spam)?

Thanks!
In my experience very stable. I use it as mainly driver. Google play no issues. I use mind the gaps. Can't say about call screening, but you can install any call app you want.
 
So, quick update on 9.1:
I'm all but ready to release it to OTA. We've had some issues off & on with inexplicable battery drain and occasionally losing permissions (location, usually) or network access both after updating using built-in updater AND clean flash from recovery, over the last month or two that I've actually tracked down to the current MindTheGapps 13.0 arm64 release.

Nobody seems to have had these issues with NikGapps, so I went ahead and modified the permissions, default-permissions, and sysconfig XMLs (and changed one pathname) to include additional allowances for things from NikGapps. In less than a day after dirty-flashing to switch to my modified build, two people who were having severe battery drain issues reported the % per hour drain had already dropped dramatically and their phones were no longer running hot.

I'll update the second post with links & instructions on how to switch to my modified MindTheGapps build, which I'm recommending for everyone to use for Google Apps now until I get fixes narrowed down a little more and can get a pull request submitted upstream to resolve things for everyone everywhere.
 

maxwell80

Member
Apr 29, 2020
32
14
Hmm, seems to be working in 9.1, thankfully!
I made sure wi-fi scanning was on (I don't even have bluetooth scanning enabled), turned off wifi, turned on "automatically turn on wifi" feature toggle... waited 30 seconds, nothing changed.
So then I turned on airplane mode & waited a few seconds then turned it off figuring that would trigger a location refresh, and it popped up the location privacy green dot and a second later wifi came back on.
This is with the recommended MindTheGapps 13.0 arm64 installed on tester phone.
Looks like it's fixed now in January testing builds; come check it out (links in the TG group), or hang tight for January ASB release. :)

@Terminator.J

"automatically turn on wifi" still doesn't work on my phone as you describe above.
Quote:"...and it popped up the location privacy green dot and a second later wifi came back on."
No green dot when I do the same.

OP6T
Install as recommended
updated to cdroid 9.1
minmicrog nogoolag system install
no magisc
stock kernel

Settings:
- wlan - timeout after 15 sec without conn. on
-autom. turn on wlan on
-wlan scanning on
-bluetooth scanning off
-location service on alll microg location modules (deja vu, gsm loc, mozilla loc serv, wlan loc serv) exept apple wifi on and running (checked)

Expected behaviour:
- wlan turns off 15 sec after disconnecting (working)
-wlan turns on when known connection accessible
-wlan connection established

Actual behaviour:
-wlan does not reactivate
-and therefore does not connect

I attach a log file - perhaps you find some time to have a look.
Thank you,
m.
 

Attachments

  • logs-2023-02-05-17-58-07.zip
    166.9 KB · Views: 4
Last edited:
  • Like
Reactions: Terminator.J

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    Almost done with 9.2, about to build a second release candidate; should be out in a couple days. :)
    2
    Thanks for the reply.
    The doubt is:
    Do I really have to reinstall the official Oxygen ?
    is it possible to directly install crdroid through twrp ?
    Thank you
    That's for updating firmware.
    If you know you already have OOS 11.1.2.2 flashed in both slots, then you can just go to the clean flash instructions.
    If you want to use TWRP, that's up to you; and you'll need to use your experience & understanding of how active/inactive slots work when flashing to figure out the correct steps. I don't recommend it because I don't have the time to keep track of TWRP builds as well as the Lineage-based crDroid recovery that ships built-in.
    But you *should* be good to do something like fastboot booting the twrp.img, flashing the crDroid zip, factory reset/wipe data, use the built-in ability for TWRP to flash itself to both boot slots, reboot to recovery, adb sideload the crDroid zip again (recommended to do it twice, but only once is really necessary), TWRP install itself again, reboot recovery again, flash GApps (see Post #2 for recommendations & links), reboot system, do setup.
    If you want Magisk, finish the initial setup first & let Google Play Services update itself and cache a "device is certified" response first, before rebooting to recovery & ADB sideloading the Magisk apk (works like flashing a zip, cool that way) to root.
    1
    Hi, I would like to thank you very much for this ROM. I have just done a fresh install of 9.1 coming from LineageOS 20. Your documentation and instructions on installing the ROM is the most in depth and well covered with all links needed I have ever read. For which I am extremely grateful. Love having the Oneplus camera as well. Once again Thank you.
    1
    I have been using custom roms for many years and I have never seen a maintainer as dedicated as you. thank you very much for your work!
    1
    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. 😁
  • 14
    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)
    13

    crDroid 9.2 - February 2023 ASB release notes/changelog:

    Changelog since v9.1 hotfix 1 release:
    • February 2023 Android Security Bulletin merged from upstream.
    • Device trees/hardware/kernel/vendor changes pulled from LineageOS.
    • Updated translations from upstream.
    • "Bluetooth won't stay connected" should be resolved properly now.
    • Kernel rebased on top of LineageOS lineage-20 branch of oneplus/sdm845 which FINALLY incorporates 4.9.337 from Google's common kernel android-4.9-q branch, with some additional backported stuff from 4.14 & updated QSSI qcacld-3.0 wifi driver (thanks to BananaFunction), and then reapplied my stack of modifications for crDroid (mostly pulled from MCD kernel, thanks to Danny).
    • Burn-in protection should no longer cut off the battery chip at the extreme outward end of its travels (lowered the allowed horizontal range). Navigation hint pill should no longer fly south for the winter.
    • Hopefully eliminated possible doubling of statusbar items/carrier text/airplane mode text in certain views.
    • Updated Lawnicons from upstream (and fixed a couple more that were causing crashes when themed icons are enabled).
    • Added prop for disabling surfaceflinger backpressure propagation (yet moar smoothness, mmm) since we have support in framework still and it can be nice on some legacy devices (which, I guess we are).
    • Several fixes under the hood in ROM sources from crDroid & Lineage upstream (Launcher, Clock, GameSpace, plus some additional new aptX bluetooth audio codec offloading support and probably other things).
    • "Misc bugfixes and improvements" (more nullability checks in bionic). :D
    • Fix for potential race condition during boot with allocating loopback devices for mounting apexes from upstream (luk1337 is a wizard).

    Known issues:

    • Carrier name still goes off on walkabout under the rounded corners on lockscreen after a bit, I'm going to need to do a lot more work for figuring out overlay priority.
    • 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.
    • 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.
    • If 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.
    • 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 either via ADB sideload from computer, or from a FAT32-formatted USB thumb drive via OTG, then reboot to recovery again, and re-flash your same Google Apps/microG/Magisk/whatever install zips (again via ADB sideload or USB OTG), 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: 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.

      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

      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).

    • MindTheGapps are recommended and considered the default supported configuration for either Android 12 or 13 (per the LineageOS wiki, linked above). Assistant works great out of the box.
      Note on Google Keyboard: It used to only allow for on-device recognition if installed as a system app (as part of a Google apps package, before first boot). This no longer seems to be the case, so don't bother trying to install it as a Nik add-on on top of MindTheGapps. It works great straight from the Play Store.
      MindTheGapps survives built-in System Updater OTA updates, works fine after doing manual update with built-in recovery, and passes SafetyNet.

      http://downloads.codefi.re/jdcteam/javelinanddart/gapps

      UPDATE: 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.

    • NikGapps seems to work well in Android 13.0, although it has historically had some issues with clobbering overlays leading to system apps triggering the privacy indicators that shouldn't be doing that. Recommend using Core plus addons, rather than going heavier from the beginning.
      You'll need Googlesearch (the actual "Google" app & Assistant pacakges), plus SetupWizard (not PixelSetupWizard, that breaks our launcher) at a minimum, in order to have Hotword working.
      Not usually the recommended GApps package, but these are strange days. Survives built-in System Updater OTA updates, seems to work okay from recovery but , passes SafetyNet afaik.
      https://nikgapps.com/downloads#downloads

    • 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:​

    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).
    5

    LOGS OR IT DIDN'T HAPPEN​

    How to make bug reports (and how not to):​

    i appreciate bug reports, but I also need details. If an app is crashing ("FCing", meaning "force closing") then at a bare minimum, copy the crash log URL and share that with your report.
    That probably won't be enough, though, which is why there are two main logs that I'll ask for:

    1. logcat​

    You can either use the built-in MatLog tool to acquire this, or get it via USB debugging and adb on the computer (which was in the prerequisites section of the XDA first post, so you installed platform-tools and have adb & fastboot on your PATH, riiiight? 😜)

    Using MatLog
    • MatLog is shipped built-in, and it works great. It's built for an older API though, so you'll need to manually grant it permission to access all files (it doesn't know enough to ask since it's a system app and assumes itself to be privileged). If you don't, then you can only use the "Sharing" interface to save logs, rather than saving them to internal storage.
    • To use, open the MatLog app, and go into settings and tick the box for "omit sensitive info" so that you don't end up sharing your IMEI or email addresses with the world. Probably still best if you PM me the logs instead of share to the group.
    • Ideally if it's a reproducible problem, reboot, open MatLog, do the thing that causes the buggy behavior, switch back to MatLog, tap on the menu and choose "Save Zip", then send me the resulting file (they're saved to /sdcard/matlog/saved_logs/). Otherwise, try to open it as soon after the issue as possible and Save Zip.
    Using ADB (Android debug bridge)
    • Since we're currently building as "userdebug", you can always grab a logcat even without being rooted. I'm assuming you've got adb and fastboot installed & can run them from a terminal.
    • Enable Developer Options if you haven't already by going to "Settings" > "About Phone" > scroll down to the bottom and tap on the "Build number" field 7 times to enable, then back up to System and choose the new "Developer options" menu, and toggle on "Enable USB debugging".
    • Connect the phone to computer via USB, then on the computer open a terminal type adb devices to start the server & verify you can see the phone. At this point you might get a prompt on the phone asking if you want to trust the computer with some ID for debugging; tell it yes (probably always yes, in case you need to do troubleshooting later due to a boot loop). You should see your phone's serial number listed under the output of adb devices in the terminal window. If not, you probably need to install OnePlus USB drivers.
    • Run adb logcat from the terminal and get ready for a wall of text. Ctrl-C to stop the firehose after about 10 seconds. Save the output to a file. Note: this is the stupid way assuming you just opened a command window or built-in PowerHhell in Windows. Any linux shell or current version of PowerShell should instead be able to just run adb logcat > logcat.txt to dump the output directly to a text file in the current working directory without the wall of text; just give it about 10-15 seconds and Ctrl-C to stop the capture.
    • That's it! PM me the file, with any other details about what's happening and your setup (device, how you flashed, GApps, and so on).

    2. dmesg​

    Requires root, probably USB debugging, platform-tools added to your PATH, and knowledge of what the below instructions mean
    • Open a root shell on the phone (via local terminal or adb shell via USB).
    • Run dmesg and save the output to a text file.
    • PM me the dmesg.txt file, along with a logcat capture as well, and a detailed description of what the problem is, what the behavior is you noticed, how to reproduce, details of your setup (which device, what GApps, what Magisk modules, any custom kernels, how you installed, and so on).
    • Protip: If you're not rooted, since this is a "userdebug" build, you can go into Settings > System > Developer options, turn on the toggle for "Rooted debugging", and then on your computer, do adb root to restart the adb server process. The next adb shell you run from the computer will get superuser privilege instead and you can run dmesg or do other things without having to root with Magisk.
    If you are rooted, I highly recommend installing & using SysLog (by Tortel), available on the Play Store and on F-Droid; it's a GUI app that lets you easily capture both logcat & dmesg & can generate zip archives to send to your favorite maintainer, while allowing for scrubbing potentially sensitive data, and has some other advanced filtering options.

    3. A detailed description of the actual problem & how to reproduce​

    Maintainer is not a mind-reader
    • Describe what the actual problematic behavior is, compared to what the expected behavior is. Don't just throw a logcat at me and expect me to figure out what you think was actually wrong. Explain how to reproduce the bug, and what you were doing at the time. Give me details about your configuration: are you actually on the most current version, did you clean install, did you use the recommended MindTheGapps package, are you rooted & if so what add ons/modules/root-required utilities are you using regularly, etc.
    • A picture is worth a thousand words. Moving pictures even moreso. If you can use screenshots, or better yet a screen recording, to show me how something is failing, that helps a TON.
    • Realize that a number of things are beyond my control. I'm not a software developer, I'm not on the ROM dev team, and some things might never get resolved. It's *still* better than OnePlus though, hey? :D
    • Feature requests are not bug reports. If you don't have a stack of tested commits that you can submit as a pull request for the dev team to merge, it's not likely to happen. But you can always ask politely!

    Other Notes:​

    "Supported" status - PLEASE do not do these things if you want help:​

    It's your device to use the way you want of course, but don't expect support for your bug reports if you...
    • didn't update firmware in both slots.
    • didn't do a clean flash when first switching to this ROM at this major Android version (13.0).
    • installed with TWRP/any other custom recovery (or, worse yet, installed that custom recovery after).
    • aren't using the built-in kernel.
    • are using extensive root-required modifications & Magisk modules like Project Themer, Lsposed/Xposed/Riru/Shamiko, Dolby Atmos, Viper4A, modified Adreno GPU drivers, etc.
    • immediately start flashing stuff like "finalize.zip" or migrate restore zips instead of following the actual instructions.
    • are running decrypted (ugh, just don't).
    • re-locked your bootloader for some reason... you're on a custom ROM; don't do that.
    • followed some other installation method different than the steps in the first post.
    • tried to dirty flash from an earlier crDroid/Android major version (like 8.x) without a factory reset.

    Connectivity issues:​

    If you are having problems with wifi or mobile data under Android 13, try some of the following (and please let us know if one/all actually fixed things for you):
    • Get info for the Google Play Store app, go to "Mobile data & WiFI", and toggle network access off (if on), then on (again). Force close the app, then re-open it; see if it finds the Internet now.
    • Same as above, except for Google Play Services (you'll have to find it in "Settings > Apps > See all __ apps > overflow menu > Show system" then it should be in the list).
    • Go into Settings > Network & internet, scroll down to "Private DNS" and choose a different private DNS provider or simply turn the feature off.
    • Go into Settings > Network & internet, scroll down to "Connectivity check" and turn it off (in case connections to Google are being filtered at the network level).
    • Go into Settings > Network & internet > Internet, tap the gear icon next to the wifi network you're trying to connect to, and change Privacy to "Use device MAC" (some networks actively reject spoofed MAC addresses).
    • Go into Settings > Network & internet > Calls & SMS, and make sure your primary SIM is actually selected for calls, messages, and mobile data, then back up one menu level, go into SIMs, select your SIM if needed, and make sure "Mobile data" is toggled on.
    • Go into Settings > Network & internet > SIMs, select your SIM, and change the radio mode to one of the ones that *doesn't* start with "NR", like "LTE/TDSCDMA/CDMA/EvDO/GSM/WCDMA" (or the one without the CDMA/EvDO stuff if you know you're not on a CDMA carrier).
    • Go into Settings > Network & internet > SIMS, select your SIM, go into Access Point Names, and make sure you've got the correct APN selected.
    • Go into Phone (whatever you have for the default dialer), keypad, type in *#*#4636#*#* to open the "Testing" activity, choose "Phone information", then in the three-dot menu in the upper-right, choose "Select Radio Band" and choose the correct region instead of leaving it on "Automatic".

    OnePlus Camera & Gallery:​

    • It works. It all works, and it's also the only way to get 60fps video recording on this hardware right now, unless there's a GCam mod with configs I'm not aware of.
    • This version of OnePlus Gallery requires a Google account to actually exist before it will successfully download the expansion pack. If you're running vanilla or haven't signed into a Google account yet, it won't be able to download the thing it wants.
    5
    So, quick update on 9.1:
    I'm all but ready to release it to OTA. We've had some issues off & on with inexplicable battery drain and occasionally losing permissions (location, usually) or network access both after updating using built-in updater AND clean flash from recovery, over the last month or two that I've actually tracked down to the current MindTheGapps 13.0 arm64 release.

    Nobody seems to have had these issues with NikGapps, so I went ahead and modified the permissions, default-permissions, and sysconfig XMLs (and changed one pathname) to include additional allowances for things from NikGapps. In less than a day after dirty-flashing to switch to my modified build, two people who were having severe battery drain issues reported the % per hour drain had already dropped dramatically and their phones were no longer running hot.

    I'll update the second post with links & instructions on how to switch to my modified MindTheGapps build, which I'm recommending for everyone to use for Google Apps now until I get fixes narrowed down a little more and can get a pull request submitted upstream to resolve things for everyone everywhere.