[ROM][SNAPSHOT][7.1.2] AOSP Nougat for Xperia SP

Search This thread

AdrianDC

Recognized Developer
Dec 22, 2009
2,206
12,973
Île-de-France
adriandc.github.io
android_nougat-300x288.png

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.
 */


Downloads Links
AOSP 7.x Nougat (Unlocked Bootloader) :
Xperia SP (Huashan) - 7.1.2 : https://mega.nz/#F!LtNjDKBQ!YdZPyZghv07Tp2J8EgxcfQ

Google Applications (optional) :
OpenGapps : http://opengapps.org/ (Use packages for ARM, Android 7.x, Micro or Pico)
Information : Flash the GApps before the first boot. If not, a clean flash is recommended.

Recommended Recovery (optional) :
TWRP 3.0 : http://xdaforums.com/xperia-sp/orig-development/recovery-twrp-3-0-0-touch-recovery-t3309938

Informations and references :
Kernel CVEs : Security patches status https://cve.lineageos.org/android_kernel_sony_msm8960t
About AOSP : Repositories available on https://android.googlesource.com/


Flashing and updating
AOSP clean install :
- (Optional) Flash the boot.img kernel from the ROM zip with Fastboot or Flashtool
- (Optional) Wipe the data & cache (Backup to make sure not to lose data)
- Flash the AOSP ROM zip from the Recovery
- (Optional) Flash the GApps to have the Google Applications
- (Optional) Every additional zip you want to flash
- Reboot

AOSP update / upgrade :
- (Information) Don't wipe anything unless you want to
- Flash the latest AOSP ROM zip from the Recovery
- (Optional) Flash the GApps if you want to, otherwise preserved.
- (Optional) Every additional zip you want to flash
- Reboot


About the builds


Issues and reports
- Report issues only if you use the ROM kernel
- If an additional mod is installed, make sure it's unrelated, and mention it
- Make sure the issue wasn't discussed earlier in the threads
- Share a log of the error with CatLog for example


Q&A - FAQ
Q : Is root access included into AOSP ?
A : No but you can now root with my Boot Bridge and a superuser tool.

Q : Is the ROM suited for daily usage ?
A : Yes completely. OpenGApps recommended.

Q : I see errors during the installation, is it normal ?
A : If it is E:unknown command [log] , ignore it for now

Q : Where can I change the Quick Tiles and Status Bar ?
A : Long press the Settings icon in the notifications drawer.
> You will have access to the SystemUI Tuner from Marshmallow.

Q : The AOSP Keyboard does not support swipe gestures ?
A : Unfortunately the sources for swipe gestures are not available
and Google still requires their prebuilt library to be there for AOSP Keyboard.
Download the following libjni_latinimegoogle.so API 23 from OpenGApps
and push it to /system/lib/libjni_latinimegoogle.so using root access,
or use my one-time install zips : https://mega.nz/#F!ThEAkCRa!byhSwuoTbf6lnC1JxgKrig.​


AOSP available for Huashan also thanks to :
- Google AOSP
- The LineageOS Team
- CodeAurora Forums
- The CyanogenMod Team​


XDA:DevDB Information
AOSP Nougat 7.1.2, ROM for the Sony Xperia SP

Contributors
Adrian DC
Source Code: https://android.googlesource.com/

ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.4.x
Based On: AOSP

Version Information
Status: Snapshot

Created 2016-08-27
Last Updated 2020-08-15
 

AdrianDC

Recognized Developer
Dec 22, 2009
2,206
12,973
Île-de-France
adriandc.github.io
Reserved

FEATURES AND ISSUES
Code:
- Boot : Ok
- GApps : OpenGApps Micro Ok
- Partitions (Data, Cache) : Ext4 supported
- Dual Recovery : Ok (see below)
- WiFi : Ok (real SONY MAC address)
- Bluetooth : Ok (real SONY MAC address)
- WiFi Hotspot : Ok (2.4GHz and 5GHz)
- RIL - Phone - Data : Ok
- GPS : Ok
- Camera : Ok
- Camcorder : Ok
- Lights : Ok, regular AOSP lights support
- MicroSD : Ok, only Ext4 support missing from AOSP
- Accelerometer : Ok
- Compass : Ok
- Gyroscope : Ok
- AOSP sensors : Ok
- FM Radio : Ok
- Vibrator : Ok
- Microphone : Ok
- Audio & external audio : Ok
- Bluetooth audio : Ok
- NFC : Ok
- Kernel : Ok
- Graphics : Ok
- 3D Rendering : Ok
- Clock : Ok (RTC real hardware clock, in TWRP recovery too)
- Powered-off alarm : Ok
- Offline Charging : Ok
- Encryption : Status unknown
- SEPolicies : Fully enforced


