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

[EXPERIMENTAL][CAF][MRA58K] Homemade Android 6.0 Marshmallow build

Search This thread

updateing

Senior Member
Aug 25, 2012
489
1,140
Wuhan
Google Pixel C
Hello everybody, I'm glad to share these days' work of bringing Marshmallow to the OnePlus One.

Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

This ROM is based on CAF release LA.BF.1.1.3-00110-8x74.0, with some little modification to some components to make it build. The kernel is based on CM12.1. You can check the kernel source on my GitHub. Links will be posted later.

Nearly all basic feature should be working: 4G data, 4G->3G fallback on calls, SMS, camera/camcorder, BT, WiFi, MTP, 4K recording, HW decoding etc.

kexec hardboot is supported.

Known issues:
1. Stock camera doesn't work well. Here is a list of comparison:
Feature - Working on Stock camera - OppoCamera port - CameraNextMod?
Switching front/back cam - No - Yes - Yes
Camcorder <=1080p - No - Yes - Yes
4K Recording - No - No - Yes
(maybe I should get a monospace font in Firefox)
2. Battery drains... a little faster? (Just a little)
3. The ROM comes with ancient Launcher2. Launcher3 is not included. I will post this as an attachment. Launcher3 has been added since 20151018
4. Picture in apps are sometimes automatically zoomed out (and distorted) and can not be zoomed in. Is this a common problem among AOSP-based Marshmallow ROMs? I tried AOSP and CAF sources, and they both have the same issue. Need to change DPI via build.prop
5. Security related: SELinux is disabledpermissive in 20151018. HW Crypto is not working. Software-based credentials storage.
6. No gestures (DT2W etc) Workaround available in Q&A
7. Kernel panics/reboots on switching adb on & off.
8. WiFi AP still runs on 2.4G even when 5G is selected.

If you find more issues, feel free to post here. However, I may not be able to solve them since schoolwork is so heavy... And this ROM may not be updated regularly.

Video Tutorials by @udimars30:
https://www.youtube.com/watch?v=XxjnTae2nCM - How to install ROM and Gapps
https://www.youtube.com/watch?v=kWZcxVs992c - How to get root
https://www.youtube.com/watch?v=vZ7qW4j3Kso - How to enable softkeys, Now on Tap
Thanks!

Q&A:
1. Kernel Compatibility
The kernel of this ROM is based on CM12.1, but not exactly the same. You can not use kernels built for CM12.1 with this ROM. Marshmallow requires new features like updated SELinux, uid_cputime, etc, but CM12.1 source does not contain these features. You can take a look at commits and it will be clear.

2. Recovery Compatibility
I am using TWRP 2.8.7.0 with MultiROM support (TWRP_multirom_bacon_20150803-00.img from MultiROM thread). If you can not get the ROM installed properly, please try updating your recovery.

3. Rooting
Since this is a experimental build, I have turned off SELinux completely. SELinux is permissive. Just flash SuperSU 2.50 zip in the recovery and it will be fine.

4. F2FS Support
The kernel has F2FS driver builtin and corresponding entries in fstab file (as CM does). Vold has F2FS files as well, so you can give it a try. But I can not guarantee that it will work flawlessly.
EDIT: Some people tested and reported it not working. Make a backup before you try.

5. GApps
I'm using DeltaGapps with SetupWizard removed (yes it is the one that keeps force closing. you can disable that via adb as well). I think the lack of permissions(appops_whitelist.xml I guess) caused this failure. After allowing every permission required by Google apps and adding the account manually, Sync and Store works as expected. Now on Tap seems broken. Maps is working, and gets a lock in secs..
There are some other GApps package links in the first few pages. Some people say Now on Tap works with them, you can have a try.

6. Disabling HW Keys and Enabling Softkeys - The Easy Way
Code:
echo qemu.hw.mainkeys=0 >> /system/build.prop
reboot # enables soft keys
echo 0 > /proc/touchpanel/keypad_enable # disables hw keys, need to do this on every boot

7. Where Is The App Switcher?
If you are comfortable with softkeys, goto 6.
If you are not, goto 3 and take a look at http://forum.xda-developers.com/showpost.php?p=63313126&postcount=115double tap the home key.

8. LCD Density
Code:
wm density 440 # if you want 440
wm density reset # self-explanatory
Above will lead to corrupted pics.
Change
Code:
ro.sf.lcd_density=480
to
Code:
ro.sf.lcd_density=VALUE_YOU_WANT
(Note: I did this before installing GApps, not sure if this is related to Google Now Launcher FCs)

9. DT2W Workaround
Code:
echo 1 > /proc/touchpanel/double_tap_enable # do this on every boot
Then add this line to /system/usr/keylayout/Generic.kl:
Code:
key 255 POWER
DT2W has been added into settings since 20151027.


10. Apps Not Working
Settings -> Apps -> YOUR_APP -> Permissions -> Turn on everything


Now screenshot spoiler (with Google Now Launcher):

2uik64k.png

25zkvir.png

2wp1nc0.png

122zpef.jpg

mqo5.jpg

33bio7o.jpg

2iways1.jpg


Discussion Thread:
http://forum.xda-developers.com/oneplus-one/general/discussion-homemade-android-6-0-t3227234

Download:
20151027
https://drive.google.com/file/d/0BwkmhbR5VHpAdWRxQ0ZraVgyT00/view?usp=sharing
Marshmallow's native DT2W setting (thanks CM)
USB MIDI support (What for?)
Fixed some crashes by removing SeempLog (try TiBu and network settings)
Double tap on Home key now brings up Recent View
Added a reboot option in power key menu/global actions menu
Note: if you have drain when NFC is on (or NFC setting is grayed out), please attach a logcat of booting process. I can not reproduce this on my phone... Thanks!


MAKE A BACKUP FIRST!
(I'm using TWRP 2.8.7.0 and it works well with this package.)

Sources:
Kernel: https://github.com/updateing/android_kernel_oneplus_msm8974 (marshmallow branch)
Device tree: https://github.com/updateing/android_device_oneplus_bacon
Blobs: https://github.com/updateing/proprietary_vendor_oneplus
local_manifest: http://www.hastebin.com/netamapate.xml
Hope you can enjoy the new feel of Marshmallow!
 
Last edited:

L0X0R

Senior Member
Dec 15, 2014
337
79
Melbourne
Battery drains faster?

Guess I'll wait a little bit longer, as it's the main reason I wanna switch to M.
 

KforHorizon

Senior Member
Feb 23, 2014
188
124
Kernel dilemma

If the kernel on it is based on cm 12.1 .. Can we flash any other kernels that work with CM 12.1? It should work or atleast i hope so! But yeah I'll try and get back!
Cheers! Keep up the good work! :)
 

Killer.shubham

Senior Member
Mar 14, 2013
254
185
Mumbai
will it work with F2FS ? separate build would be helpful, if its not tested i will test it

---------- Post added at 11:06 AM ---------- Previous post was at 11:05 AM ----------

If the kernel on it is based on cm 12.1 .. Can we flash any other kernels that work with CM 12.1? It should work or atleast i hope so! But yeah I'll try and get back!
Cheers! Keep up the good work! :)
i guess it would be tweaked for more compatibility to android 6.0
 

NOSTALGIA

Retired Forum Moderator
Jan 11, 2012
3,708
1,632
Cebu
as a reminder to everyone.. .NO ETA's pls. lets respect the dev.. compiling is already a good thing, and making it boot is a great achievement..
 

Top Liked Posts