This is a cache of https://discuss.96boards.org/t/compile-android-tv-for-dragonboard-410c-how-to-start/5545. It is a snapshot of the page at 2024-11-01T09:14:26.019+0000.
Compile Android TV for Dragonboard 410c - How to start? - DragonBoard410c - 96Boards Forum

Compile Android TV for Dragonboard 410c - How to start?

Hi all,

I’m a newbie on 410c. I’m searching for tutorials or at least a point to start how to build Android TV by my own for Dragonboard 410c.
If you know any links, please help to let me know.

Thank you so much,
Nhat

1 Like

Have you looked at this? Android TV - DragonBoard 410c - 96Boards

Yes, but it is not a fully instruction.
For example: “Download the latest Source Code for DragonBoard 410c” → it means to download latest source code of Android TV for 410c. But it doesn’t link to anywhere.

So I guessed this is a closed project. They just want to announce their result.

No, that does NOT mean “download latest source code of Android TV for 410c”. It means exactly what it says, “Download the latest Source Code for DragonBoard 410c”.

Android TV is just a CONFIGURATION PARAMETER for AOSP!

You have two choices there; Qualcomm Code Aurora (aka “CAF”) which is Android 5.1, or you can use AOSP+Linaro which is Android 9.

Then it says to do this;

Add the below two lines in the device/qcom/msm8916_64.mk file
PRODUCT_CHARACTERISTICS := tv
$(call inherit-product, device/google/atv/products/atv_base.mk)

Build your Android DragonBoard 410c source code on Linux Platform

https://www.96boards.org/documentation/consumer/dragonboard/dragonboard410c/guides/aosp.md.html

In the case of building the AOSP+Linaro version, you’ll obviously have to adjust the path of the file you alter, but that’s all there is to it.

1 Like

Thank you.

Here is what I’ve done:

  1. Setup build environment on ubuntu 16.04 (Building Android  |  Android Open Source Project)
  2. Download “linux_android_board_support_package_vla.br.1.2.7-01010-8x16.0-4” from https://developer.qualcomm.com/hardware/dragonboard-410c/software
  3. Follow instruction and the build for Android was successfully.
  4. Modify msm8916_64.mk file as above, and rebuild again. The build was successfully.
    lunch msm8916_64-userdebug
    make j8
  5. Set the mode to “0000”, Using fastboot to flash output files to 410c board:
    fastboot flash aboot emmc_appsboot.mbn
    fastboot flash boot boot.img
    fastboot flash persist persist.img
    fastboot flash system system.img
    fastboot flash userdata userdata.img
    fastboot flash recovery recovery.img

The above progress was successfully.

  1. Unplug USB cable, reboot the board.
    Result: The board cannot boot up, it shows black screen forever.

Notes: I didn’t build apps and dependencies, I want to make sure the Android TV OS can be boot up successfully first.

Please help to review if I’ve done anything incorrectly.

Well, probably the first thing you should do is to just confirm that you can build and boot a NORMAL build. No modifications. Once that is confirmed to work, then start making changes to it. This gives you a baseline so that you know what works, and what changes cause it to stop working. If and when you get to a point where it stops working, then find out why (adb, if it boots far enough to start adbd, otherwise serial console).

And if it were me, I’d be going with the AOSP+Linaro approach, rather than the “heaps of blobs” qualcomm approach. For one, you get a much newer version of Android, and even better, no unreliable blobs.

And could you clarify what you mean by “apps and dependencies”?

Thank you so much.
Following you instruction, I’ve done building AOSP+Linaro (Android Q), and it can be flashed and booted successfully.

Now I’m checking to config it to Android TV. It is much difficult because the file structure is so different comparing to the version from Qualcomm.
It would be helpful to me if you could help me some hint to do config.

Perhaps you should subscribe to a similar thread for hikey960. The steps should be pretty much the same between hikey960 and the AOSP builds for DB410C. I think @ric96 will post some ideas there when he has finished polishing: