[LeEco Le Pro3 ROMs, Kernels, Recoveries, & Other D] androcheck:
Okay, if anybody else wants to try to debug the serial communication with the infrared blaster chip, I attached the Xposed module I've written for this purpose.

I've used it on my LEX720 running 5.8.018S. If you are running a newer EUI version it might work or not (depends if they have recompiled the "com.uei.quicksetsdk.letv" package in "/system/app/UEIQuicksetSDKLeTV/UEIQuicksetSDKLeTV.apk" as it is obfuscated and on recompile the hooked mehod names might change).

If it's working this Xposed module does two things:

enable all logging in the QuickSetSDK

log the actual data which is sent or received over the serial device /dev/ttyHSL1

All output is written to the Xposed logfile:

/data/data/de.robv.android.xposed.installer/log/error.log (can also be viewed in the Xposed app).

If you connect to the phone via adb, open a shell session and then follow the logfile for changes via "tail" you can see in realtime what's happening while using the remote app.

adb shell
su
tail -F /data/data/de.robv.android.xposed.installer/log/error.log | grep "DEBUG_INFRARED"
# or if you only want to see the serial data which is sent and received to the IR blaster chip:
tail -F /data/data/de.robv.android.xposed.installer/log/error.log | grep "SERIAL_"

The output should look something like this:

11-30 11:52:35.450 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 00
11-30 11:52:35.461 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 4041424300080100080304000000
11-30 11:52:36.226 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 00
11-30 11:52:36.289 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_READ <<< 000100
11-30 11:52:37.708 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 00
11-30 11:52:37.718 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 4041424300080100080304000000
11-30 11:52:39.409 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_WRITE >>> 00
11-30 11:52:39.419 I/Xposed ( 9018): DEBUG_INFRARED: SERIAL_READ <<< 000100

Overall, it looks like the QuickSet SDK just sends "high-level" commands to the IR blaster chip (like: "start now blasting the PLAY key for samsung-remote", then blaster emits IR until a new command is sent "stop blasting now").

It seems that also learning new codes is done this way, so that the SDK just sends commands like "start learning now for key CUSTOM KEY1 on remote CUSTOM REMOTE". Then the blaster is listening for infrared and returns a status if it is finished. Later then the Remote App simply requests "now start blasting the learned custom key1 on custom remote", but it seems like it does not actually send the IR pattern which should be emitted.

In the normal Android Infrared API the App says: "now emit this pattern: 000 111 000 ..." and gives a concrete pattern. Which means the app is responsible for holding all the IR patterns for the remote keys. The QuickSet SDK seems to go the opposite way: The remote app doesn't know anything about low-level IR patterns, it just tells the (intelligent) IR chip, "please emit now the Home button of samsung remote" and all the low-level stuff is done by the controller chip in the IR blaster.

So it might be difficult or impossible to get the IR blaster working with apps that use the default Android Infrared API.

Btw, this QuickSetSDK for infrared is used by other phones too (some LG and others). Just search on XDA for QuickSetSDK. When searching other device forums for this (and to see if they got Infrared working on Cyanogen or AOSP) most of them got Infrared working on custom ROMs by simply porting the original remote app to the custom ROM (and not by implementing the standard Android Infrared API).

I am not sure if the QuickSetSDK would support sending of raw IR patterns. If this is possible, then there is a slight chance to get standard Infrared API working, if not we can just use the original remote app (or maybe other remote apps which use the QuickSetSDK, so maybe we can port other Infrared apps , like from LG or so).

That's all for now.. No idea, if or when I will continue on this.