Last year, we found out that Amlogic was working on Linux 4.4, possibly for their Android 7.0 Nougat SDK. As a developer who signed all relevant NDAs, Stane1983 has now been working on Amlogic Android 7.0 for a few day, and reported some of his findings.
First Amlogic source code is based on Android 7.1.1 R6 (NMF26Q), but still with Linux 3.14.29, possibly because Mali-T830 GPU drivers are still r11p0, and Linux 4.4 may come later. One good thing is that the Nougat SDK supports 64-bit Android OS instead of the 32-bit Android we are all currently using in our TV boxes. A not-so-good news is that internal storage partitions have changed, which means most current TV boxes are unlikely to get an update, becau it may not be possible to perform OTA updated, and instead would require an updated via Amlogic USB burning tool.
But let’s look at the user interface and settings. The default launcher has not changed, but if you click on the Settings icon, the Settings will appear on the right of the screen. Note that this only work with the default launcher, other launchers will not be able to open Settings that way, at least in the current version of the SDK, and there are some inconsistency in the way settings are displayed with some shown “Android Marshmallow style”. Hopefully those issues will be addressed before reaching end-users.
Another new mysterious new feature is “Upgrade bluetoothremote”, which asks you to select a Bluetooth device, but it’s unclear whether it is for smartphones, or Bluetooth remote control will start selling with TV boxes.
The default browser is Browser2, basically WebView component tester. Not exactly ideal, but Nougat does not come with a browser by default, so you’ll need to install your preferred one, or maybe the manufacturers will add it themselves to their firmware.
Media playback still have some issues, but Stane did not test into details saying to “wait for CNX to get one of boxes with Nougat installed”. I guess that must be me, and I have some work to do once it is released :).
Developers will also need to be aware the way to handle remote control codes has changed. The /system/etc/remote.conf is gone, and instead Amlogic defines the codes in a specific DTSI (Device tree) file for remote code that includes definition for 3 remotes and starts with:
compatible = "amlogic, aml_remote";
dev_name = "meson-remote";
reg = <0x0 0xc8100580 0x00 0x11>;
status = "ok";
protocol = <REMOTE_TYPE_NEC>;
interrupts = <0 196 1>;
pinctrl-names = "default";
pinctrl-0 = <&remote_pins>;
map = <&custom_maps>;
release_delay = <80>;
max_frame_time = <200>; /*set software decoder max frame time*/
mapnum = <3>;
map0 = <&map_0>;
map1 = <&map_1>;
map2 = <&map_2>;
mapname = "amlogic-remote-1";
customcode = <0xfb04>;
size = <44>; /*keymap size*/
keymap = <REMOTE_KEY(0x47, KEY_0)
It looks to be the standard way IR remote controls are handled in mainline Linux kernel, at least the top section, but it may not be so common to declare maps within a DTSI file…
Finally, Stane could also update Amlogic SDK to Android-7.1.1_r26 (NOF27C) instead of r6 (NMF26Q), so developers can always make sure the latest minor version and security patchsets are included. Based on his feedback, it may still take a few weeks or months before we see Amlogic S9xx devices sold with Android 7.0.