IMPORTANT FEATURES TO KNOW
  • Boot sequence : Once the LEDs light up :
    - Press Volume - to open CyanogenRecovery,
    - Press Volume + to open the FOTA recovery (TWRP usually) if available
  • Powered-off alarm : When you have set an alarm
    - If you power down the device, it will wake automatically 5 minutes before
    - If you let the device charge offline, it will automatically reboot 5 minutes before
  • Gestures : Events like hand-wave and pocket removal can be enabled in the Settings
  • Force reboot : You can reset the device by holding Power and Volume+ 5 seconds
 

Attachments

  • 1.jpg
    1.jpg
    42.8 KB · Views: 10,805
  • 2.png
    2.png
    111.8 KB · Views: 10,697
  • 3.png
    3.png
    47.9 KB · Views: 10,204
  • 4.png
    4.png
    208.3 KB · Views: 10,142
  • 5.png
    5.png
    85.3 KB · Views: 10,370
Last edited:

AdrianDC

Recognized Developer
Dec 22, 2009
2,206
12,973
Île-de-France
adriandc.github.io
Reserved

Recent branches commits

Changes log
  • 31/12 : New release on Android 7.1.2_r36 sources (October CVE patches)
  • 02/08 : Updated device sources, Lights Effects minor fix
  • 14/07 : New release on Android 7.1.2_r24 sources (July CVE patches) & Initial Music Lights Effects release (About)
  • 01/07 : Updated kernel vulnerabilities patches, fixes and external storage for Camera2
  • 18/06 : New release on Android 7.1.2_r17 sources (June CVE patches / Pixel) & Jelly Browser updates
  • 12/05 : Updated kernel vulnerabilities patches, improved Jelly Browser app
  • 02/05 : New release on Android 7.1.2_r8 sources (May patches / Pixel) & Camera2 fixes
  • 26/04 : New release with updated and unified AOSP 7.1.2 / LineageOS device sources
  • 13/03 : New release on Android 7.1.1_r25 sources (March CVE patches / Pixel)
  • 07/02 : New release on Android 7.1.1_r20 sources (February CVE patches / Pixel)
  • 29/01 : Updated device sources, fixed AOSP Recovery build
  • 07/01 : New release on Android 7.1.1_r9 sources (January CVE patches)
  • 30/12 : Updated device sources, restored Double power to Camera option
  • 13/12 : New release on Android 7.1.1_r6 sources
  • 09/12 : Updated device sources, tethering kernel support added for AOSP 7.1.1
  • 07/12 : New release on Android 7.1.1_r4 sources (About)
  • 25/11 : Some Pixel colours and round icons, Downloads play/pause, minor fixes (About)
  • 16/11 : Google SetupWizard fixes, minor improvements, dexopt disabled (About)
  • 12/11 : Original RIL, USSD fixed, cleanups, Android 7.1.0_r7 (About)
  • 29/10 : Sources improvements and working camcorder (About)
  • 24/10 : Updated release for Huashan, Android 7.1.0_r4 (About)
  • 17/10 : Updated release for Huashan, Android 7.0.0_r14 (About)
  • 28/08 : Initial release for Huashan, Android 7.0.0_r1

Original AOSP 7.1 sources with following relevant additions
  • Huashan device tree, kernel and vendor
  • Bionic: Support for SHIMs (Camera)
  • Build: Backup tool full support (GApps)
  • NFC: Proper support & removed log spam
  • Toybox: Support for init_sony boot selection
  • AV: Camera support for Nougat
  • AV: Initial camcorder partial support
  • Camera2: Fixes for wrongly rotated photos and improvements
  • Screenshots: Fix MTP list updates
  • Settings: Remove Google system updates
  • UI: Add reboot option to power menu
  • UI: Various efficiency improvements and fixes
  • UI: Some Pixel designs like NavBar and colours
  • Downloads: Add the ability to Play/Pause
  • Telephony: Support for older RIL layers
  • Telephony: Provide default networks APNs from CM
  • Audio: 8960 adapted HAL and FM support
  • FM: Fully implemented with AOSP FM Radio
  • Music: Minor fix to permissions
  • Settings: Minor visual rendering improvements
  • Healthd: Support for Huashan offline charger
  • Core: Disabled flash_recovery service from AOSP
  • Sepolicies: Minimal changes and fully enforced ROM

