4.8 KiB
Mtek MK32CS1NB 32" (CVTE TP.MT5510I.PB801, MT5863)
Android 7.0 (SDK 24), firmware 20171230_042214, 1 GB of RAM and 8 GB of flash, stock launcher
com.cvte.tv.launcher. The board is CVTE's TP.MT5510I.PB801 on a MediaTek MT5863.
This is one session on one set: the launcher ran there from a local build, and no debloat list was
kept. The repo's launcher stays at Android 8.0 - minSdk 26 in launcher/app/build.gradle - so an
Android 7 set answers INSTALL_FAILED_OLDER_SDK, and PROMPT.md says to offer the debloat half and
say the launcher cannot be installed. What follows is the fork the owner built instead, kept here
because it is the part another owner of this board would have to redo.
ADB, with no Developer options
This firmware has no Developer options screen. ADB is in CVTE's factory menu, the route
examples/super-general-cvte-t972 records for the
same MT5863 board: with a source in front (TV or HDMI, not the launcher), press MENU and then 1 1 4 7
on the remote, and set DEBUG > ADB ENABLE.
The "Allow USB debugging?" prompt only appeared after unplugging the set from the wall and powering it on again; standby was not enough.
AGENTS.md's rule applies as it does everywhere else: the factory menu is opened with the remote to get
ADB and turned off the same way when the session ends, and no test package in it is started, from the
shell or by hand. Close the session as usual, then tools/adb-closed.py <tv ip> must report the port
closed.
The USB port is adb's while debugging is on
With ADB ENABLE on from that menu, sys.usb.config and sys.usb.state stay on adb, so the port
serves debugging only: a Logitech K400 Plus receiver was never listed (/proc/bus/input/devices showed
the remote and one internal device, dumpsys usb only the MediaTek Wi-Fi module) and the same receiver
works on a computer. Switching DEBUG > ADB ENABLE off, then unplugging the set from the wall before
powering it on, brings the keyboard back. Do the whole session with ADB on and plug peripherals in
afterwards.
A local build for Android 7
minSdk 24 alone installs and then crashes on start with NoClassDefFoundError: java.time.LocalDate:
the launcher reads java.time in MainActivity.java, Sun.java, Festival.java, SkyView.java and
ClockScene.java. Two changes made the fork run on this set:
- core library desugaring -
coreLibraryDesugaringEnabled trueincompileOptionsand acoreLibraryDesugaringdependency oncom.android.tools:desugar_jdk_libs; - the four API-26+ calls
lintReleasereports, each replaced:
| in | call | replaced with |
|---|---|---|
MainActivity.java |
PackageManager.getChangedPackages |
compare the installed package count |
UiFont.java |
Resources.getFont |
ResourcesCompat.getFont |
WallpaperCaptions.java |
Files.readAllLines(file.toPath()) |
a plain BufferedReader |
WallpaperPlayer.java |
Bitmap.Config.HARDWARE |
the same bitmap without it, HARDWARE being Android 8 and up |
lintRelease then reports no NewApi errors on the fork. Home, the dock, the tile menu, the app
library, and the Settings and network buttons work, a reboot comes back to the launcher, and it takes
about 28 MB of heap.
Home, and the CVTE rule
The stock launcher is com.cvte.tv.launcher. On a com.cvte.* board AGENTS.md keeps that launcher
enabled: the new one is made Home, the set is rebooted once, and Home and ADB are confirmed before
anything else. The session ended with Home on the new launcher and the stock one still installed, and
the report does not record which command moved it, so treat that step as unverified here and check it
on the set with dumpsys activity activities | grep mFocusedApp.
HDMI inputs need CVTE's own activity and extra
The CVTE TV app ignores the standard passthrough ACTION_VIEW on a channel URI, so the Inputs menu
lists ports whose rows do nothing. It switches when the intent names
com.cvte.tv.androidsetting/.TvSettingActivity and carries the input's id as the int extra
MTK_EXTRA_INPUT_ID.
The launcher's own vendor route - input_sources in themes/README.md -
sends the configured input_action with the source number as an int extra named input
(MainActivity.openInput), which is not what this app answers, so that route needs the fork's change
on this set. With it, the Inputs menu lists HDMI 1 to 3 as HW4 to HW6, and all three switch with a
device plugged in.
Limits
- The remote's SOURCE key belongs to CVTE's key service and works only while its own TV screen is in front, so it does nothing from the launcher's home.
- AV, YPbPr and VGA are not in the Inputs menu. The Live TV row opens the TV screen, whose SOURCE key lists them.
Recorded from #1664.