Profile cover photo
Profile photo
Chainfire's posts

Post is pinned.
PSA: There is no support on G+

While Google Plus is a nice medium to share information, it is utterly unsuitable for any form of support.

All releases have their own discussion threads on, which are referenced in most posts here. If you need assistance, want to file a bug report, or discuss anything related to a release, please go the relevant XDA thread.

You will not receive any support here on G+.

Additionally, all posts should be English only.

Post has attachment
Recently updated to v1.40

This update brings Nougat compatibility. And that's it, really :)

Post has attachment
CF.lumen updated to v3.70

This minor update primarily fixes 'performance mode' of the 'CF.lumen driver' on various Nougat devices. The grayscale filter is now scale from grayscale to normal saturation, instead of a plain toggle.

- (c) 2017
- Upgrade grayscale filter from a toggle to a saturation slider
- CF.lumen driver: fix 'performance mode' on Nougat (bypass new linker protections)
- CF.lumen driver: fix darken filter math issue (still doesn't work on invert, though)

Post has attachment
FlashFire v0.55 released

This update brings a lot of bug fixes, improvements, and new features. The latter is mostly related to Pixel devices, though.

There was a pre-release of this version on XDA (v0.54-PRE) a few weeks ago, without much further comment. This post and the changelog includes all the changes in that version as well.

As with any release, if an issue with a previous version of FlashFire has not been solved by this update, please report it again in the XDA thread linked below. Please link to your previous posts in your new post.

Partition layouts with slots

Initial support has been added for devices with multiple copies (slots) of some partitions, such as the new Google Pixel line. Slot management is mostly automatic, but most actions let you manually override the slot the action is performed on.

The new OTA format introduced with these devices is now also supported. Unlike traditional devices, FlashFire will even attempt to intercept the OTA download and launch its GUI to flash it when the download is complete. (It is questionable if this will work on future devices that are not made by Google itself)

File-based encryption

Initial support has been added for the new file-based encryption introduced with Android 7.0, which is the default encryption method for the new Google Pixel line.

Due to how this encryption method works, FlashFire can only be guaranteed to have full access to the data of the primary user. At this time, data of other users will not be backed up or restored.

Additionally, for a backup to be restored in encrypted form, it has to be both made and restored with the device in an encrypted state, and be restore by FlashFire. Restoring on an unencrypted device will always lead to an unencrypted result, as will an emergency restore with TWRP.


Aside from the already mentioned slot-OTA format, a number of issues with handling other OTA formats have been fixed, and support for 'uncrypted' (unencrypted files on an encrypted block device) OTAs has been added.


Basic support has been added for using FlashFire on a device with Magisk present, both with SuperSU as well as (only) topjohnwu's mod of superuser. I have only done basic testing, so your mileage may vary.

Read/write access to /system

FlashFire used to auto-detect whether /system was modified, and pre-set some flashing options based on this, if you selected a ZIP or firmware package to flash.

It turns out this detection (based on ext4 lifetime writes) is not completely reliable unless checked immediately after boot. As such, by default /system is now always treated as original. There is now an option in the settings screen to change this behavior.

ZIP intent

By request, I've added the capability for external programs to launch FlashFire and set up flashing a provided ZIP file. See the documentation site for further information.


Google Play:

XDA Developers:


Direct APK download:

- (C) 2017
- Improved 32/64 bit handling (fixes some blackscreens)
- Improved handling of devices that have a /vendor partition
- Add initial support for devices with multiple slots
- Add support for uncrypted OTA ZIPs
- Add support for A/B OTA ZIPs
- Add support for file-based encryption backup/restore (primary user only)
- Add additional Pixel partitions
- Add support for Magisk+SuperSU (preliminary)
- Add support for Magisk+phh (topjohnwu version only) (preliminary)
- Add circular icon (Android 7.1)
- Restrict app usage to primary user
- Make treating system/vendor/oem as original a setting (auto-detection is not completely reliable)
- File selection activity now remembers last location
- Fix drawer closing on back button press on tablets like Pixel C
- Fix overlay display visibility on S7@Nougat
- Detect and handle screen scaling on S7@Nougat
- Fix archive scanner freeze when reading password protected ZIPs inside another archive
- Fix seeking issue with custom recovery detector
- Fix archive scanner inconsistency with multiple files targeting the same partition
- Fix archive scanner scanning inside images
- Fix archive creator display inconsistency
- Fix unconditional block update ZIP detection
- Fix busybox/untar not setting SELinux file context on files that already existed
- Hide cache wiping options if no cache partition present
- Restart and re-check for root if root not found initially
- Refactor boot image analysis
- Preserve recovery: option hidden from devices without a dedicated recovery partition
- Replace update_engine service on A/B update devices
- Add intent to flash a specific ZIP file
- Workaround adb restore 'never-finish' issue by using adb push (temporary?)
- Embedded SuperSU updated to v2.79 SR3
- Adjust timebomb for non-Pro users to May 01, 2017

Post has attachment
SuperSU v2.79 SR3

This is a minor bugfix update, a new stable will be released soon.

Some users reported bootloops on SR1 and SR2, for whom the last stable worked fine. If this still happens on SR3, report it to the BETA thread on XDA, otherwise I will consider these reports fixed.


Download flashable ZIP:

SuperSU BETA thread on XDA:

- Fix erroneously deleting SuperSU's copy of app_process on 6.0 since 2.79-SR1
- GUI: Fix app_process requirement detection when supersu context used
- Fully eliminate sugote binary, no longer needed due to SELinux handling improvements in earlier versions
- Support /system/xbin/sush as default shell
- Adjust LD_PRELOAD filtering to exclude suhide's libraries
- ZIP: Motorola: default to systemless mode

Post has attachment
SuperSU v2.79 SR2

The SR1 release changed a lot of SELinux handling aimed at Android 7.x. A bug in this handling caused the installation to break on older firmwares. This update fixes that specific bug.

There were a number of reports of bootloops with SR1 on pre-7.0 firmwares, please re-report them (in the BETA thread) if they still happen with SR2 - otherwise I will assume them corrected by this patch.


Download flashable ZIP:

SuperSU BETA thread on XDA:

- supolicy: fix some segfaults(NPEs) in pre-7.0 sepolicy handling
- ZIP: write boot block device once instead of twice (@_alexndr)
- (c) 2017 + CCMT

Post has attachment
SuperSU v2.79 SR1

This update focuses primarily on SELinux changes for Nougat:

- SuperSU will now use it's own 'u:r:supersu:s0' context to run in, rather than reusing the 'u:r:init:s0' context. This can prevent some conflicts from occurring, but it may also cause some root apps (or complete firmwares) to suddenly stop working. Please report these in the BETA thread on XDA. In time this feature may be ported back to Marshmallow as well.

- SuperSU no longer modifies file_contexts[.bin]. This modifications caused issues on some firmwares, though why this happens exactly has not been identified. Regardless, it has been refactored away.

On app-heavy devices SuperSU may have been slow to grant root access, especially right after boot, when the device is very busy, or when it needs to popup a confirmation dialog. This should now be much better on Nougat firmwares, where the problem was most apparent. It has also improved for older firmwares, but not as dramatically - it will take some more work to backport the full patch.

Compatibility with the latest TWRP on the PIxel has also been fixed, and various other small changes are listed in the changelogs below.

CF-Auto-Roots have been needing updates for a while now, but it will have to wait some more, as I'm trying to push a FlashFire update out first. For the devs among you, I have slightly updated the How-To SU docs.


Download flashable ZIP:

SuperSU BETA thread on XDA:

How-To SU:

- Expand Samsung detection
- GUI: reworked portions to work with 'supersu' context on 7.0+
- GUI: fix binary update notice when superuser disabled by user in some cases
- su: reworked portions to work with 'supersu' context on 7.0+
- su/GUI: improve responsiveness when device busy on 7.0+
- sukernel: fix cpio restore failure with very short filenames
- sukernel: no longer patches file_contexts(.bin)
- sukernel: revert force seclabel (no longer needed with 'supersu' context)
- supolicy: add "create", "auditallow", "auditdeny" policy commands
- supolicy: support "*" for permission/range parameter of "allow", "deny", "auditallow", "auditdeny", "allowxperm" policy commands
- supolicy: -live/--file no longer apply default patches if custom patches are supplied
supolicy: -sdk=X option added (required for 7.0+)
supolicy: reworked all SELinux rules for 7.0+, run as 'supersu' context
- ZIP: Separate slotselect and system_root logic
- ZIP: Adjust system/system_root device and mount-point detection
- ZIP: Fix minor errors in documentation
- ZIP/frp: Explicitly label /su

Post has attachment
LiveBoot updated to v1.50

Fixes an issue where the animation would keep running for quite some time after booting was complete, as seen on the S7 running the Nougat beta.

- S7@Nougat: stop animation when Android is up
- (C) 2017

Post has attachment
SuperSU v2.78 SR5

This update fixes some compatibility issues with a number of Nougat firmwares across various devices.

Some modifications that SuperSU makes to SELinux combined with stricter service execution rules in Nougat and the absence of explicit security labels in the startup scripts of some firmwares, could lead to some scripts not being executed.

On many firmwares this issue didn't occur at all, but on some (S7 Nougat Beta, CM14.1/RR-N on various devices) this could lead to Wi-Fi, cellular, and other modem-related features not working. On a rare firmware this caused bootloops, like on HTC10's shell-script-spaghetti Nougat firmware (I feel dirty just having looked at it).

Additionally, SuperSU GUI now offers to disable Samsung's SecurityLogAgent component as part of disabling KNOX, to get rid of some annoying popups.

As TWRP is not currently available for the HTC10's Nougat firmware, and its fastboot mechanism isn't compatible with the current incarnation of CF-Auto-Root, I've made a custom package to install this version of SuperSU to the HTC10 (linked below). Once TWRP or CF-Auto-Root is out, you should just use that instead.


Download flashable ZIP:

Download HTC10 installer:

SuperSU BETA thread on XDA:

- Fix shell-based scripts/services possibly not being executed on 7.x firmwares
- Add SecurityLogAgent to Samsung KNOX detection
- sukernel: force seclabel

Post has attachment
SuperSU v2.78 SR4 (Pixel TWRP)

If you are not using a Pixel device, the only change in this SuperSU release is improved detection of file-based encryption. This should get rid of the issue where some Nexus devices suddenly got encrypted after flashing SuperSU.

The rest of this text applies only to Pixel and Pixel XL

Earlier today Dees_Troy released the alpha of TWRP for these Pixels. TWRP unfortunately breaks the boot-to-root images I prepared for the Pixels earlier. We do talk so this came as a surprise to neither of us.

As everybody probably knows by now, both normal Android boot as well as recovery share a boot image now. This requires some trickery to get everything we want up and running.

Both SuperSU and TWRP need to replace /init. Funnily enough, my first roots for the Pixels actually did this in such a way that flashing it over TWRP would not have been an issue (not the other way around, though), but this functionality was later removed as a size optimization.

That optimization has now been adjusted to keep both working at the same time.

Aside from that, there have been various fixes to the installer script to work around the differences between the boot-to-root/CFAR environment and TWRP.

That being said, issues can occur, so please take care to follow the instructions exactly.

It is very important to keep in mind the differences between using TWRP and flashing SuperSU through the ZIP file, or using boot-to-root (and in the future: CF-Auto-Root).

When switching between the two, you must re-flash your firmware's stock boot image. Advised is to flash to both boot partitions:

fastboot flash boot_a /path/to/boot.img
fastboot flash boot_b /path/to/boot.img

Failing to do this can lead to bootloops, or cause the device to always boot into Android (instead of recovery), or cause the device to always boot into recovery (instead of Android).

boot-to-root / CF-Auto-Root

These have not been updated to SR4, just use the SR3 version from the post linked further below.

- reflash stock boot.img
- fastboot boot /path/to/boot-to-root.img

You will end up with only SuperSU.


See Dees_Troy's post linked below for the links to download both the twrp img and zip files.

- reflash stock boot.img
- fastboot boot /path/to/twrp.img
- TWRP install
- reboot into recovery
- TWRP install

You will end up with both SuperSU and TWRP.

Full unroot

If you're using TWRP, please note that the 'full unroot' functionality present in the SuperSU GUI will (if it works at all) restore the original TWRP boot image from which SuperSU was flashed, rather than return you to the real stock boot image.


Let me just note again that suhide is not compatible with the Pixels (or Android 7.1 for that matter). Expect bootloops if you try to use it.


Flashable ZIP download:

SuperSU BETA (SR) thread at XDA:

Dees_Troy's Pixel (+XL) TWRP Alpha post:

Pixel 'boot-to-root' images with v2.78 SR3:

- sukernel: improve FBE detection
- suinit: TWRP compatibility on slot-based systems
- ZIP: TWRP compatibility on slot-based systems
Wait while more posts are being loaded