Current local manifest
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://android.googlesource.com/platform/manifest -->
<manifest>

  <!-- See https://github.com/AdrianDC/aosp_development_sony8960 -->

</manifest>
 
Last edited:

Manuellama

Senior Member
Dec 24, 2014
204
364
Hello. I will try to help compiling and see if I can fix any bugs. I helped solving some minor bugs in the Motorola Xoom Lollipop and Marshmallow roms by Schischu.

By the way. This repository <project name="CyanogenMod/android_device_qcom_sepolicy" path="device/qcom/sepolicy" remote="github" revision="see-gerrit" /> should have revision staging/cm-14.0 instead of see-gerrit.

see-gerrit does not exist.


Great job by the way.
 

amdev0101

Senior Member
Aug 29, 2015
470
373
Samsung Galaxy S6 Edge
Sony Xperia Z5
Amazing, I believed you will bring up Nougat to XSP but I didnt think it will be that quick. BTW you wrote that you are using cm qcom/sepolicy. Am I the only one for who this is causing big troubles when porting to A device? Did you have to make any edits? I had to and there are still many neverallows caused by qcom/sepolicy :/
 
  • Like
Reactions: AdrianDC

AdrianDC

Recognized Developer
Dec 22, 2009
2,206
12,973
Île-de-France
adriandc.github.io
Amazing, I believed you will bring up Nougat to XSP but I didnt think it will be that quick. BTW you wrote that you are using cm qcom/sepolicy. Am I the only one for who this is causing big troubles when porting to A device? Did you have to make any edits? I had to and there are still many neverallows caused by qcom/sepolicy :/

During bringup, I had a few manual changes but no longer needed,
you can find 2 commits related to sepolicies on gerrit,
and one I haven't published that is just for execmod text relocations.

Do not waste time with neverallows on a bringup,
delete them every time you have a failure,
and once everything's stable, put it back all and fix.
 

amdev0101

Senior Member
Aug 29, 2015
470
373
Samsung Galaxy S6 Edge
Sony Xperia Z5
During bringup, I had a few manual changes but no longer needed,
you can find 2 commits related to sepolicies on gerrit,
and one I haven't published that is just for execmod text relocations.

Do not waste time with neverallows on a bringup,
delete them every time you have a failure,
and once everything's stable, put it back all and fix.

Okay, these neverallows were most annoying thing. I haven't seen any SEPolicy commits on cm gerrit but Ill definitely check it out now. Tho this is what I've done to fix SEPolicy (not counting neverallows). device_qcom_sepolicy and one commit here platform_system_sepolicy just if you want to know or maybe I did the same as you (lol). I will get on SEPolicy as soon as I can and thanks for the tip and quick reply! I love everything you do for THIS device. :)
 
  • Like
Reactions: AdrianDC

wuarx

