[K3 Note Original Android Development] daniel_hk:
Oreo - Mission impossible?

I started studying "O" in early August. All I got were the O-preview3 factory images for qcom and tegra devices which I don't have. Built it out and made it boot wouldn't be too hard but everything seemed different. It took me some time to figure out the flow of the new frameworks. At that time, only the RIL and Graphics sources were really "O". The most devastated situation would be the RIL. Seemed dead end at that time. That was the first time I feel impossible. The source from MTK's RIL made things even worse. All the .c functions are buried inside prebuilt static libraries. Frankly, up to this moment, I'm still not fully understand the workflow of MTK's RIL... :eek:

While I was struggling with the RIL, "O" - Oreo was launched. The most helpful info. were also released in source.android.com. Sadly, I can't access this website no more... Never take it for granted for anything. You can loose anything/anyone for no reason. :( The sources were then completed and took me some times to made it boot "again".

Eventually, I can make the RIL almost fully working recently. Yes!:victory: All I can say is, we are lucky. Our RIL blobs only experience a few crashes which I can managed. I had tried five or six sets of blobs for different MTK chips. Each had different crashes so there is no guarantee that all MTK devices might work...

Last week, I finally figure out how to made the camera work. Seems not "impossible" now so I start this new thread.

I can't start a DevDB now. The response from XDA official is "They can't think of obvious reason". Anyway, I pay for ad-free and still the status shows connection to axx.amazon-adsystem.com. It just hang there for minutes (until timeout I suppose). However, I can start a normal thread (after minutes of delay) and that's not a problem to me. I already learnt to live with so many obstructions now. :cyclops:

There were just too many distractions and ridiculous people out there. I don't want to waste time arguing so I would make it short this time. I rather spend time on something I'm good at. ;)

For those who want help, no matter its ROM related or about development, please don't use PM. There are many limitations with PM. Do it formally. Start a thread in Q/A or post with all the details you can get (log, kmsg, screenshot, etc.). It's no harm for more opinions. Hiding in the dark doesn't help.

Current Status :confused:

KERNEL

Patch: Binder and sdcardfs update are required and essential for Oreo.

See commits in my github for detail

AUDIO

Recording: Working

Playback: Working

Patch: Load a copy of the struct instead of the pointer to address.

BLUETOOTH

Working

Issue: Workflow issue in BTIF driver.

Patch: New driver and HAL build from source.

CAMERA

Flash/Torch: Working

Capture: Working

Issue: User handle is required in GetMemory. MTK blobs return null.

Patch: Save a copy of the user handle. Don't know if other devices might work or not. It's better to rebuild a few blobs but I don't have the source for my device...

Issue: Oreo use a ring buffer of native_handles and no more ANativeWindowBuffer.

Patch: A wrapper is required for the libcam.client. (The better way would be rebuild it but again no source...)

HDR: Working with Snap in LOS-15.1

Video recording: Working

Issue: Oreo doesn't support GRALLOC (or I don't know how). The old HAL1 implementation doesn't work too.

In short, need to find a way for the metadata that our old blobs can handled.

Patch:

1. Add libcamera_parameters_mtk for the MTK extra parameters

2. Add another mode to handle Gralloc in stragefright.

3. Patch the OMXNode to handle Gralloc mode.

4. patch the OMXClient to use mediaserver

5. Patch the hardware interface to handle Gralloc Metadata and work with the new OMX interface.

DISPLAY/TOUCH SCREEN

DT2W: Working

FM RADIO

Working

GPS

AGPS: Working

GPS & BEIDOU: Working

GLONASS: Enabled by default

GRAPHIS

HWC: Working

Issue: Android platform changed

Patch: A simple patch in libgui_ext (might use shim if timestamp proved no use)

OpenGL: Working

LED

Notifications: Working

Charging: Working

Low power: Not Working

See Post #806 for detail. Haven't study why --pending

MEDIA

Video Playback: Working

Hardware decoder: Working

Issue: crashed

Patch: A small patch in minijail use Asan.

POWER

Power off charging: Working

RIL

Phone calls: Working

Mobile Data: Working

SMS: Working

Dual SIM: Working

Issue: Completely new approach in Oreo with interface/services. No more sockets. AND all .c libraries are proprietaries.

Patches:

1. Replace the MTK RIL daemon with AOSP patching for MTK

2. Wrap (eventually replaced) the libril from MTK with AOSP patching for MTK

3. Patch the RIL interface/service to work with the MTK vendor library.

Some more detail can be found in post #65 and post #806

SENSORS

All sensors are Working

Patch: Lower the requirement from 1.3 to 1.0

WIFI

ap,p2p: Working

Miracast: Working

Noted: only work on 2.4G as before

Hotspot: Working

Hidden SSID: Not support

No idea why yet. --pending

Sources :cowboy:

Github

Download :highfive:

Experimental: AndroidFileHost

OmniROM: AndroidFileHost, 百度网盘

LineageOS-15.1: AndroidFileHost, 百度网盘

Install :fingers-crossed:

Flash with the latest TWRP

1. Factory reset

2. Flash ROM

3. Flash SuperSU (tested ver.2.82)

4. Reboot and setup wifi

5. Flash Gapps (tested opengapps 8.1)

Change Log :)

