[Google Chromecast] lfrst05:
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:

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:

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