Skip to content

Instantly share code, notes, and snippets.

@det-peralta
Created January 20, 2020 19:14
Show Gist options
  • Save det-peralta/eab8c1ffbc0263c9dcd9359ccbdedd45 to your computer and use it in GitHub Desktop.
Save det-peralta/eab8c1ffbc0263c9dcd9359ccbdedd45 to your computer and use it in GitHub Desktop.
TCL TV - android adb command - Home Assistant
entity_id: media_player.tcl_tv
command: "am start -n com.tcl.tv/.TVActivity"
@sashoism
Copy link

Good afternoon, how can I change the backlight brightness on TCL TV? com.tcl.settings.viewmodel.picture.BacklightSeekbarLayoutVM how to call this method?

adb shell service call tcl_tv_display 100 i32 0 i32 <0-100> i32 0

@OM-3kChcBjgFR2COfP
Copy link

unfortunately no...maybe I can somehow use com.tcl.settings.model.PictureBaseManager and pass parameters there?

image
image

@sashoism
Copy link

@OM-3kChcBjgFR2COfP maybe we're running different implementations. For me, get/setBacklight had transaction ids 101 and 100 were in system_ext/framework/com.tcl.tv.display.jar

Maybe you can call this from your app, I don't know.

@Override // com.tcl.tv.display.ITvDisplayManagerService
public boolean setBacklight(int type, int value, int act) throws RemoteException {
    Parcel _data = Parcel.obtain();
    Parcel _reply = Parcel.obtain();
    try {
        _data.writeInterfaceToken(DESCRIPTOR);
        _data.writeInt(type);
        _data.writeInt(value);
        _data.writeInt(act);
        boolean _status = this.mRemote.transact(Stub.TRANSACTION_setBacklight, _data, _reply, 0);
        if (!_status && Stub.getDefaultImpl() != null) {
            return Stub.getDefaultImpl().setBacklight(type, value, act);
        }
        _reply.readException();
        boolean _status2 = _reply.readInt() != 0;
        return _status2;
    } finally {
        _reply.recycle();
        _data.recycle();
    }
}

@Thiago4532
Copy link

Has anyone found a solution for brightness? When I try to call service tcl_tv_display it says the service doesn't exist, although they seem to exist if I run a service list

@Thiago4532
Copy link

service : type=1400 audit(0.0:72): avc: denied { call } for scontext=u:r:shell:s0 tcontext=u:r:tcl_display_service:s0 tclass=binder permissive=0

It seems SELinux is preventing me from interacting with this service :(
If anyone knows another way to change the brightness, I'd greatly appreciate it.

@sharanmp
Copy link

sharanmp commented Feb 8, 2025

Did you find a solution yet?
I found that com.tcl.settings.model.PictureBaseManager has a method setGraphicBacklight. But could not figure out how to call it.

@guillaume-elambert
Copy link

Hello, I found a way to set the brightness:

adb shell am startservice -n com.tcl.settings/.ShowWindowService \
  -a com.tcl.settings.SHOW_WINDOW \
  --es Type Settings \
  --es ITEM brightness \
  --es MOTION SET \
  --es MOTION_VALUE <0-100>
  
adb shell input keyevent 4

It launches the settings application but only displays the brightness slider.
The problem is that, as this is UI based, it's not possible to do this silently and get the current value.

My TV :
Model name: Smart TV Pro
Model number: 43C645

If it doesn't work for you, here are some files I used for reverse engineering that may help:

/product/framework/com.tcl.tvmanager.jar

/product/app/SystemSettings/SystemSettings.apk
├── resources/AndroidManifest.xml -> Look for services and exported stuff
└── sources/com/tcl/settings/ShowWindowService.java -> My main source of information

@tungmeister
Copy link

adb shell service call tcl_tv_display 100 i32 0 i32 <0-100> i32 0

@sashoism this works perfectly for me but how would I get the current brightness value?

@sashoism
Copy link

sashoism commented Jun 3, 2025

adb shell service call tcl_tv_display 100 i32 0 i32 <0-100> i32 0

@sashoism this works perfectly for me but how would I get the current brightness value?

% adb shell service call tcl_tv_display 101
Result: Parcel(00000000 00000032   '....2...')

32 is 50% in hexadecimal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment