brillo には どんなファイルで動いているのか? (source codeから分析)

[前回](http://qiita.com/hidenorly/items/6ce9d27ad8c799b443f9) は、reference boardが何かでしたが、今回は、その中で動いているときのファイルがどんなものなのかに迫ります。

# device/generic/brillo/brillo_base.mk

＃以下は開発中のものなので今後どんどん変わると思われますが、Androidに比べればだいぶsimpleです。ですが、debug/exampleものなども多く見受けられます。

```brillo_base.mk
PRODUCT_COPY_FILES += \
  device/generic/brillo/brillo.rc:system/etc/init/brillo.rc \
  device/generic/brillo/sensorservice.rc:system/etc/init/sensorservice.rc \
  device/generic/brillo/init.firewall-setup.sh:system/etc/init.firewall-setup.sh \
  device/generic/brillo/init.wifi-setup.sh:system/etc/init.wifi-setup.sh \

PRODUCT_PACKAGES = \
  adbd \
  bootctl \
  firewalld \
  init \
  init.environ.rc \
  init.rc \
  ip \
  ip6tables \
  iptables \
  keymaster \
  keystore \
  libminijail \
  linker \
  logcat \
  logd \
  nativepowerman \
  power_example \
  reboot \
  rootdev \
  servicemanager \
  softkeymaster \
  sh \
  toolbox \
  toybox \
  update_engine \
  update_engine_client \
  weaved \
  webservd \

PRODUCT_PACKAGES += \
  libstdc++ \

PRODUCT_PACKAGES += \
  dbus-daemon \
  dbus-example-client \
  dbus-example-daemon \
  dbus-monitor \
  dbus-send \

PRODUCT_PACKAGES += \
  brillo_audio_test \
PRODUCT_PACKAGES += \
  audio_hal_playback_test \
  audio_hal_record_test \
PRODUCT_PACKAGES += \
  slesTest_playFdPath \
  slesTest_recBuffQueue \
  slesTest_sawtoothBufferQueue \
PRODUCT_PACKAGES += \
  libaudioroute \
  libtinyalsa \
  libtinycompress \
  local_time.default \
  mediaserver \
PRODUCT_PACKAGES += \
  libmedia \
  libstagefright \
  libOpenSLES \
  libOpenMAXAL \
PRODUCT_PACKAGES += \
  libstagefright_soft_aacdec \
  libstagefright_soft_aacenc \
  libstagefright_soft_amrdec \
  libstagefright_soft_amrnbenc \
  libstagefright_soft_amrwbenc \
  libstagefright_soft_flacenc \
  libstagefright_soft_g711dec \
  libstagefright_soft_gsmdec \
  libstagefright_soft_mp3dec \
  libstagefright_soft_opusdec \
  libstagefright_soft_rawdec \
  libstagefright_soft_vorbisdec \
PRODUCT_PACKAGES += \
  libsensor \
  sensorservice \
  sensors-hal-example-app \
  sensors-ndk-example-app \
PRODUCT_PACKAGES += \
  cacerts \
  dhcpcd \
  dhcpcd-6.8.2 \
  dnsmasq \
  hostapd \
  shill \
  wifi_init \
  wpa_supplicant \

PRODUCT_PACKAGES += \
  libmetrics \
  metrics_client \
  metrics_daemon \

PRODUCT_PACKAGES += \
  crash_reporter \

PRODUCT_PACKAGES += \
  avahi-browse \
  avahi-client \
  avahi-daemon \
  libdaemon \

PRODUCT_PACKAGES += \
  tlsdate \
  tlsdate-helper \
  tlsdated \

# Wireless debugging.
PRODUCT_PACKAGES += \
  iw \
  libnl \
  ping \
  wpa_cli \

# Bluetooth.
PRODUCT_PACKAGES += \
  bluetoothtbd \
  bluetooth-cli \
```

意外と車輪の再発明が目立ちます (crash_reporterとか)
あと、多くのdebug/exampleが見受けられ、まだまだ開発途中のようです。

おもしろいのは

```brillo_base.mk
# Brillo targets use the A/B updater.
AB_OTA_UPDATER := true

# Do not build Android OTA package.
TARGET_SKIP_OTA_PACKAGE := true

# This is the list of partitions the A/B updater will update. These need to have
# two partitions each in the partition table, with the right suffix used by the
# bootloader, for example "system_a" and "system_b".
AB_OTA_PARTITIONS := \
  boot \
  system
```

/systemが2重化されているみたいです。 redundancyまたはA/Bといえば、A/B testなので、そういうのを今はやっているのでしょうか... (A/B testなら、別に実機側に入れなくてもできると思いますけど^^;)

あと、

```brillo_base.mk
PRODUCT_PACKAGES += \
  libstagefright_soft_aacdec \
  libstagefright_soft_aacenc \
  libstagefright_soft_amrdec \
  libstagefright_soft_amrnbenc \
  libstagefright_soft_amrwbenc \
  libstagefright_soft_flacenc \
  libstagefright_soft_g711dec \
  libstagefright_soft_gsmdec \
  libstagefright_soft_mp3dec \
  libstagefright_soft_opusdec \
  libstagefright_soft_rawdec \
  libstagefright_soft_vorbisdec \
```

ということで、音は鳴らせるみたいです。

つづく。