[B][COLOR="Blue"]2018/10/6[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r46 (OPM4.171019.030.K1)
- New build enviornment
- Security patch Sep. 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/8/11[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r42 (OPM4.171019.021.Y1)
- OmniLib is updated
- Security patch Aug. 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/7/13[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r36 (OPM2.171026.006.H1)
- SELinux Enforcing
- Security patch July 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/6/26[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r30 (OPM2.171026.006.C1)
- SELinux Enforcing
- Add/Fix SEPolicy rules for GPS, camera, Video, etc.
- Security patch June 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/6/16[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r32 (OPM4.171019.021.E1)
- OmniLib is updated
- A few bug fix in Omni Apps
- Security patch June 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/5/18[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r28 (OPM4.171019.029.B1)
- Security patch May 5, 2018
- chromium-webview update[/INDENT]
[B][COLOR="Blue"]2018/5/11[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r26 (OPM2.171019.029.B1)
- Security patch May 5, 2018[/INDENT]
[B][COLOR="Blue"]2018/4/21[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r20 (OPM2.171019.029)
- fix vendor image mismatch warning
- fix a few security issues in reading NVRam
- chromium-webview update[/INDENT]
[B][COLOR="Blue"]2018/4/13[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r20 (OPM2.171019.029)
- Security patch Apr. 5, 2018
- adjust some memory defaults
- handle the build flags for MTK devices (to live with other devices in the same source)[/INDENT]
[B][COLOR="Blue"]2018/4/6[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r20 (OPM2.171019.029)
- Security patch Apr. 5, 2018
- HDR broken in this build. Check [URL="https://xdaforums.com/showpost.php?p=76174760&postcount=612"]post #612[/URL] for the fix patch[/INDENT]
[B][COLOR="Blue"]2018/3/16[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r15 (OPM1.171019.021)
- Add Device Features support in OmniGears
- Device Features: Display Color Adjustment is added[/INDENT]
[B][COLOR="Blue"]2018/3/9[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r15 (OPM1.171019.021)
- Workaround for Proximity sensor in InCall screen
- Settings: LiveDisplay is supported now[/INDENT]
[B][COLOR="Blue"]2018/3/2[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r11 (OPM1.171019.018)
- The patch for codec and power off charging animation included
- Workaround for Proximity sensor in InCall screen
- HDR support with Snap porting to OmniROM[/INDENT]
[B][COLOR="Blue"]2018/2/21[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR] 15.1[/B]
[INDENT]- The latest LineageOS 15.1 source, Android-8.1.0_r11 (OPM1.171019.018)
- All previous fixes in Omni-8.1
- HDR support with Snap port
- Patch for MTK soft codec[/INDENT]
[B][COLOR="Blue"]2018/2/16[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r11 (OPM1.171019.018)
- Fix Lockscreen settings
- Minor patch in video recording to make it more stable
- update codec conifg
- check [URL="https://xdaforums.com/showpost.php?p=75609953&postcount=338"]post 338[/URL] for the codec and power off charging animation patch[/INDENT]
[B][COLOR="Blue"]2018/2/6[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r7 (OPM3.171019.013)
- Source is sync to the latest Omni-8.1
- userdebug build.
- Native Video recording is fixed. [COLOR="Red"][B]Edit[/B][/COLOR]: check [URL="https://xdaforums.com/showpost.php?p=75488295&postcount=273"]post #273[/URL] for the camera patch
- Phonograph and equalizer are also fixed.
- MP3 and FLAC can be played now.
- GPS: Enable GLONASS by default [/INDENT]
[B][COLOR="Blue"]2018/1/21[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r7 (OPM3.171019.013)
- Security patch Jan. 5, 2018
- Add Messaging apk
- Add FM radio apk
- Add the forgotten vibration support
- RIL: Fix a bug in carrier info.
- Clean up the internal log I added. [/INDENT]
[B][COLOR="Blue"]2018/1/7[/COLOR] - [COLOR="YellowGreen"]OmniROM[/COLOR] 8.1[/B]
[INDENT]- The latest OmniROM 8.1 source, Android-8.1.0_r7 (OPM3.171019.013)
- Initial release
- Security patch Jan. 5, 2018
- New Bluetooth driver and HAL.
- Kerenl: a few minor patches[/INDENT]
[B][COLOR="Blue"]2017/12/30[/COLOR] - [COLOR="Black"]CarbonROM[/COLOR] CR-6.1[/B]
[INDENT]- The latest Carbon CR-6.1 source, Android-8.1.0_r1 (OPM1.171019.011)
- Cumulated patches from LOS-15.0
- Security patch Dec. 5, 2017[/INDENT]
[B][COLOR="Blue"]2017/12/22[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR]-15.0[/B]
[INDENT]- The latest LOS-15.0 source, Android-8.0.0_r30 (OPR3.170623.013)
- libsuspend: add earlysuspend support
- Kernel: tidy up lenovo features source
- DT2W: working now[/INDENT]
[B][COLOR="Blue"]2017/11/20[/COLOR] - [COLOR="Teal"]LineageOS[/COLOR]-15.0[/B]
[INDENT]- The latest LOS-15.0 source, Android-8.0.0_r30 (OPR3.170623.013)
- Kernel: remove obsolete Lenovo features
- Mediaplayer: fix video playback
- Camera: Add mode to handle MetaDataGralloc in video recording. (only audio working now...) WIP[/INDENT]
[B][COLOR="Blue"]2017/10/23[/COLOR] - [COLOR="Black"]CarbonROM[/COLOR] CR-6.0[/B]
[INDENT]- The latest Carbon CR-6.0 source, Android-8.0.0_r15 (OPR3.170623.008)
- Alpha test build[/INDENT]

Known Issues :(

- May be a few...​

Donations :angel: