Android Things on RPi3 - 2


This is a follow up to our last report on Android things status on RPi3. Compared with last report, the biggest difference is Andriod 5.1 is running with Android O. We'll go through the services list, system processes, properties, features, dispaly, cameara, wifi, bluetooth, sensors, and a little bit Android O Treble.
Flash, boot up and connect. Wait a little while before you using adb connect.
  • rpi3:/ $ service list
    Found 122 services:
    0   devicemanagementservice: [com.google.android.things.internal.devicemanagement.IDeviceManagementService]
    1   gpsdriverservice: [com.google.android.things.userdriver.IGpsDriverService]
    2   contexthub: [android.hardware.location.IContextHubService]
    3   netd_listener: [android.net.metrics.INetdEventListener]
    4   connmetrics: [android.net.IIpConnectivityMetrics]
    5   bluetooth_manager: [android.bluetooth.IBluetoothManager]
    6   imms: [com.android.internal.telephony.IMms]
    7   iotsystemservice: []
    8   media_projection: [android.media.projection.IMediaProjectionManager]
    9   launcherapps: [android.content.pm.ILauncherApps]
    10  shortcut: [android.content.pm.IShortcutService]
    11  media_router: [android.media.IMediaRouterService]
    12  media_session: [android.media.session.ISessionManager]
    13  restrictions: [android.content.IRestrictionsManager]
    14  graphicsstats: [android.view.IGraphicsStats]
    15  dreams: [android.service.dreams.IDreamManager]
    16  commontime_management: []
    17  network_time_update_service: []
    18  samplingprofiler: []
    19  diskstats: []
    20  trust: [android.app.trust.ITrustManager]
    21  soundtrigger: [com.android.internal.app.ISoundTriggerService]
    22  jobscheduler: [android.app.job.IJobScheduler]
    23  hardware_properties: [android.os.IHardwarePropertiesManager]
    24  serial: [android.hardware.ISerialManager]
    25  usb: [android.hardware.usb.IUsbManager]
    26  DockObserver: []
    27  audio: [android.media.IAudioService]
    28  search: [android.app.ISearchManager]
    29  country_detector: [android.location.ICountryDetector]
    30  location: [android.location.ILocationManager]
    31  devicestoragemonitor: []
    32  notification: [android.app.INotificationManager]
    33  updatelock: [android.os.IUpdateLock]
    34  servicediscovery: [android.net.nsd.INsdManager]
    35  connectivity: [android.net.IConnectivityManager]
    36  ethernet: [android.net.IEthernetManager]
    37  rttmanager: [android.net.wifi.IRttManager]
    38  wifiscanner: [android.net.wifi.IWifiScanner]
    39  wifi: [android.net.wifi.IWifiManager]
    40  netpolicy: [android.net.INetworkPolicyManager]
    41  netstats: [android.net.INetworkStatsService]
    42  network_score: [android.net.INetworkScoreService]
    43  textservices: [com.android.internal.textservice.ITextServicesManager]
    44  network_management: [android.os.INetworkManagementService]
    45  clipboard: [android.content.IClipboard]
    46  statusbar: [com.android.internal.statusbar.IStatusBarService]
    47  device_policy: [android.app.admin.IDevicePolicyManager]
    48  deviceidle: [android.os.IDeviceIdleController]
    49  lock_settings: [com.android.internal.widget.ILockSettings]
    50  uimode: [android.app.IUiModeManager]
    51  storagestats: [android.app.usage.IStorageStatsManager]
    52  mount: [android.os.storage.IStorageManager]
    53  accessibility: [android.view.accessibility.IAccessibilityManager]
    54  input_method: [com.android.internal.view.IInputMethodManager]
    55  pinner: []
    56  vrmanager: [android.service.vr.IVrManager]
    57  input: [android.hardware.input.IInputManager]
    58  window: [android.view.IWindowManager]
    59  alarm: [android.app.IAlarmManager]
    60  consumer_ir: [android.hardware.IConsumerIrService]
    61  vibrator: [android.os.IVibratorService]
    62  settings: []
    63  content: [android.content.IContentService]
    64  account: [android.accounts.IAccountManager]
    65  media.camera.proxy: [android.hardware.ICameraServiceProxy]
    66  telephony.registry: [com.android.internal.telephony.ITelephonyRegistry]
    67  scheduling_policy: [android.os.ISchedulingPolicyService]
    68  sec_key_att_app_id_provider: [android.security.keymaster.IKeyAttestationApplicationIdProvider]
    69  webviewupdate: [android.webkit.IWebViewUpdateService]
    70  overlay: [android.content.om.IOverlayManager]
    71  usagestats: [android.app.usage.IUsageStatsManager]
    72  battery: []
    73  sensorservice: [android.gui.SensorServer]
    74  dropbox: [com.android.internal.os.IDropBoxManagerService]
    75  processinfo: [android.os.IProcessInfoService]
    76  permission: [android.os.IPermissionController]
    77  cpuinfo: []
    78  dbinfo: []
    79  gfxinfo: []
    80  meminfo: []
    81  procstats: [com.android.internal.app.procstats.IProcessStats]
    82  activity: [android.app.IActivityManager]
    83  user: [android.os.IUserManager]
    84  otadexopt: [android.content.pm.IOtaDexopt]
    85  package: [android.content.pm.IPackageManager]
    86  display: [android.hardware.display.IDisplayManager]
    87  recovery: [android.os.IRecoverySystem]
    88  power: [android.os.IPowerManager]
    89  appops: [com.android.internal.app.IAppOpsService]
    90  batterystats: [com.android.internal.app.IBatteryStats]
    91  device_identifiers: [android.os.IDeviceIdentifiersPolicyService]
    92  com.google.android.things.pio.IPeripheralManager: [com.google.android.things.pio.IPeripheralManager]
    93  media.sound_trigger_hw: [android.hardware.ISoundTriggerHwService]
    94  media.radio: [android.hardware.IRadioService]
    95  media.aaudio: [IAAudioService]
    96  media.audio_policy: [android.media.IAudioPolicyService]
    97  audiodriverservice: [com.google.android.things.userdriver.IAudioDriverService]
    98  media.extractor: [android.media.IMediaExtractorService]
    99  media.resource_manager: [android.media.IResourceManagerService]
    100 media.player: [android.media.IMediaPlayerService]
    101 media.audio_flinger: [android.media.IAudioFlinger]
    102 gpu: [android.ui.IGpuService]
    103 SurfaceFlinger: [android.ui.ISurfaceComposer]
    104 media.camera: [android.hardware.ICameraService]
    105 drm.drmManager: [drm.IDrmManagerService]
    106 media.metrics: [android.media.IMediaAnalyticsService]
    107 media.codec: [android.media.IMediaCodecService]
    108 android.brillo.UpdateEngineService: [android.brillo.IUpdateEngine]
    109 android.brillo.metrics.IMetricsCollectorService: [android.brillo.metrics.IMetricsCollectorService]
    110 media.cas: [android.media.IMediaCasService]
    111 media.drm: [android.media.IMediaDrmService]
    112 android.brillo.metrics.IMetricsd: [android.brillo.metrics.IMetricsd]
    113 inputdriverservice: [com.google.android.things.userdriver.IInputDriverService]
    114 netd: [android.net.INetd]
    115 sensordriverservice: [com.google.android.things.userdriver.ISensorDriverService]
    116 android.security.keystore: [android.security.IKeystoreService]
    117 wificond: [android.net.wifi.IWificond]
    118 android.service.gatekeeper.IGateKeeperService: [android.service.gatekeeper.IGateKeeperService]
    119 storaged: [Storaged]
    120 installd: [android.os.IInstalld]
    121 batteryproperties: [android.os.IBatteryPropertiesRegistrar]
