Skip to content

Launcher: Clean Home personal build for TCL G10 on Android 14, with three TclAppBoot findings - #3210

Closed
dhungana-dinesh wants to merge 2 commits into
Gathin23:mainfrom
dhungana-dinesh:clean-home-personal
Closed

dhungana-dinesh wants to merge 2 commits into
Gathin23:mainfrom
dhungana-dinesh:clean-home-personal

Conversation

@dhungana-dinesh

Copy link
Copy Markdown
Contributor

What this is

A personal build of the launcher for a TCL Smart TV Pro (G10, product G10_4K_GB, Realtek rtd6748,
Android 14 / SDK 34, firmware UTT2.250416.001), published so the work is visible rather than to
change this project's defaults. Please treat it as a discussion piece first — I expect parts of it
belong in a fork or in SHOWCASE.md rather than here, per "Where a change goes".

What it does

  • App name reads Clean Home (all 30 locales updated; English is Clean Home).
  • addons/weatherline: a new add-on publishing one line through a content provider
    (content://io.github.sumyabazar1.weatherline/today). The launcher still has no INTERNET
    permission and does no polling of its own
    — it reads that provider, which is how it stays within
    the "no network in the launcher" rule.
  • The clock screensaver shows the weather with an emoji and tints its glow by condition and the real
    sunrise/sunset for the configured place: curated day/night colours, wide soft radius, a static
    vignette (res/drawable/dream_vignette.xml), clock stamped lower-left at 132sp.
  • The remote's Settings key opens the quick panel on any screen, with a same-press guard so the press
    that opened it does not close it, plus slide-in/out animations.
  • Smaller fixes: HomeSettingsActivity, the Bluetooth and Sound icons, styles for the panel.

On the TV

  • TCL Smart TV Pro, G10_4K_GB, Android 14, UTT2.250416.001. Home taken over with launcherx and
    setupwraith disabled; Home and the key helpers verified across several real reboots.
  • The screensaver and Home were both checked with tools/tv.py --screenshot (see the note on
    screenshots below).

Things I found that may be worth taking on their own

These cost me hours and are not specific to this personal build:

  1. TCL's TclAppBoot needs ASSOC_START, not only AUTO_START. docs/TROUBLESHOOTING.md says to
    allow APP_AUTO_START (appops set <package> APP_AUTO_START allow). On this firmware that name is
    rejected — cmd appops set ... APP_AUTO_START allow answers Unknown operation string. With
    AUTO_START allowed and ASSOC_START at ignore, the firmware refuses to start the helper's
    provider for the launcher, the query throws, and the weather line hides itself (by design, so a
    missing provider costs no layout). ASSOC_START appears nowhere in this repository. The fix that
    worked, and survived reboots: appops set <package> ASSOC_START allow; appops write-settings.
  2. am force-stop <launcher> clears enabled_accessibility_services (it reads null), so the key
    helpers stop serving the app buttons and the Settings key on screens where the launcher itself is not
    handling the key. That half-works on Home and looks like a partial regression.
  3. Once launcherx is enabled on this firmware, its App info has no Disable button — only Force stop
    and Uninstall updates. So the switch back is ADB-only. cmd role add-role-holder android.app.role.HOME
    and cmd package set-home-activity both leave Home on launcherx (the latter answers Success and
    changes nothing); only pm disable-user moves it. work/launcher-toggle.sh in my notes clears
    cmd package clear-package-preferred-activities for the same reason.

Happy to split any of those into a small docs PR without the rest.

Checklist, as this project asks

  • Tests (python3 -m unittest discover -s tests -v) — not green: 16 failures + 1 error, all from
    this branch, plus one that fails on main too (test_the_refusal_comes_before_the_host_is_looked_at).
    The new ones are the consequences of the add-on and the rename: weather_provider has no row in the
    Keys table, addons/weatherline has no addons/README.md row or screenshot, Hebrew resources lack
    quick_sound/quick_bluetooth, and the reserved-name and addon-isolation tests trip on "Clean Home"
    and the add-on's name in a config comment.
  • APK size gate — not met: 593,893 B against 589,824 B. Worth noting that main builds 587,437 B,
    so there is only 2,387 B of headroom for any launcher change at all.
  • Lint: lintRelease completes; no new errors.
  • One topic per PR — it is not; this is a personal build by design.
  • Tested on a real TV, model, Android version and firmware above.
  • Screenshots: not attached — the Home top bar shows an account avatar and the city, and I did not
    want to publish either. I can add cropped ones on request.
  • Defaults changed for every TV: cinematic_home, ambient_glow, app_glow, glow_snap and
    settings_key_panel are turned on in config.xml in this branch. That is a rule break as written,
    and I would revert those for a real PR.

Why I am opening it anyway

You asked for it to be visible rather than merged blind, and I would rather you see the whole thing than
describe it. My own recommendation is to take items 1–3 above as a small docs PR and send the rest to
SHOWCASE.md or leave it in my fork.
I will not be offended by that, and I am happy to do the splitting.

…lock

A personal build of the reference launcher for a TCL Smart TV Pro
(G10_4K_GB, Realtek rtd6748, Android 14 UTT2.250416.001), not intended
for upstream: it changes the look, adds a network-backed weather addon
and turns several defaults on.

- App name is Clean Home, translated in all 30 locales.
- The weather helper addon (addons/weatherline) publishes a reading
  through a content provider; the launcher keeps no INTERNET permission
  and only reads that provider.
- The clock screensaver gained the weather line with an emoji and a glow
  coloured by the condition and the real sunrise/sunset: curated
  day/night colours, a wide soft radius, a static vignette, and the
  clock stamped lower-left at 132sp.
- The settings panel is reachable from the remote's Settings key on any
  screen, with a same-press guard so it does not close on the press that
  opened it, and slide-in/out animations.
- TCL's boot guard needs ASSOC_START as well as AUTO_START allowed for
  the weather helper, or the provider query fails and the line hides.
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

maintainer-bot review · suggests your own fork, with a row in SHOWCASE.md (p2)

Thank you for this, the careful TCL G10 Android 14 investigation! The launcher here stays small on purpose (fixes, translations and small switches that are off by default), so a change this size lives best in your own fork. We'd love to feature it: add one row for your fork to SHOWCASE.md in a small PR, and people looking for exactly this can find it. (Where does my idea go?)

Checks

This is a suggestion; a maintainer makes the final call. A maintainer can comment /bot review to run it again.

Reviewed by maintainer-bot · runs on 0G Private Computer

…n Home

The 29 translated names were my own wording, not reviewed by a speaker, and they were also 252 B of
resources.arsc against a size gate with almost no headroom. The default string now reads Clean Home and
the locales fall back to it; a translation can land per-locale later, through the usual workflow.
@Gathin23

Gathin23 commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Thank you @dhungana-dinesh, the TclAppBoot digging on the G10 is excellent. A renamed personal build plus a network add-on lives best in your fork, so please add one SHOWCASE.md row for it in a small PR. Your ASSOC_START finding is going in this round through #3212, and the note that force-stop clears the key helpers would be welcome as its own small docs/TROUBLESHOOTING.md PR.

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

Labels

bot-suggests:showcase launcher Changes under launcher/: the Android TV home screen app p2

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants