Android TV Default Launcher on Chromecast with Google TV?

Search This thread

fiestaham

New member
Jun 7, 2014
4
1
I got rid of the stock launcher and is using Wolf Launcher as described by TechdoctorUK

Use Custom Launcher on Chromecast With Google TV
For some reason Wolf Launcher causes my whole Chromecast to crash, after a few button presses it says "Resetting to factory settings" and reboots to recovery. It doesn't actually do a factory reset, but I have to climb behind the TV to reboot it.


I was able to install LeanbackLauncher for Fire Tv, which seems similar to what others were suggesting. It looks like someone took the source of Leanback and got it working on Fire devices as a new package. On my device it loads, then but it kind of freezes itself after I go to an app and back.
 

Intenti0n

Senior Member
Nov 24, 2013
69
30
I used appcloner to "clone" "Android TV Home". If i install that, disable the stock launcher, press home - I can select the cloned "Android TV Home" and the launcher starts !

Screenshot -
The cloned apk has the package name com.google.androidtvlaunches (notice the s at the end).

The launcher works, i.e I can launch apps. However, I can't add/see any extra channels (playing next etc)

I'm guessing as the cloned apk has a different package name and probably doesn't have access to the recommendations service?

I have uploaded the cloned apk here - http://bit.ly/2Z6cMSL
 
  • Like
Reactions: rodken

sahajs

Member
Aug 12, 2010
20
0
I used appcloner to "clone" "Android TV Home". If i install that, disable the stock launcher, press home - I can select the cloned "Android TV Home" and the launcher starts !

Screenshot -
The cloned apk has the package name com.google.androidtvlaunches (notice the s at the end).

The launcher works, i.e I can launch apps. However, I can't add/see any extra channels (playing next etc)

I'm guessing as the cloned apk has a different package name and probably doesn't have access to the recommendations service?

I have uploaded the cloned apk here - http://bit.ly/2Z6cMSL
How do you get rid of that message, cloned by app cloner that pops up at the bottom?
 

Sant Jacobin

Member
Jun 3, 2021
5
0
I tried the same steps as @Intenti0n described - installing com.google.android.tvlauncher and com.google.android.tvrecommendations and disabling the default launcher. I also get a black screen.

When looking at logcat output you can see that the TV Launcher is starting but it crashes immediately, because it does not have the right permissions:

Code:
12-14 18:22:33.832  3527  3555 I ActivityManager: Start proc 19573:com.google.android.tvlauncher/u0a21 for activity {com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity}
12-14 18:22:34.129 19573 19661 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
12-14 18:22:34.129 19573 19661 E AndroidRuntime: Process: com.google.android.tvlauncher, PID: 19573
12-14 18:22:34.129 19573 19661 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing ContentResolver query
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at drg.run(PG:4)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:919)
12-14 18:22:34.129 19573 19661 E AndroidRuntime: Caused by: java.lang.SecurityException: Selection not allowed for content://android.media.tv/watch_next_program
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.os.Parcel.createException(Parcel.java:2071)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:2039)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentProviderProxy.query(ContentProviderNative.java:423)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:944)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:880)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:836)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at drg.run(PG:2)
12-14 18:22:34.129 19573 19661 E AndroidRuntime:        ... 3 more
12-14 18:22:34.150 19603 19603 D AndroidRuntime: Shutting down VM
12-14 18:22:34.151 19603 19603 E AndroidRuntime: FATAL EXCEPTION: main

12-14 18:22:33.923  3527  3555 I ActivityManager: Start proc 19603:com.google.android.tvrecommendations/u0a40 for broadcast {com.google.android.tvrecommendations/com.google.android.tvrecommendations.account.TvLauncherAccountReceiver}
12-14 18:22:34.151 19603 19603 E AndroidRuntime: java.lang.RuntimeException: Unable to create application com.google.android.tvrecommendations.application.TvRecommendationsApplication: java.lang.SecurityException: Missing permission to control media.
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6465)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7356)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
12-14 18:22:34.151 19603 19603 E AndroidRuntime: Caused by: java.lang.SecurityException: Missing permission to control media.
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.createException(Parcel.java:2071)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:2039)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:1987)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.ISessionManager$Stub$Proxy.addSessionsListener(ISessionManager.java:816)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:315)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:278)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:257)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.google.android.tvrecommendations.application.TvRecommendationsApplication.onCreate(PG:75)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1189)
12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6460)

It seems to me that those two apps will only work if they are included as system apps (and thus have system level permissions).

I also tried using adb to grant the permissions manually, but this did not work:
Code:
1|sabrina:/ $ pm grant com.google.android.tvrecommendations android.permission.MEDIA_CONTENT_CONTROL
Security exception: Permission android.permission.MEDIA_CONTENT_CONTROL requested by com.google.android.tvrecommendations is not a changeable permission type
Same with my tatasky binge plus in india
 

sureshra