rpi3:/ $ service list | grep things
0   devicemanagementservice: [com.google.android.things.internal.devicemanagement.IDeviceManagementService]
1   gpsdriverservice: [com.google.android.things.userdriver.IGpsDriverService]
92  com.google.android.things.pio.IPeripheralManager: [com.google.android.things.pio.IPeripheralManager]
97  audiodriverservice: [com.google.android.things.userdriver.IAudioDriverService]
113 inputdriverservice: [com.google.android.things.userdriver.IInputDriverService]
115 sensordriverservice: [com.google.android.things.userdriver.ISensorDriverService]
  • rpi3:/ $ ps -ef
    UID            PID  PPID C      TIME CMD
    root             1     0 4   init
    root             2     0 0   [kthreadd]
    root             3     2 0   [ksoftirqd/0]
    root             4     2 0   [kworker/0:0]
    root             5     2 0   [kworker/0:0H]
    root             6     2 0   [kworker/u8:0]
    root             7     2 0   [rcu_preempt]
    root             8     2 0   [rcu_sched]
    root             9     2 0   [rcu_bh]
    root            10     2 0   [migration/0]
    root            11     2 0   [migration/1]
    root            12     2 0   [ksoftirqd/1]
    root            13     2 0   [kworker/1:0]
    root            14     2 0   [kworker/1:0H]
    root            15     2 0   [migration/2]
    root            16     2 0   [ksoftirqd/2]
    root            17     2 0   [kworker/2:0]
    root            18     2 0   [kworker/2:0H]
    root            19     2 0   [migration/3]
    root            20     2 0   [ksoftirqd/3]
    root            21     2 0   [kworker/3:0]
    root            22     2 0   [kworker/3:0H]
    root            23     2 0   [kdevtmpfs]
    root            24     2 0   [netns]
    root            25     2 0   [perf]
    root            26     2 0   [khungtaskd]
    root            27     2 0   [writeback]
    root            28     2 0   [ksmd]
    root            29     2 0   [crypto]
    root            30     2 0   [bioset]
    root            31     2 0   [kblockd]
    root            32     2 0   [kworker/0:1]
    root            33     2 0   [cfg80211]
    root            34     2 0   [rpciod]
    root            35     2 1   [kswapd0]
    root            36     2 0   [vmstat]
    root            37     2 0   [fsnotify_mark]
    root            38     2 0   [nfsiod]
    root            64     2 0   [kthrotld]
    root            65     2 0   [kworker/1:1]
    root            66     2 0   [kworker/2:1]
    root            67     2 0   [bioset]
    root            68     2 0   [bioset]
    root            69     2 0   [bioset]
    root            70     2 0   [bioset]
    root            71     2 0   [bioset]
    root            72     2 0   [bioset]
    root            73     2 0   [bioset]
    root            74     2 0   [bioset]
    root            75     2 0   [bioset]
    root            76     2 0   [bioset]
    root            77     2 0   [bioset]
    root            78     2 0   [bioset]
    root            79     2 0   [bioset]
    root            80     2 0   [bioset]
    root            81     2 0   [bioset]
    root            82     2 0   [bioset]
    root            83     2 0   [bioset]
    root            84     2 0   [bioset]
    root            85     2 0   [bioset]
    root            86     2 0   [bioset]
    root            87     2 0   [bioset]
    root            88     2 0   [bioset]
    root            89     2 0   [bioset]
    root            90     2 0   [bioset]
    root            91     2 0   [VCHIQ-0]
    root            92     2 0   [VCHIQr-0]
    root            93     2 0   [VCHIQs-0]
    root            94     2 0   [iscsi_eh]
    root            96     2 0   [dwc_otg]
    root            97     2 0   [DWC Notificatio]
    root            98     2 0   [VCHIQka-0]
    root            99     2 0   [dm_bufio_cache]
    root           100     2 0   [kworker/u8:1]
    root           101     2 0   [irq/92-mmc1]
    root           102     2 0   [bioset]
    root           103     2 1   [mmcqd/0]
    root           104     2 0   [kworker/0:2]
    root           105     2 0   [binder]
    root           106     2 0   [kworker/u8:2]
    root           107     2 0   [kworker/u8:3]
    root           108     2 0   [kworker/u8:4]
    root           109     2 0   [brcmf_wq/mmc1:0]
    root           110     2 0   [brcmf_wdog/mmc1]
    root           111     2 0   [ipv6_addrconf]
    root           112     2 0   [SMIO]
    root           113     2 0   [deferwq]
    root           114     2 0   [kworker/2:2]
    root           115     2 0   [jbd2/mmcblk0p6-]
    root           116     2 0   [ext4-rsv-conver]
    root           117     2 0   [kworker/3:1]
    root           118     1 0   ueventd
    root           123     2 0   [jbd2/mmcblk0p15]
    root           124     2 0   [ext4-rsv-conver]
    root           125     2 0   [ext4-rsv-conver]
    root           126     2 0   [jbd2/mmcblk0p13]
    root           127     2 0   [ext4-rsv-conver]
    logd           128     1 0   logd
    system         129     1 0   servicemanager
    system         130     1 0   hwservicemanager
    system         131     1 0   vndservicemanager /dev/vndbinder
    root           136     2 0   [kauditd]
    root           140     1 0   android.hardware.boot@1.0-service
    system         141     1 0   android.hardware.keymaster@3.0-service
    root           142     1 0   vold --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0
    root           151     1 0   netd
    root           152     1 2   zygote
    root           154   151 0   iptables-restore --noflush -w -v
    root           155   151 0   ip6tables-restore --noflush -w -v
    system         156     1 0   android.hidl.allocator@1.0-service
    audioserver    157     1 0   android.hardware.audio@2.0-service
    bluetooth      158     1 0   android.hardware.bluetooth@1.0-service
    system         159     1 0   android.hardware.configstore@1.0-service
    system         160     1 0   android.hardware.graphics.allocator@2.0-service
    system         161     1 0   android.hardware.graphics.composer@2.1-service
    system         162     1 0   android.hardware.power@1.0-service
    system         163     1 0   android.hardware.sensors@1.0-service
    system         164     1 0   android.hardware.usb@1.0-service
    wifi           165     1 0   android.hardware.wifi@1.0-service
    root           166     1 0   healthd
    root           167     1 0   lmkd
    system         168     1 2   surfaceflinger
    shell          169     1 0   sh
    shell          170     1 0   adbd --root_seclabel=u:r:su:s0
    audioserver    171     1 1   audioserver
    cameraserver   172     1 0   cameraserver
    drm            173     1 0   drmserver
    root           174     1 0   installd
    keystore       175     1 0   keystore /data/misc/keystore
    media          177     1 0   mediadrmserver
    mediaex        178     1 0   media.extractor aextractor
    media          179     1 0   media.metrics diametrics
    media          180     1 0   mediaserver
    root           181     1 1   peripheralman
    root           182     1 0   storaged
    wifi           183     1 0   wificond
    mediacodec     184     1 0   media.codec hw/android.hardware.media.omx@1.0-service
    root           186     1 0   sh /system/bin/periodic_scheduler 3600 14400 crash_sender /system/bin/crash_sender
    system         187     1 0    gatekeeperd /data/misc/gatekeeper
    system         188     1 0    userinputdriverservice
    metrics_coll   189     1 0    metrics_collector --foreground --logtosyslog
    metricsd       190     1 0    metricsd --foreground --logtosyslog
    tombstoned     192     1 0    tombstoned
    root           193     1 0    update_engine --logtostderr --foreground
    root           216   186 0    sleep 310
    mdnsr          222     1 0    mdnsd
    root           253     2 0    [kworker/1:2]
    system         310   152 12   system_server
    root           349     2 0    [kworker/0:1H]
    root           351     2 0    [kworker/1:1H]
    u0_a28         424   152 0    com.android.inputmethod.latin
    u0_a8          431   152 0    com.android.iot.systemui
    media_rw       436   142 0    sdcard -u 1023 -g 1023 -m -w /data/media emulated
    webview_zygote 467     1 1    webview_zygote32
    system         497   152 0    com.android.settings
    root           551     2 0    [kworker/3:2]
    system         592   152 0    com.google.android.things.internal.devicemanagement
    u0_a7          623   152 2  android.process.media
    system         637   152 1  com.android.iotlauncher
    u0_a11         669   152 1  com.google.android.gms.feedback
    u0_a10         695   152 0  com.android.managedprovisioning
    u0_a9          718   152 0  com.android.onetimeinitializer
    u0_a16         736   152 0  com.android.packageinstaller
    system         748   152 0  com.android.keychain
    u0_a11         756   152 2  com.google.process.gapps
    u0_a3          783   152 0  com.android.providers.calendar
    u0_a11         789   152 9  com.google.android.gms.persistent
    u0_a11         846   152 8  com.google.android.gms
    system         851   152 0  com.google.android.things.internal.bluetooth
    root           908     2 0  [kworker/2:1H]
    u0_a11         954   152 1  com.google.android.gms.ui
    u0_a11         973   152 7  com.google.android.gms.unstable
    u0_a4          998   152 1  android.process.acore
    root          1027     2 0  [kworker/3:1H]
    u0_a5         1070   152 0  android.ext.services
  • rpi3:/ $ getprop
[camera.disable_zsl_mode]: [1]
[crash_reporter.coredump.enabled]: [1]
[dalvik.vm.appimageformat]: [lz4]
[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.dexopt.secondary]: [true]
[dalvik.vm.heapsize]: [256m]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.arm.features]: [default]
[dalvik.vm.isa.arm.variant]: [generic]
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[dalvik.vm.usejit]: [true]
[dalvik.vm.usejitprofiles]: [true]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[debug.input.timeout_mode]: [none]
[dev.bootcomplete]: [1]
[hwservicemanager.ready]: [true]
[init.svc.adbd]: [running]
[init.svc.audio-hal-2-0]: [running]
[init.svc.audioserver]: [running]
[init.svc.bluetooth-1-0]: [running]
[init.svc.boot-hal-1-0]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.cameraserver]: [running]
[init.svc.configstore-hal-1-0]: [running]
[init.svc.console]: [running]
[init.svc.crash_reporter]: [stopped]
[init.svc.crash_sender]: [running]
[init.svc.drm]: [running]
[init.svc.gatekeeperd]: [running]
[init.svc.gralloc-2-0]: [running]
[init.svc.healthd]: [running]
[init.svc.hidl_memory]: [running]
[init.svc.hostapd]: [stopped]
[init.svc.hwcomposer-2-1]: [running]
[init.svc.hwservicemanager]: [running]
[init.svc.inputdriverserv]: [running]
[init.svc.installd]: [running]
[init.svc.keymaster-3-0]: [running]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logd]: [running]
[init.svc.logd-reinit]: [stopped]
[init.svc.mdnsd]: [running]
[init.svc.media]: [running]
[init.svc.mediacodec]: [running]
[init.svc.mediadrm]: [running]
[init.svc.mediaextractor]: [running]
[init.svc.mediametrics]: [running]
[init.svc.metricscollector]: [running]
[init.svc.metricsd]: [running]
[init.svc.netd]: [running]
[init.svc.peripheralman]: [running]
[init.svc.power-hal-1-0]: [running]
[init.svc.sensors-hal-1-0]: [running]
[init.svc.servicemanager]: [running]
[init.svc.storaged]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.tombstoned]: [running]
[init.svc.ueventd]: [running]
[init.svc.update_engine]: [running]
[init.svc.usb-hal-1-0]: [running]
[init.svc.vndservicemanager]: [running]
[init.svc.vold]: [running]
[init.svc.webview_zygote32]: [running]
[init.svc.wifi_hal_legacy]: [running]
[init.svc.wificond]: [running]
[init.svc.wpa_supplicant]: [stopped]
[init.svc.zygote]: [running]
[log.tag.Hyphenator]: [SUPPRESS]
[log.tag.WifiHAL]: [D]
[logd.logpersistd.enable]: [true]
[net.bt.name]: [Android]
[net.dns1]: [198.142.152.164]
[net.dns2]: [198.142.152.165]
[net.qtaguid_enabled]: [1]
[net.tcp.default_init_rwnd]: [60]
[persist.media.treble_omx]: [false]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.profiler_ms]: [0]
[persist.sys.timezone]: [GMT]
[persist.sys.ui.hw]: [disable]
[persist.sys.usb.config]: [adb]
[persist.sys.webview.vmsize]: [104857600]
[pm.dexopt.ab-ota]: [speed-profile]
[pm.dexopt.bg-dexopt]: [speed-profile]
[pm.dexopt.boot]: [verify]
[pm.dexopt.first-boot]: [quicken]
[pm.dexopt.install]: [quicken]
[ro.allow.mock.location]: [0]
[ro.baseband]: [unknown]
[ro.board.platform]: []
[ro.boot.hardware]: [rpi3]
[ro.boot.selinux]: [permissive]
[ro.boot.serialno]: [00000000b359057f]
[ro.boot.slot_suffix]: [_a]
[ro.bootimage.build.date]: [Fri Aug 18 02:52:42 UTC 2017]
[ro.bootimage.build.date.utc]: [1503024762]
[ro.bootimage.build.fingerprint]: [Things/iot_rpi3/rpi3:8.0.0/OIR1.170720.017/4284968:userdebug/test-keys]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.boottime.adbd]: [7601300153]
[ro.boottime.audio-hal-2-0]: [7563352809]
[ro.boottime.audioserver]: [7604559893]
[ro.boottime.bluetooth-1-0]: [7565701611]
[ro.boottime.boot-hal-1-0]: [6893695518]
[ro.boottime.bootanim]: [10393633329]
[ro.boottime.cameraserver]: [7607383278]
[ro.boottime.configstore-hal-1-0]: [7568247705]
[ro.boottime.console]: [7598286143]
[ro.boottime.crash_reporter]: [7654761924]
[ro.boottime.crash_sender]: [7657323851]
[ro.boottime.drm]: [7611007445]
[ro.boottime.gatekeeperd]: [7660283382]
[ro.boottime.gralloc-2-0]: [7570879059]
[ro.boottime.healthd]: [7587036195]
[ro.boottime.hidl_memory]: [7560812861]
[ro.boottime.hwcomposer-2-1]: [7573384632]
[ro.boottime.hwservicemanager]: [6644135778]
[ro.boottime.init]: [3799]
[ro.boottime.init.cold_boot_wait]: [374]
[ro.boottime.init.mount_all.default]: [1999]
[ro.boottime.init.selinux]: [150]
[ro.boottime.inputdriverserv]: [7662961090]
[ro.boottime.installd]: [7613993122]
[ro.boottime.keymaster-3-0]: [6896106716]
[ro.boottime.keystore]: [7617538590]
[ro.boottime.lmkd]: [7589607393]
[ro.boottime.logd]: [6618810414]
[ro.boottime.logd-reinit]: [7497335361]
[ro.boottime.mdnsd]: [8393546767]
[ro.boottime.media]: [7638129893]
[ro.boottime.mediacodec]: [7649625518]
[ro.boottime.mediadrm]: [7628786507]
[ro.boottime.mediaextractor]: [7632200413]
[ro.boottime.mediametrics]: [7634985361]
[ro.boottime.metricscollector]: [7665596403]
[ro.boottime.metricsd]: [7668492132]
[ro.boottime.netd]: [7286089424]
[ro.boottime.peripheralman]: [7640988070]
[ro.boottime.power-hal-1-0]: [7575882080]
[ro.boottime.sensors-hal-1-0]: [7578534059]
[ro.boottime.servicemanager]: [6641712810]
[ro.boottime.storaged]: [7643825153]
[ro.boottime.surfaceflinger]: [7592422497]
[ro.boottime.tombstoned]: [7726276455]
[ro.boottime.ueventd]: [4198132029]
[ro.boottime.update_engine]: [7729457809]
[ro.boottime.usb-hal-1-0]: [7581457757]
[ro.boottime.vndservicemanager]: [6648329008]
[ro.boottime.vold]: [6899477601]
[ro.boottime.webview_zygote32]: [28021782541]
[ro.boottime.wifi_hal_legacy]: [7584342080]
[ro.boottime.wificond]: [7646544840]
[ro.boottime.zygote]: [7288532289]
[ro.build.ab_update]: [true]
[ro.build.characteristics]: [embedded]
[ro.build.date]: [Fri Aug 18 02:52:42 UTC 2017]
[ro.build.date.utc]: [1503024762]
[ro.build.description]: [iot_rpi3-userdebug 8.0.0 OIR1.170720.017 4284968 test-keys]
[ro.build.display.id]: [iot_rpi3-userdebug 8.0.0 OIR1.170720.017 4284968 test-keys]
[ro.build.fingerprint]: [Things/iot_rpi3/rpi3:8.0.0/OIR1.170720.017/4284968:userdebug/test-keys]
[ro.build.flavor]: [iot_rpi3-userdebug]
[ro.build.host]: [vpef5.mtv.corp.google.com]
[ro.build.id]: [OIR1.170720.017]
[ro.build.product]: [rpi3]
[ro.build.system_root_image]: [true]
[ro.build.tags]: [test-keys]
[ro.build.type]: [userdebug]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [4284968]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.release]: [8.0.0]
[ro.build.version.sdk]: [26]
[ro.build.version.security_patch]: [2017-08-05]
[ro.carrier]: [unknown]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.notification_sound]: [OnTheHunt.ogg]
[ro.crypto.state]: [unsupported]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [1]
[ro.hardware]: [rpi3]
[ro.hardware.audio.primary]: [iot]
[ro.hardware.camera]: [v4l2]
[ro.hardware.gps]: [iot]
[ro.hardware.gralloc]: [gbm]
[ro.hardware.hwcomposer]: [drm]
[ro.hardware.sensors]: [iot]
[ro.metricsd.product_id]: [android-things:r2nfla]
[ro.metricsd.product_version]: [0]
[ro.persistent_properties.ready]: [true]
[ro.product.board]: [rpi3]
[ro.product.brand]: [Things]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
[ro.product.device]: [rpi3]
[ro.product.manufacturer]: [Google]
[ro.product.model]: [iot_rpi3]
[ro.product.name]: [iot_rpi3]
[ro.property_service.version]: [2]
[ro.radio.noril]: [yes]
[ro.revision]: [0]
[ro.rfkilldisabled]: [1]
[ro.runtime.firstboot]: [1230768023099]
[ro.secure]: [1]
[ro.serialno]: [00000000b359057f]
[ro.sf.lcd_density]: [240]
[ro.treble.enabled]: [false]
[ro.wifi.channels]: []
[ro.zygote]: [zygote32]
[security.perf_harden]: [1]
[service.bootanim.exit]: [1]
[service.sf.present_timestamp]: [1]
[sys.boot_completed]: [1]
[sys.logbootcomplete]: [1]
[sys.rescue_boot_count]: [1]
[sys.sysctl.extra_free_kbytes]: [24300]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.usb.config]: [adb]
[sys.usb.configfs]: [0]
[sys.usb.state]: [adb]
[sys.wifitracing.started]: [1]
[vold.has_adoptable]: [0]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [15]
  • HDMI Display
Initially, monitor says "no cable connected" but after switching the source back and force for my monitor and at the time I'm about to give up, android things home screen show up.
1920x1080 is used and that the resolution negotiation between monitor and the board is working properly.
rpi3:/ $ dumpsys SurfaceFlinger
Build configuration: [sf HAS_CONTEXT_PRIORITY=0 DISABLE_TRIPLE_BUFFERING PRESENT_TIME_OFFSET=0 FORCE_HWC_FOR_RBG_TO_YUV=0 MAX_VIRT_DISPLAY_DIM=0 RUNNING_WITHOUT_SYNC_FRAMEWORK=0 NUM_FRAMEBUFFER_SURFACE_BUFFERS=2] [libui] [libgui]

Wide-Color information:
hasWideColorDisplay: 0
Display 0 color modes:
    HAL_COLOR_MODE_NATIVE (0)
    Current color mode: HAL_COLOR_MODE_NATIVE (0)

Sync configuration: [using: EGL_KHR_fence_sync EGL_KHR_wait_sync]
DispSync configuration: app phase 1000000 ns, sf phase 1000000 ns, present offset 0 ns (refresh 16666667 ns)

Buffering stats:
  [Layer name]    

Visible layers (count = 1)
+ Layer 0xb2dcd000 (com.android.iotlauncher/com.android.iotlauncher.IoTLauncher#0)
  Region transparentRegion (this=0xb2dcd278, count=1)
    [  0,   0,   0,   0]
  Region visibleRegion (this=0xb2dcd008, count=1)
    [  0,   0, 1920, 1080]
  Region surfaceDamageRegion (this=0xb2dcd044, count=1)
    [  0,   0,  -1,  -1]
      layerStack=   0, z=    21000, pos=(0,0), size=(1920,1080), crop=(   0,   0,1920,1080), finalCrop=(   0,   0,  -1,  -1), isOpaque=1, invalidate=0, alpha=1.000, flags=0x00000002, tr=[1.00, 0.00][0.00, 1.00]
      client=0xb4b1c140
      format= 2, activeBuffer=[1920x1080:1920,  2], queued-frames=0, mRefreshPending=0
            mTexName=5 mCurrentTexture=0
            mCurrentCrop=[0,0,0,0] mCurrentTransform=0
            mAbandoned=0
            -BufferQueue mMaxAcquiredBufferCount=1, mMaxDequeuedBufferCount=2, mDequeueBufferCannotBlock=0 mAsyncMode=0, default-size=[1920x1080], default-format=2, transform-hint=00, FIFO(0)={}
            >[00:0xb4b0ea00] state=ACQUIRED, 0xb4b0ebe0 [1920x1080:1920,  2]
             [01:0xb4b0ec80] state=FREE    , 0xb4b0ee60 [1920x1080:1920,  2]
             [02:0x0] state=FREE    
Displays (1 entries)
+ DisplayDevice: Built-in Screen
   type=0, hwcId=0, layerStack=0, (1920x1080), ANativeWindow=0xb517c008, orient= 0 (type=00000000), flips=70, isSecure=1, powerMode=2, activeConfig=0, numLayers=1
   v:[0,0,1920,1080], f:[0,0,1920,1080], s:[0,0,1920,1080],transform:[[1.000,0.000,-0.000][0.000,1.000,-0.000][0.000,0.000,1.000]]
mAbandoned=0
-BufferQueue mMaxAcquiredBufferCount=1, mMaxDequeuedBufferCount=1, mDequeueBufferCannotBlock=0 mAsyncMode=0, default-size=[1920x1080], default-format=1, transform-hint=00, FIFO(0)={}
 [00:0xb514cdc0] state=DEQUEUED, 0xb514e620 [1920x1080:1920,  1]
 [01:0x0] state=FREE    
SurfaceFlinger global state:
EGL implementation : 1.4 (DRI2)
EGL_ANDROID_framebuffer_target EGL_ANDROID_image_native_buffer EGL_ANDROID_recordable EGL_EXT_image_dma_buf_import EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export 
GLES: Broadcom, Gallium 0.4 on VC4 V3D 2.1, OpenGL ES 2.0 Mesa 17.0.4
GL_EXT_debug_marker GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_OES_surfaceless_context GL_EXT_separate_shader_objects GL_EXT_draw_elements_base_vertex GL_EXT_texture_border_clamp GL_KHR_context_flush_control GL_OES_draw_elements_base_vertex GL_OES_texture_border_clamp 
Wide-color: Off
  Region undefinedRegion (this=0xb51477ac, count=1)
    [  0,   0,   0,   0]
  orientation=0, isDisplayOn=1
  last eglSwapBuffers() time: 494.270000 us
  last transaction time     : 64.688000 us
  transaction-flags         : 00000000
  refresh-rate              : 59.999999 fps
  x-dpi                     : 92.014999
  y-dpi                     : 91.440002
  gpu_to_cpu_unsupported    : 0
  eglSwapBuffers time: 0.000000 us
  transaction time: 0.000000 us
VSYNC state: disabled
  soft-vsync: disabled
  numListeners=12,
  events-delivered: 75
    0xb2e66c50: count=-1
    0xb2e66da0: count=-1
    0xb2e66ec0: count=-1
    0xb4b19060: count=-1
    0xb4b190c0: count=-1
    0xb4b190f0: count=-1
    0xb4b19120: count=-1
    0xb4b19150: count=-1
    0xb4b191b0: count=-1
    0xb511f4b0: count=-1
    0xb511f4e0: count=-1
    0xb511f510: count=-1

Display 0 HWC layers:
-------------------------------------------------------------------------------
 Layer name
           Z |  Comp Type |   Disp Frame (LTRB) |          Source Crop (LTRB)
-------------------------------------------------------------------------------
 com.android.iotlauncher/com.android.iotlauncher.IoTLauncher#0
       21000 |     Device |    0    0 1920 1080 |    0.0    0.0 1920.0 1080.0
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

h/w composer state:
  h/w composer enabled
Allocated buffers:
0xb2e75e20: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        1 | 0x1a00 | 
0xb3016f00: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        1 | 0x1a00 | 
0xb4b0ebe0: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        2 | 0x933 | com.android.iotlauncher/com.android.iotlauncher.IoTLauncher#0
0xb4b0ee60: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        2 | 0x933 | com.android.iotlauncher/com.android.iotlauncher.IoTLauncher#0
0xb514e620: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        1 | 0x1a00 | FramebufferSurface
0xb514f3e0: 8100.00 KiB | 1920 (1920) x 1080 |    1 |        1 | 0x1a00 | 
Total allocated (estimate): 48600.00 KB
  • partitions
still same. no change.
rpi3:/ $ ls /dev/block/platform/soc/3f202000.sdhost/by-name/ -l
total 0
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 boot_a -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 boot_b -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 gapps_a -> /dev/block/mmcblk0p13
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 gapps_b -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 misc -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 oem_a -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 oem_b -> /dev/block/mmcblk0p12
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 rpiboot -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 system_a -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 system_b -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 uboot_a -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 uboot_b -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root 21 1970-01-01 00:00 userdata -> /dev/block/mmcblk0p15
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 vbmeta_a -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root 20 1970-01-01 00:00 vbmeta_b -> /dev/block/mmcblk0p9
  • init.rpi3.rc
on fs
    mount_all /fstab.${ro.hardware}

on early-init
    mount debugfs debugfs /sys/kernel/debug mode=0755

service dhcpcd_wlan0 /system/bin/dhcpcd -dABKL
    group dhcp
    disabled
    oneshot

service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
        -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
        -I/system/etc/wifi/wpa_supplicant_overlay.conf \
        -O/data/misc/wifi/sockets \
        -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
    class main
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

on boot
    chmod 0666 /dev/sw_sync

    # Add a cpuset for the camera daemon
    # We want all cores for camera
    mkdir /dev/cpuset/camera-daemon
    write /dev/cpuset/camera-daemon/cpus 0-3
    write /dev/cpuset/camera-daemon/mems 0
    chown system system /dev/cpuset/camera-daemon
    chown system system /dev/cpuset/camera-daemon/tasks
    chmod 0644 /dev/cpuset/camera-daemon/tasks
  • rpi3:/ $ cat ueventd.rpi3.rc
    /dev/video*               0660   system     camera
    /dev/ttyAMA0              0660   bluetooth  bluetooth
    /dev/rfkill               0660   bluetooth  bluetooth
    /sys/class/rfkill/rfkill0/state 0660 bluetooth bluetooth
  • bluetooth
Bluetooth is disabled by default, but we can enable it from cli.
rpi3:/ # dumpsys bluetooth_manager       
Bluetooth Status
  enabled: false
  state: OFF
  address: null
  name: RPI3
Bluetooth never enabled!
Bluetooth crashed 0 times

No BLE Apps registered.

Bluetooth Service not connected
rpi3:/ # service call bluetooth_manager 6  
Result: Parcel(00000000 00000001   '........')

rpi3:/ # dumpsys bluetooth_manager             
Bluetooth Status
  enabled: true
  state: ON
  address: 22:22:ED:D0:75:9F
  name: RPI3
  time since enabled: 00:00:02.555

Enable log:
  08-30 04:46:18  Enabled  by null
Bluetooth crashed 0 times

No BLE Apps registered.

Bonded devices:

Profile: BtGatt.GattService
  mAdvertisingServiceUuids:
  mMaxScanFilters: 0

GATT Scanner Map
  Entries: 0

GATT Client Map
  Entries: 0

GATT Server Map
  Entries: 0

GATT Handle Map
  Entries: 0
  Requests: 0

Profile: HeadsetService
  mCurrentDevice: null
  mTargetDevice: null
  mIncomingDevice: null
  mActiveScoDevice: null
  mMultiDisconnectDevice: null
  mVirtualCallStarted: false
  mVoiceRecognitionStarted: false
  mWaitingForVoiceRecognition: false
  StateMachine: HeadsetStateMachine:
 total records=2
 rec[0]: time=08-30 04:46:20.124 processed=Disconnected org=Disconnected dest=<null> what=10(0xa)
 rec[1]: time=08-30 04:46:20.124 processed=<null> org=Disconnected dest=<null> what=11(0xb)
curState=Disconnected

  mPhoneState: com.android.bluetooth.hfp.HeadsetPhoneState@ce70fe4
  mAudioState: 10

Profile: A2dpSinkService
  mCurrentDevice: null
  mTargetDevice: null
  mIncomingDevice: null
  StateMachine: A2dpSinkStateMachine:
 total records=0
curState=Disconnected


Profile: HidService
  mTargetDevice: null
  mInputDevices:

Profile: HealthService
  mHealthChannels:
  mApps:
  mHealthDevices:

Profile: PanService
  mMaxPanDevices: 5
  mPanIfName: bt-pan
  mTetherOn: false
  mPanDevices:

Profile: BluetoothMapService
  mRemoteDevice: null
  sRemoteDeviceName: null
  mState: 0
  mAppObserver: com.android.bluetooth.map.BluetoothMapAppObserver@3916c4d
  mIsWaitingAuthorization: false
  mRemoveTimeoutMsg: false
  mPermission: 0
  mAccountChanged: false
  mBluetoothMnsObexClient: null
  mMasInstanceMap:
    null : MasId: 0 Uri:null SMS/MMS:true
  mEnabledAccounts:

Profile: AvrcpControllerService
  StateMachine: AvrcpControllerSM:
 total records=0
curState=Disconnected


Profile: BluetoothPbapService

Connection Events:
  None

Bond Events: 
  Total Number of events: 0

A2DP State:
  TxQueue:
  Counts (enqueue/dequeue/readbuf)                        : 0 / 0 / 0
  Last update time ago in ms (enqueue/dequeue/readbuf)    : 0 / 0 / 0
  Frames per packet (total/max/ave)                       : 0 / 0 / 0
  Counts (flushed/dropped/dropouts)                       : 0 / 0 / 0
  Counts (max dropped)                                    : 0
  Last update time ago in ms (flushed/dropped)            : 0 / 0
  Counts (underflow)                                      : 0
  Bytes (underflow)                                       : 0
  Last update time ago in ms (underflow)                  : 0
  Enqueue deviation counts (overdue/premature)            : 0 / 0
  Enqueue overdue scheduling time in ms (total/max/ave)   : 0 / 0 / 0
  Enqueue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0
  Dequeue deviation counts (overdue/premature)            : 0 / 0
  Dequeue overdue scheduling time in ms (total/max/ave)   : 0 / 0 / 0
  Dequeue premature scheduling time in ms (total/max/ave) : 0 / 0 / 0

A2DP Codecs State:
  Current Codec: None

A2DP LDAC State:
  Priority: 5001
  Encoder interval (ms): 20
  Config: Invalid
  Selectable: Invalid
  Local capability: Rate=44100|48000|88200|96000 Bits=16|24|32 Mode=STEREO
  Packet counts (expected/dropped)                        : 0 / 0
  PCM read counts (expected/actual)                       : 0 / 0
  PCM read bytes (expected/actual)                        : 0 / 0
  LDAC quality mode                                       : HIGH
  LDAC transmission bitrate (Kbps)                        : -1
  LDAC saved transmit queue length                        : 0

A2DP AAC State:
  Priority: 2001
  Encoder interval (ms): 20
  Config: Invalid
  Selectable: Invalid
  Local capability: Rate=44100 Bits=16 Mode=STEREO
  Packet counts (expected/dropped)                        : 0 / 0
  PCM read counts (expected/actual)                       : 0 / 0
  PCM read bytes (expected/actual)                        : 0 / 0

A2DP SBC State:
  Priority: 1001
  Encoder interval (ms): 20
  Config: Invalid
  Selectable: Invalid
  Local capability: Rate=44100 Bits=16 Mode=STEREO
  Packet counts (expected/dropped)                        : 0 / 0
  PCM read counts (expected/actual)                       : 0 / 0
  PCM read bytes (expected/actual)                        : 0 / 0
  Frames counts (expected/dropped)                        : 0 / 0

Bluetooth Config:
  Config Source: New file
  Devices loaded: 0
  File created/tagged: 2017-08-30 04:46:18
  File source: Empty

Bluetooth HF Client BTA Statistics

Bluetooth Wakelock Statistics:
  Is acquired                    : true
  Acquired/released count        : 22 / 21
  Acquired/released error count  : 0 / 0
  Last acquire/release error code: 0 / 0
  Last acquired time (ms)        : 1019
  Acquired time min/max/avg (ms) : 1 / 1019 / 52
  Total acquired time (ms)       : 1160
  Total run time (ms)            : 1196

Bluetooth Memory Allocation Statistics:
  Total allocated/free/used counts : 1172 / 661 / 511
  Total allocated/free/used octets : 370075 / 79808 / 290267

Bluetooth Alarms Statistics:
  Total Alarms: 2

  Alarm : btif.config (SINGLE)
    Action counts (sched/resched/exec/cancel)      : 5 / 0 / 0 / 0
    Deviation counts (overdue/premature)           : 0 / 0
    Time in ms (since creation/interval/remaining) : 1008 / 3000 / 1992
    Callback execution time in ms (total/max/avg)  : 0 / 0 / 0
    Overdue scheduling time in ms (total/max/avg)  : 0 / 0 / 0
    Premature scheduling time in ms (total/max/avg): 0 / 0 / 0

  Alarm : btm_ble_addr.refresh_raddr_timer (SINGLE)
    Action counts (sched/resched/exec/cancel)      : 2 / 0 / 0 / 0
    Deviation counts (overdue/premature)           : 0 / 0
    Time in ms (since creation/interval/remaining) : 1016 / 900000 / 898984
    Callback execution time in ms (total/max/avg)  : 0 / 0 / 0
    Overdue scheduling time in ms (total/max/avg)  : 0 / 0 / 0
    Premature scheduling time in ms (total/max/avg): 0 / 0 / 0

--- BEGIN:BTSNOOP_LOG_SUMMARY (5757 bytes in) ---
Al3YizXxVwUAeJzll19oHEUcx3+zs3u7l5u720tycg3xstZYfagxvQ0aQ8JpY0lSSQ1HW1CLtBYfDARriqipUB+aFhqoKIhCwHootvrgk4gWShXtH0RI9MEXRV9EbLGI
BWlKY9bfb2Z6eyOlPpZm9/cQJt/v/GbmM7/73Z4NNtATcAEuxpU0gJ+zGQ5tjNMplBwfchhFi6QMw+E//CEPGGQwznvoCIU7n4raoUXm+MVSOUKVo58czIc8RklKguHQ
/RTcPKTXkuUkrhqkfchiqGVaGA6PvrB4ca00PE8Gy4cRjDsdMjzCcBhFEf82+hP//NF1Kf/7SvXya1En2nddjqL9S/jvKtzwcTBupyPaPoMCxl1y8RyzfQDr1MrCyo/R
vkPkmqVDbMeN0wF3HGHygNsFpDDKLmpTwlLioD79lJDpj6ZVekbpt8TpmeU2bWJMuyxy9cQuy2rjsatCrhm9iXv0OjOK8nrS8gF4GEpyGA5fJS0j6QV4PS2Ql5rLcHgV
PFLfIrUzkPezRt8PDiN6cHGyPE4Wrixj2oLDLn0CgbFb3nLg7S9b8n+0xRf1FlkgLXVpEZ7MHJ0aIsvr1yzqFIO0UEbVSlEvhMMU4uK2IyGsF2jZJIifC7N6+iYF+xIW
czCiAd2ttRGlPUhVPqy1i0xpw6rqN5DWLXi73U3Dsp7ZrTZVIbWkTl/Vm8Jh5sI3OwaXzl+lEpAJSsKCgOYv6uwlVR9yft6zHLnWOS3mPZlcbqtdQISxVZC0zHC4cXi8
L+wL+x/eEIQP9PSNj84EtV179zz9zPT0y8HEs0F4b29vX/jYjcv7FnwIyRDEvDtj3q1fPPflhfZjdyzDMpxtQUubWKpNjIU3e8s346FCKmVVIbUJ+BvjMPWxmviLOWmi
wjhzmPv/mW79h1g4mkVNfWLfhbiC+uMKmsy96dePfPcVWbbCdYusXnjjlbk5Pk+WiSZLJbYcGux6cueZ4+eomz5BFidIjf46NJnbRjsJdO9wVLsd1Ya3Zz+uF2pkOCwa
Blqk3rRIT7zItP1D7/dP7anSzW7OGDfLObQm424J1wnRuFnqpVs+RxbrhLVTij9p2OvUR2AaDFAOby0kAxWx+CTXAEUsFsFg4SKLrkTQIBYLwmAxWTFYpLkoJIMGsRjI
GiwWwGCR4ZlCMmgQi06TxWdgsMhKFrkE0CAWv8WfEfrN0PEBshgQ+Ktt7h2S01zJA0qexVlBWdjgtcrZ+3TnLauX6xmSO/TL9aNa61DaAa1x+fXIGxqlff9aWl+lDbNG
2p/1VPmuv5cbad/TmpxXjTW62HkwLjbfuNjbVvnVEos1ZpF/BAaLQoNFcZXTIBaeyeIsJJhFwWTxNSSYxTHzBWEKEsxiY9H4ItjW4xmdfoAbLfk4NLXdcbPTH4Smdr3Z
bMkfHjQQt/0H8X2rFrJE7Bvldv8Bg0XxOiwqhdVIg1i8FLehfwGzhw7p
--- END:BTSNOOP_LOG_SUMMARY ---
  • supported features
rpi3:/system/etc/permissions # ls -l
total 100
-rw-r--r-- 1 root root   820 android.hardware.bluetooth.xml
-rw-r--r-- 1 root root   830 android.hardware.bluetooth_le.xml
-rw-r--r-- 1 root root   933 android.hardware.camera.external.xml
-rw-r--r-- 1 root root   834 android.hardware.ethernet.xml
-rw-r--r-- 1 root root   942 android.hardware.location.gps.xml
-rw-r--r-- 1 root root   868 android.hardware.usb.host.xml
-rw-r--r-- 1 root root   829 android.hardware.wifi.xml
-rw-r--r-- 1 root root   748 android.software.webview.xml
-rw-r--r-- 1 root root   828 com.android.location.provider.xml
-rw-r--r-- 1 root root   828 com.android.media.remotedisplay.xml
-rw-r--r-- 1 root root   820 com.android.mediadrm.signer.xml
-rw-r--r-- 1 root root   977 iot_features.xml
-rw-r--r-- 1 root root  8786 platform.xml
-rw-r--r-- 1 root root 19690 privapp-permissions-google.xml
-rw-r--r-- 1 root root 20273 privapp-permissions-platform.xml
cat ot_features.xml:
<permissions>
    
    <feature name="android.hardware.type.embedded" />

    
    <library name="com.google.android.things"
             file="/system/framework/com.google.android.things.jar" />
</permissions>
  • camera
rpi3:/system/vendor # dumpsys media.camera                                                                                                                                
== Service global info: ==

Number of camera devices: 0
Number of normal camera devices: 0
Active Camera Clients:
[]
Allowed user IDs: 0

== Camera service events log (most recent at top): ==
  01-01 00:00:03 : USER_SWITCH previous allowed user IDs: , current allowed user IDs: 0

== Camera Provider HAL legacy/0 (v2.4, passthrough) static info: 0 devices: ==

== Vendor tags: ==

  Dumping vendor tag descriptors for vendor with id 3854507339 
  Dumping configured vendor tag descriptors: None set

== Camera error traces (0): ==
  No camera traces collected.
  • sensor
There are two sensor services, one is standard android one, the other is android things specific. Not sure the relationship between them.
rpi3:/system/vendor # service list | grep sensor  
73  sensorservice: [android.gui.SensorServer]
115 sensordriverservice: [com.google.android.things.userdriver.ISensorDriverService]

rpi3:/system/vendor # dumpsys sensorservice
Sensor Device:
Total 1 h/w sensors, 1 running:
0x00000001) active-count = 1; sampling_period(ms) = {1.0}, selected = 1.00 ms; batching_period(ms) = {0.0}, selected = 0.00 ms
Sensor List:
0x00000001) User-Driver Dynamic Meta-Sensor | Google          | ver: 1 | type: android.sensor.dynamic_sensor_meta(32) | perm: n/a
    special-trigger | maxDelay=0us | minDelay=0us | no batching | wakeUp | 