Senior Member
Sep 5, 2012
180
69
Lviv
Fix Android version in OP. And broken camcorder means, that we ain't able to save photos/videos?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 110
    android_nougat-300x288.png

    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.
     */


    Downloads Links
    AOSP 7.x Nougat (Unlocked Bootloader) :
    Xperia SP (Huashan) - 7.1.2 : https://mega.nz/#F!LtNjDKBQ!YdZPyZghv07Tp2J8EgxcfQ

    Google Applications (optional) :
    OpenGapps : http://opengapps.org/ (Use packages for ARM, Android 7.x, Micro or Pico)
    Information : Flash the GApps before the first boot. If not, a clean flash is recommended.

    Recommended Recovery (optional) :
    TWRP 3.0 : http://xdaforums.com/xperia-sp/orig-development/recovery-twrp-3-0-0-touch-recovery-t3309938

    Informations and references :
    Kernel CVEs : Security patches status https://cve.lineageos.org/android_kernel_sony_msm8960t
    About AOSP : Repositories available on https://android.googlesource.com/


    Flashing and updating
    AOSP clean install :
    - (Optional) Flash the boot.img kernel from the ROM zip with Fastboot or Flashtool
    - (Optional) Wipe the data & cache (Backup to make sure not to lose data)
    - Flash the AOSP ROM zip from the Recovery
    - (Optional) Flash the GApps to have the Google Applications
    - (Optional) Every additional zip you want to flash
    - Reboot

    AOSP update / upgrade :
    - (Information) Don't wipe anything unless you want to
    - Flash the latest AOSP ROM zip from the Recovery
    - (Optional) Flash the GApps if you want to, otherwise preserved.
    - (Optional) Every additional zip you want to flash
    - Reboot


    About the builds


    Issues and reports
    - Report issues only if you use the ROM kernel
    - If an additional mod is installed, make sure it's unrelated, and mention it
    - Make sure the issue wasn't discussed earlier in the threads
    - Share a log of the error with CatLog for example


    Q&A - FAQ
    Q : Is root access included into AOSP ?
    A : No but you can now root with my Boot Bridge and a superuser tool.

    Q : Is the ROM suited for daily usage ?
    A : Yes completely. OpenGApps recommended.

    Q : I see errors during the installation, is it normal ?
    A : If it is E:unknown command [log] , ignore it for now

    Q : Where can I change the Quick Tiles and Status Bar ?
    A : Long press the Settings icon in the notifications drawer.
    > You will have access to the SystemUI Tuner from Marshmallow.

    Q : The AOSP Keyboard does not support swipe gestures ?
    A : Unfortunately the sources for swipe gestures are not available
    and Google still requires their prebuilt library to be there for AOSP Keyboard.
    Download the following libjni_latinimegoogle.so API 23 from OpenGApps
    and push it to /system/lib/libjni_latinimegoogle.so using root access,
    or use my one-time install zips : https://mega.nz/#F!ThEAkCRa!byhSwuoTbf6lnC1JxgKrig.​


    AOSP available for Huashan also thanks to :
    - Google AOSP
    - The LineageOS Team
    - CodeAurora Forums
    - The CyanogenMod Team​


    XDA:DevDB Information
    AOSP Nougat 7.1.2, ROM for the Sony Xperia SP

    Contributors
    Adrian DC
    Source Code: https://android.googlesource.com/

    ROM OS Version: 7.x Nougat
    ROM Kernel: Linux 3.4.x
    Based On: AOSP

    Version Information
    Status: Snapshot

    Created 2016-08-27
    Last Updated 2020-08-15
    72
    Reserved

    FEATURES AND ISSUES
    Code:
    - Boot : Ok
    - GApps : OpenGApps Micro Ok
    - Partitions (Data, Cache) : Ext4 supported
    - Dual Recovery : Ok (see below)
    - WiFi : Ok (real SONY MAC address)
    - Bluetooth : Ok (real SONY MAC address)
    - WiFi Hotspot : Ok (2.4GHz and 5GHz)
    - RIL - Phone - Data : Ok
    - GPS : Ok
    - Camera : Ok
    - Camcorder : Ok
    - Lights : Ok, regular AOSP lights support
    - MicroSD : Ok, only Ext4 support missing from AOSP
    - Accelerometer : Ok
    - Compass : Ok
    - Gyroscope : Ok
    - AOSP sensors : Ok
    - FM Radio : Ok
    - Vibrator : Ok
    - Microphone : Ok
    - Audio & external audio : Ok
    - Bluetooth audio : Ok
    - NFC : Ok
    - Kernel : Ok
    - Graphics : Ok
    - 3D Rendering : Ok
    - Clock : Ok (RTC real hardware clock, in TWRP recovery too)
    - Powered-off alarm : Ok
    - Offline Charging : Ok
    - Encryption : Status unknown
    - SEPolicies : Fully enforced


    IMPORTANT FEATURES TO KNOW
    • Boot sequence : Once the LEDs light up :
      - Press Volume - to open CyanogenRecovery,
      - Press Volume + to open the FOTA recovery (TWRP usually) if available
    • Powered-off alarm : When you have set an alarm
      - If you power down the device, it will wake automatically 5 minutes before
      - If you let the device charge offline, it will automatically reboot 5 minutes before
    • Gestures : Events like hand-wave and pocket removal can be enabled in the Settings
    • Force reboot : You can reset the device by holding Power and Volume+ 5 seconds
    63
    As quite a few already know since months by looking at my public projects on GitHub,
    I have been working on the yet-to-be named and -to-be-redesigned AOSP Master since March / April.

    Unlike what users expect, the Master development branch of Android AOSP is related to hardware and sources cleanups, while the features and UI changes are kept internal by Google until the official release we just had.

    Working since all these weeks on Master (and O Preview 1/2/3/4) was meant to prepare the field for almost everything Huashan 8960t would potentially need.

    For instance, O requires multiple changes to the kernel for what is called hwbinder and vndbinder support, used by the userspace for the hardware services and all Android O hidl changes (Google these if you are interested, some of the notions are accessible to even non-developer readers). All these changes either match our code or needed backporting to 3.4(.113) 8960 kernels. I kept all these public and they are now on Gerrit (Sony 8960t).

    Basically, between April and July, my AOSP Master was fully working on the Xperia SP and the Xperia T, with tests on the Xperia TX and V too.

    One of the biggest time waste of this project was a very strong visual glitch of the display composition, which ended up coming from the libhwui changes involving graphics EGL capabilities. This will affect probably most devices of this generations, most likely using Flo Adreno binaries from M.
    I invite interested devs to read my details in my EGL property commit in Huashan sources.

    To finish on Master, Bluetooth stopped working properly despite my initial temporary workaround to increase timeouts (the new AOSP Bluetooth HAL is massively different) and WiFi broke last month too, and I haven't taken / did not have time to fix it yet. Everything else was fine and used as daily.

    Another major and personal motivation was to start the sepolicies fully clean. Detached from QCOM ones this time, I've progressively rebuilt the sepolicy rules as strictly as possible, with specific labelling and in order to match common policies as much as possible, in order to be close to Google Marlin device sepolicies standards. The device was running enforced over the last month and only minor changes to the commits will maybe be done now.


    Now... You skipped the first part and came here.
    As others noticed by spying on my GitHub again, we started unifying our personal works on AOSP last week to prepare the next iteration of LineageOS. This helped us working very quickly on our basis upon release of O.
    Obviously nothing or barely nothing feature related is done yet, hardware support is the priority. Please do not request ETAs or features randomly on the forum or else, further information will be shared when there is actually information to be shared.


    Finally the last part you'll skip to because of the pictures.... I've been rebasing my AOSP Master changes to the Oreo release 8.0.0 (r3 for Pixel), and progressively fixed new code / hardware support changes done by the release.
    This night (4am...) was spent attempting to complete the boot on Huashan.
    Along an issue of 1 change I did for master sepolicies that broke the initialization (anticipation back-fired), the multiple new hardware HALs needed to be properly selected and compiled to match the requirements and complete the boot without display EGL crashes or audio failures.

    The Oreo UI therefore fully booted. More work will be needed to bring back all features inline with my Master builds and to fix remaining things to do.
    Please do not request for ETAs there too. It will be done once possible on evenings.

    attachment.php


    PS: As I have been asked a few times, I confirm my Music Lights Effects with the Xperia SP's lights bar
    (presented in https://xdaforums.com/showpost.php?p=73049970&postcount=399)
    will be working on 8.0.0 too, as it already was working on Master.

    Huashan remains undefeated and a challenging good no-so-old device.
    56
    Reserved

    Recent branches commits

    Changes log
    • 31/12 : New release on Android 7.1.2_r36 sources (October CVE patches)
    • 02/08 : Updated device sources, Lights Effects minor fix
    • 14/07 : New release on Android 7.1.2_r24 sources (July CVE patches) & Initial Music Lights Effects release (About)
    • 01/07 : Updated kernel vulnerabilities patches, fixes and external storage for Camera2
    • 18/06 : New release on Android 7.1.2_r17 sources (June CVE patches / Pixel) & Jelly Browser updates
    • 12/05 : Updated kernel vulnerabilities patches, improved Jelly Browser app
    • 02/05 : New release on Android 7.1.2_r8 sources (May patches / Pixel) & Camera2 fixes
    • 26/04 : New release with updated and unified AOSP 7.1.2 / LineageOS device sources
    • 13/03 : New release on Android 7.1.1_r25 sources (March CVE patches / Pixel)
    • 07/02 : New release on Android 7.1.1_r20 sources (February CVE patches / Pixel)
    • 29/01 : Updated device sources, fixed AOSP Recovery build
    • 07/01 : New release on Android 7.1.1_r9 sources (January CVE patches)
    • 30/12 : Updated device sources, restored Double power to Camera option
    • 13/12 : New release on Android 7.1.1_r6 sources
    • 09/12 : Updated device sources, tethering kernel support added for AOSP 7.1.1
    • 07/12 : New release on Android 7.1.1_r4 sources (About)
    • 25/11 : Some Pixel colours and round icons, Downloads play/pause, minor fixes (About)
    • 16/11 : Google SetupWizard fixes, minor improvements, dexopt disabled (About)
    • 12/11 : Original RIL, USSD fixed, cleanups, Android 7.1.0_r7 (About)
    • 29/10 : Sources improvements and working camcorder (About)
    • 24/10 : Updated release for Huashan, Android 7.1.0_r4 (About)
    • 17/10 : Updated release for Huashan, Android 7.0.0_r14 (About)
    • 28/08 : Initial release for Huashan, Android 7.0.0_r1

    Original AOSP 7.1 sources with following relevant additions
    • Huashan device tree, kernel and vendor
    • Bionic: Support for SHIMs (Camera)
    • Build: Backup tool full support (GApps)
    • NFC: Proper support & removed log spam
    • Toybox: Support for init_sony boot selection
    • AV: Camera support for Nougat
    • AV: Initial camcorder partial support
    • Camera2: Fixes for wrongly rotated photos and improvements
    • Screenshots: Fix MTP list updates
    • Settings: Remove Google system updates
    • UI: Add reboot option to power menu
    • UI: Various efficiency improvements and fixes
    • UI: Some Pixel designs like NavBar and colours
    • Downloads: Add the ability to Play/Pause
    • Telephony: Support for older RIL layers
    • Telephony: Provide default networks APNs from CM
    • Audio: 8960 adapted HAL and FM support
    • FM: Fully implemented with AOSP FM Radio
    • Music: Minor fix to permissions
    • Settings: Minor visual rendering improvements
    • Healthd: Support for Huashan offline charger
    • Core: Disabled flash_recovery service from AOSP
    • Sepolicies: Minimal changes and fully enforced ROM

    Current local manifest
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- https://android.googlesource.com/platform/manifest -->
    <manifest>
    
      <!-- See https://github.com/AdrianDC/aosp_development_sony8960 -->
    
    </manifest>
    49
    Huashan-Music-Lights-Effects.jpg

    Quite an important announcement today.

    Two years after my initial implementations of the Xperia SP (Huashan) LEDs hardware controllers
    (AS3665 and AS3677, unique to this device because of the LEDs bar), I present to you the project I have been wishing to complete since then.

    My open-source LibLights for Huashan's LEDs handles all normal lights (notifications and display backlight),
    and flashing lights (blink) with the advanced sequencer program from the AS3665.
    Unlike most devices, this sequencer is a programmable input for calculations,
    registers comparisons and outputs to each LED for current / brightness renderings.

    The final step that never worked up until now, knowing I had that sequencer written and detailed since 2 years,
    was the music lights effects done on the LEDs bar as Sony once did on Stock 4.3.
    As music lights effects are done through hardware and not software, meaning the audio directly controls
    the LED controller through a specific wire input, the music effects do not add performance lags or permanent update events.

    The missing part were the audio routes : connecting the real audio output to the AS3665 input.
    Two weeks ago I went back to Stock 4.3 and progressively got into it through newly built kernel, repacked original Stock image without signature,
    and step by step went into the audio routes to identify the required audio mixer configurations needed for my changes to work.

    Implemented for AOSP-based and LineageOS-based ROMs, my Music Lights Effects for Huashan are not bound to any ROM changes.
    That's the biggest point I worked on here when the technical side was ready, as I did not wish to add specific code to the framework related to only one device,
    and hence make it also fully compatible with my Android AOSP releases without porting our Lights improvements from LineageOS.

    Lights Effects are implemented in what we call DeviceSettings, just like done since more than a year for Ambient Display specific gestures.
    I provide an option to enable / disable the effects, a choice on the audio gain to adapt the AS3665 input to your wishes,
    an optional dependency on the device being awake (to allow the music effects even locked) and a final one to always use effects while awake.


    photo_2017-07-15_19-32-43_zpszqlqsglt.jpg~original
    photo_2017-07-15_19-32-57_zps0gobfz8g.jpg~original



    Preview and presentation video :



    There are four layers to my implementation :

    • LightsEffectsService (in DeviceSettings) listens media player events and triggers lights_effects through the "sys.lights_effects_value" property
    • init rules trigger lights_effects events on property "sys.lights_effects_gain" or sys.lights_effects_value" changes
    • Binary lights_effects is the new executable extension of my liblights and handles the audio configuration, audio routes and kernel music mode.
    • Kernel lights_effects is a new driver input that controls the AS3665, configures the music mode and properly blocks normal actions // keep them updated.

    All related sources changes are available under this topic : https://review.lineageos.org/#/q/topic:huashan_lights_effects


    Initial public release on AOSP July Release (including the new CVEs and updates) :

    photo_2017-07-15_19-32-51_zpseanbzqwf.jpg~original