Member
Apr 8, 2021
12
1
Sorry if this has already been posted but I don't see a thread or anything about it yet.

Has anyone figured out how to get the normal Android TV launcher to work on the new Chromecast with GoogleTV? I like the device for our bedroom but I really dislike the interface how it shoves everything in front of you. I just want a plain simple interface like my ShieldTVs have if at all possible.

I've tried some ADB commands on other sites but no luck.

Just wondering if there's an actual way to make this happen or not.

Thank you.
even i was searching for that
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Anybody want to try a quick and easy experiment? (note that I haven't had the opportunity to try this yet)

    Run under ADB:
    $ setprop persist.debug.user.package_whitelist_mode 0

    Then reboot.
    See if the much preferred android tv launcher decides to work.

    Here's the reference for it;
    1
    Damn. Thanks for trying it. Apparently you need to have greater privileges for that to work. If there were some way to achieve elevated privileges, even temporarily, or otherwise access the USERDATA filesystem, the property could be set and would remain set (since its a "persist" property).

    If anybody's got any idea to get a temporary root or boot the thing on external media...?
    1
    Really interested in this -- if anybody has any other idea... :)
    1
    I tried the same steps as @Intenti0n described - installing com.google.android.tvlauncher and com.google.android.tvrecommendations and disabling the default launcher. I also get a black screen.

    When looking at logcat output you can see that the TV Launcher is starting but it crashes immediately, because it does not have the right permissions:

    Code:
    12-14 18:22:33.832  3527  3555 I ActivityManager: Start proc 19573:com.google.android.tvlauncher/u0a21 for activity {com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity}
    12-14 18:22:34.129 19573 19661 E AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
    12-14 18:22:34.129 19573 19661 E AndroidRuntime: Process: com.google.android.tvlauncher, PID: 19573
    12-14 18:22:34.129 19573 19661 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing ContentResolver query
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at drg.run(PG:4)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:919)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime: Caused by: java.lang.SecurityException: Selection not allowed for content://android.media.tv/watch_next_program
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.os.Parcel.createException(Parcel.java:2071)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:2039)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentProviderProxy.query(ContentProviderNative.java:423)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:944)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:880)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at android.content.ContentResolver.query(ContentResolver.java:836)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        at drg.run(PG:2)
    12-14 18:22:34.129 19573 19661 E AndroidRuntime:        ... 3 more
    12-14 18:22:34.150 19603 19603 D AndroidRuntime: Shutting down VM
    12-14 18:22:34.151 19603 19603 E AndroidRuntime: FATAL EXCEPTION: main
    
    12-14 18:22:33.923  3527  3555 I ActivityManager: Start proc 19603:com.google.android.tvrecommendations/u0a40 for broadcast {com.google.android.tvrecommendations/com.google.android.tvrecommendations.account.TvLauncherAccountReceiver}
    12-14 18:22:34.151 19603 19603 E AndroidRuntime: java.lang.RuntimeException: Unable to create application com.google.android.tvrecommendations.application.TvRecommendationsApplication: java.lang.SecurityException: Missing permission to control media.
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6465)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.access$1300(ActivityThread.java:219)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:107)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7356)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime: Caused by: java.lang.SecurityException: Missing permission to control media.
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.createException(Parcel.java:2071)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:2039)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.os.Parcel.readException(Parcel.java:1987)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.ISessionManager$Stub$Proxy.addSessionsListener(ISessionManager.java:816)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:315)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:278)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.media.session.MediaSessionManager.addOnActiveSessionsChangedListener(MediaSessionManager.java:257)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at com.google.android.tvrecommendations.application.TvRecommendationsApplication.onCreate(PG:75)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1189)
    12-14 18:22:34.151 19603 19603 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6460)

    It seems to me that those two apps will only work if they are included as system apps (and thus have system level permissions).

    I also tried using adb to grant the permissions manually, but this did not work:
    Code:
    1|sabrina:/ $ pm grant com.google.android.tvrecommendations android.permission.MEDIA_CONTENT_CONTROL
    Security exception: Permission android.permission.MEDIA_CONTENT_CONTROL requested by com.google.android.tvrecommendations is not a changeable permission type
    1
    com.google.android.tvlauncher would need the com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA permission to read the Channel data from the com.android.providers.tv provider.

    To quote the docs:
    • Only signatureOrSystem apps can acquire ACCESS_ALL_EPG_DATA permission to access the entire database.
    • signatureOrSystem = A permission that the system grants only to applications that are in a dedicated folder on the Android system image or that are signed with the same certificate as the application that declared the permission.

    As com.google.android.tvlauncher and com.android.providers.tv are signed by two different Google certificates (Serial number 8e02e4498c0a21a8d995f16a28dadd6d53879a27 and fe270bc94d9c0c984c7e3a2f825b6a80055da82c respectively) the TV launcher would only work it it was located in /system/priv-app/ which is not possible without root.