Fusion States:
9-axis fusion disabled (0 clients), gyro-rate= 200.00Hz, q=< 0, 0, 0, 0 > (0), b=< 0, 0, 0 >
game fusion(no mag) disabled (0 clients), gyro-rate= 200.00Hz, q=< 0, 0, 0, 0 > (0), b=< 0, 0, 0 >
geomag fusion (no gyro) disabled (0 clients), gyro-rate= 200.00Hz, q=< 0, 0, 0, 0 > (0), b=< 0, 0, 0 >
Recent Sensor events:
Active sensors:
User-Driver Dynamic Meta-Sensor (handle=0x00000001, connections=1)
Socket Buffer size = 39 events
WakeLock Status: not held 
Mode : NORMAL
1 active connections
Connection Number: 0 
    Operating Mode: NORMAL
     com.android.server.SensorNotificationService | WakeLockRefCount 0 | uid 1000 | cache size 0 | max cache size 0
     User-Driver Dynamic Meta-Sensor 0x00000001 | status: active | pending flush events 0 
0 direct connections
Previous Registrations:
00:00:03 + 0x00000001 pid=  310 uid= 1000 package=com.android.server.SensorNotificationService samplingPeriod=0us batchingPeriod=0us

rpi3:/system/vendor # dumpsys sensordriverservice 
# nothing

