[One (M8) Android Development] topjohnwu:
The official Sense 7 for MM is out!!

For those who haven't or cannot receive the OTA and you cannot wait, here is it!

In this post you can find the followings:

Firmware

Aroma Stock Rom

Root Info (System/Systemless)

Disable S-ON System Write Protection

Sweep to sleep module

FAQ

Firmware

Here is the full firmware pack before flashing the rom. You can choose stock or the one with no red text.

Unzip the firmware zip, and change mid and cid in android-info.txt to your own one.

This firmware will not wipe data!! Flash without any fears :)

S-OFF Only!! S-ON users can try flashing this rom with older firmwares.

Stock: DevDB Download

No red text: DevDB Download

Aroma Stock Rom (With selectable root ,wp_mod, s2s_mod)

The installer will install everything for you.

If you want root, take a look at the next section for some info about root methods.

I haven't got much time, so I'm using block flashing for convenience. Will update to file based flashing if I had time, but users wouldn't feel any difference.

DevDB Link​

Important!! If you choose systemless root, please choose "Do not install SuperSU" when reboot in TWRP, because TWRP isn't updated to detect this new method. If you choose to install SuperSU within TWRP you'll get stuck in boot loop.

Root Info

Marshmallow root has been much more difficult than simply flash a zip in recovery, because it also requires a modified boot image to work. This root is achieved with SELinux enforced using Chainfire's method.

Chainfire gave us with two rooting methods include:

The traditional root in system, which breaks OTA functionality.

(It's more stable now)

New "systemless" approach, which means the root stuffs are only in DATA and BOOT, the system will stay intact and it will accept OTAs.

(Note that this method is still in beta stage according to CF)

If you are already on the stock rom and you want root, this is where you'd be interested with.

Choose your preferred root method above, and follow the correspond instructions below.

Instructions:

Traditional:

Flash m8-mm-su-boot.zip in attachment with TWRP

Flash SuperSU 2.52

Systemless:

Be sure you haven't used any other root method(like the traditional one above), if you've rooted with other methods, please re-flash your system back to pure stock

Flash m8-mm-su-boot-systemless.zip in attachment with TWRP

Download SuperSU-v2.56-20151030013730.zip in this thread, and flash it through TWRP

Important!! Please choose "Do not install SuperSU" when reboot in TWRP, because TWRP isn't updated to detect this new method. If you choose to install SuperSU within TWRP you'll get stuck in bootloop.

Disable S-ON System Write Protection

After you rooted, you might find out that your system partition is locked up, this is because of HTC's system write protection on S-ON devices, and here is a handy mod for you to bypass it. Original mod by flar2, I modified it to work on MM.

Instructions:

You have to use the traditional root method above to make this work!!

Flash m8-mm-wp_mod.zip in attachment

Sweep to Sleep module

A handy mod to turn of the screen by swiping the bottom of the screen. Original mod by flar2, I modified it to work on MM.

Instructions:

This will flash files to system, there is no point in using systemless method, but it should be OK

Flash m8-mm-s2s_mod.zip in attachment

FAQ

Q: After choosing full wipe, my contents in internal storage are all gone!!

A: No, it's not. It seems that Marshmallow treats my full wipe script differently. After each clean flash, it will move all previous files in /sdcard into /sdcard/0. You can just move them back to the proper locations. No big deal!

Q: I cannot install Busybox in system / I cannot use adaway !!

A: Flash wp_mod.

Q: I used systemless root and wanted to keep my system partition intact, how do I install Busybox?

A: Download Busybox Pro, type /su/bin as the installation path for busybox. You cannot do it using the free version, unfortunately.

Q: **** app cannot access external SDcard!!

A: Look at this explanation:

Since Kitkat (2 years ago man), we don't have direct external storage write permission. Google consider it insecure, so they implemented this feature. The reason why you can access external SDcard easily before is because most roms on XDA already contains a hack in /system/etc/permissions/platform.xml. You should not rely on this hack forever, please take a look below.

In lollipop and after, Google provided a much secure and better way to grant external storage access to third party apps, first of all take a look at this article for details:

http://www.androidpolice.com/2014/1...s-automatic-mediastore-and-improves-security/

So instead of using the old platform.xml hack in the old Kitkat days, adopt yourself with this new behavior of Android!! If a certain app cannot access SDcard, ASK THE DEVELOPER to add support for this API!!

Many apps already have support for this API. I'll take Titanium Backup for example, as lots of you cannot find the way to use it on externals SD. In Menu>>Preferences>>Backup Location, you can choose Document Provider on top of the detect button.

In the provider, open the menu on the top right corner and select "Show SDcard", then you'll see External Storage in the left side. Select external SDcard in the document provider and press the button on the bottom, the app will then be granted access to the whole external storage. You can then create a new folder in TiBack and select it as your backup location.

Other apps also follows the instructions above, you just have to manually set up the folder where the app can access, in the case which most of us would love to give access to the whole SDcard, I set the location to the root of external storage. Each app has independent permission, so you have to manually grant each app you wish to access external storage.

Q: I want OTA, what should I do?

A: Look at the following info

To accept OTA updates, you need the following:

Your MID should be 0P6B11000 or 0P6B12000

Your CID should be BS_US001 or BS_US002

You have to keep system partition untouched

You have to have stock recovery

So before anything, if you want to accept OTA, you have to change MID, CID, flash the stock firmware. The tricky part is the system partition and the recovery. The easiest way is when the OTA comes, flash the stock rom again without root, flash stock recovery through fastboot, then apply OTA. But if you like to go the hardcore way, here comes a tutorial:

fastboot flash systemless_boot.img

fastboot boot TWRP.img(so that you can use TWRP but you didn't actually flash it)

Flash systemless SuperSU

By doing so you can accept OTA at anytime.

Credits:

[MENTION=631273]Chainfire[/MENTION] for the new root methods and SuperSU

[MENTION=4684315]flar2[/MENTION] for wp_mod.ko and s2s_mod.ko

XDA:DevDB Information

Stock Sense 7 Marshmallow , ROM for the HTC One (M8)

Contributors

topjohnwu

ROM OS Version: 6.0.x Marshmallow

Version Information

Status: Stable

Created 2015-12-03

Last Updated 2015-12-03