Android O HAL - Treble Architecture

Thing are of particular interests is libandroidthings*.so. That indicates that Android Things is more a platform extension, much less change in scope than the Brillo was set out to do.
total 1068
/system/vendor/lib/
    |- camera.device@1.0-impl.so
    |- camera.device@3.2-impl.so
    |- libalsautils.so
    |- libandroidthings.so
    |- libandroidthings_jni.so
    |- libbt-vendor.so
    |- libdrm.so
    |- libeffects.so
    |- libhwc2on1adapter.so
    |- libkeystore-engine-wifi-hidl.so
    |- libkeystore-wifi-hidl.so
    |- libril.so
    |- libwifi-hal.so
    |- libwpa_client.so
    |- mediadrm
    |- soundfx
    |- hw
        |- android.hardware.audio.effect@2.0-impl.so
        |- android.hardware.audio@2.0-impl.so
        |- android.hardware.bluetooth@1.0-impl.so
        |- android.hardware.boot@1.0-impl.so
        |- android.hardware.camera.provider@2.4-impl.so
        |- android.hardware.gnss@1.0-impl.so
        |- android.hardware.graphics.allocator@2.0-impl.so
        |- android.hardware.graphics.composer@2.1-impl.so
        |- android.hardware.graphics.mapper@2.0-impl.so
        |- android.hardware.keymaster@3.0-impl.so
        |- android.hardware.power@1.0-impl.so
        |- android.hardware.sensors@1.0-impl.so
        |- audio.primary.default.so
        |- audio.r_submix.default.so
        |- audio.usb.default.so
        |- gralloc.default.so
        |- gralloc.gbm.so
        |- local_time.default.so
        |- power.default.so
rpi3:/system/vendor/bin/hw # ls -l
root      shell      android.hardware.audio@2.0-service
bluetooth bluetooth  android.hardware.bluetooth@1.0-service
root      shell      android.hardware.boot@1.0-service
root      shell      android.hardware.configstore@1.0-service
root      shell      android.hardware.graphics.allocator@2.0-service
root      shell      android.hardware.graphics.composer@2.1-service
root      shell      android.hardware.keymaster@3.0-service
root      shell      android.hardware.media.omx@1.0-service
root      shell      android.hardware.power@1.0-service
root      shell      android.hardware.sensors@1.0-service
root      shell      android.hardware.usb@1.0-service
wifi      wifi       android.hardware.wifi@1.0-service
root      shell      wpa_supplicant