Android Thingsのディベロッパーリリースが出たので起動してみた
標準添付だと、画像がデカくならないな→
残念。
すでにやっている人がいるので、だいぶ二番煎じ。
Android ThingsというヤツがRaspberry Piにやってきた(環境セットアップまで) - へもろぐ
http://sh1k1ya.hatenablog.com/entry/2016/12/14/Android_Things%E3%81%A8%E3%81%84%E3%81%86%E3%83%A4%E3%83%84%E3%81%8CRaspberry_Pi%E3%81%AB%E3%82%84%E3%81%A3%E3%81%A6%E3%81%8D%E3%81%9F%EF%BC%88%E7%92%B0%E5%A2%83%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2
thingsってなんだろ。
Brilloとかどーなったの?名前変えただけ?
firebase必須な感じで模様替え?
Weaveは生きててthingsに含まれている感じ。
ターゲットハードのサンプルは、既存のボードを使うようになっている。
Intel Edison、NXP Pico i.MX6UL、Raspberry Pi 3向けの各システムイメージが提供されている。
数カ月後には正式版に移行する予定だそう。
これは、Googleではリファレンスハードやるつもりはないですって意味なんだろうな。
それでも、OTAでアップデートを提供するってのはすごい。
一石アンプさんに借りたRaspi3が手元にあったので試してみる。
Raspberry Pi 3 | Android Things
https://developer.android.com/things/hardware/raspberrypi.html
必要なのは、8GBのmicroSDとRaspi3。
イメージをダウンロードする。
System Image Downloads | Android Things
https://developer.android.com/things/preview/download.html
androidthings_rpi3_devpreview_1.zip
268 MB
sha1sum: 911227a3c658bf74695118df9156cb20714f79d3
Download Android Thingsという画面が出る。内容を読んで、" I have read and agree with the above terms and conditions" にチェックを入れ、ダウンロードボタンを押す。
$ shasum androidthings_rpi3_devpreview_1.zip 911227a3c658bf74695118df9156cb20714f79d3 androidthings_rpi3_devpreview_1.zip
zipを展開。
$ unzip androidthings_rpi3_devpreview_1.zip Archive: androidthings_rpi3_devpreview_1.zip warning [androidthings_rpi3_devpreview_1.zip]: 76 extra bytes at beginning or within zipfile (attempting to process anyway) error [androidthings_rpi3_devpreview_1.zip]: reported length of central directory is -76 bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1 zipfile?). Compensating... skipping: iot_rpi3.img need PK compat. v4.5 (can do v2.1) note: didn't find end-of-central-dir signature at end of central dir. (please check that you have transferred or created the zipfile in the appropriate BINARY mode and that you have compiled UnZip properly)
7zipくさいね。
The Unarchiverで展開する。
4.3GBのiot_rpi3.imgが出てくる。
$ ls -hl iot_rpi3.img -rw-r--r-- 1 kinneko staff 4.3G 12 13 06:21 iot_rpi3.img
8GBのmicroSDに焼く。
$ df | grep /dev/disk5 /dev/disk5s1 15110144 4480 15105664 1% 0 0 100% /Volumes/NO NAME $ diskutil umount /Volumes/"NO NAME" Volume NO NAME on disk5s1 unmounted $ sudo dd if=iot_rpi3.img of=/dev/rdisk5 bs=100m
Raspi3にSDを挿入して起動する。
コンソールが数行出たあとは、スプラッシュスクリーンが出る。
androidthingsと表示。
起動には結構時間かかる。1分以上かかっているのじゃないかな。
スプラッシュスクリーンが終わると、ロゴが画面いっぱいになって、なんか表示がかぶっている。
ソフトウエアのバージョンでも出ているのか?
下には、No WiFi Connectionと、No Ethernet Connectionが表示されている。
さらに下には、developer.android.com/thingsが薄く出ている。
NICにケーブルを差し込んでみたら、しばらくして、Ethernet IP: 192.168.51.86と出た。
Androidベースとはいえ、スプラッシュを残すとか、意味がよくわからない。
thingsという割にはインプリが高級な感じ。
adbはネットワークからつなげるようだ。
OTGないから、USBからは接続できない感じ?
androidベースのメリットないな...
つなげる。
$ ./adb connect 192.168.51.86 connected to 192.168.51.86:5555 $ ./adb devices List of devices attached 192.168.51.86:5555 device
Raspiの場合は、mdnsが動作しているので、Android.localでも引けるらしい。
$ dns-sd -G v4 Android.local DATE: ---Wed 14 Dec 2016--- 16:44:11.157 ...STARTING... Timestamp A/R Flags if Hostname Address TTL 16:44:11.158 Add 2 4 Android.local. 192.168.51.86 120
名前のアナウンスしかないね。
シェル起動して、中の見学。
$ ./adb shell rpi3:/ $ ls acct fstab.rpi3 mnt sepolicy cache gapps oem service_contexts charger init postinstall storage config init.environ.rc proc sys d init.rc property_contexts system data init.rpi3.rc root ueventd.rc default.prop init.usb.configfs.rc sbin ueventd.rpi3.rc dev init.usb.rc sdcard vendor etc init.zygote32.rc seapp_contexts file_contexts.bin lost+found selinux_version rpi3:/ $ uname -a Linux localhost 4.4.19-v7+ #1 SMP PREEMPT Mon Dec 12 21:14:20 UTC 2016 armv7l rpi3:/ $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 507848 406996 90368 82% / tmpfs 381248 444 380804 1% /dev tmpfs 381248 0 381248 0% /mnt /dev/block/mmcblk0p15 2539312 69024 2453904 3% /data /dev/block/mmcblk0p11 28144 52 27440 1% /oem /dev/block/mmcblk0p13 253920 156820 91860 64% /gapps /dev/fuse 2539312 69024 2453904 3% /storage/emulated
書けそうなのはdataかな?
rpi3:/ $ ls /data/ ls: /data/: Permission denied
あら残念。
なら、storageは?
rpi3:/ $ cd storage rpi3:/storage $ ls -l total 8 drwx--x--x 4 root sdcard_rw 4096 1970-01-01 00:01 emulated drwxr-xr-x 2 root root 60 1970-01-01 00:00 self rpi3:/storage $ touch test touch: 'test': Permission denied
ダメか。
sdcardには何か書けそう。
rpi3:/ $ ls -l /mnt/ total 0 drwx--x--x 2 root root 40 1970-01-01 00:00 appfuse drwxr-xr-x 2 root system 40 1970-01-01 00:00 asec drwxrwx--x 2 system system 40 1970-01-01 00:00 expand drwxr-x--- 2 root media_rw 40 1970-01-01 00:00 media_rw drwxr-xr-x 2 root system 40 1970-01-01 00:00 obb drwx------ 5 root root 100 1970-01-01 00:00 runtime lrwxrwxrwx 1 root root 21 1970-01-01 00:00 sdcard -> /storage/self/primary drwx------ 3 root root 60 1970-01-01 00:00 secure drwxr-xr-x 3 root root 60 1970-01-01 00:00 user
rpi3:/ $ ls -l /sdcard/ total 80 drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Alarms drwxrwx--x 3 root sdcard_rw 4096 1970-01-01 00:03 Android drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 DCIM drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Download drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Movies drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Music drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Notifications drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Pictures drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Podcasts drwxrwx--x 2 root sdcard_rw 4096 1970-01-01 00:01 Ringtones
rpi3:/ $ touch /sdcard/DCIM/test rpi3:/ $ ls -l /sdcard/DCIM/test -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:01 /sdcard/DCIM/test
書けた。
わりと普通のAndroidだな。
gappsには、なんか入ってる。
rpi3:/ $ ls /gapps/ lost+found priv-app
スクリーンキャプチャしてみるが、ダメぽ。
rpi3:/ $ screencap -p /sdcard/DCIM/screen.png rpi3:/ $ ls -l /sdcard/DCIM/screen.png -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:02 /sdcard/DCIM/screen.png
ファイルはできるけど、サイズゼロ。
rpi3:/ $ screencap -p -d 1 /sdcard/DCIM/screen1.png Unable to get handle for display 1 rpi3:/ $ screencap -p -d 0 /sdcard/DCIM/screen0.png rpi3:/ $ ls -l /sdcard/DCIM/screen* -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:02 /sdcard/DCIM/screen.png -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:04 /sdcard/DCIM/screen0.png -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:04 /sdcard/DCIM/screen1.png rpi3:/ $ screencap -p /sdcard/DCIM/screen.raw rpi3:/ $ ls -l /sdcard/DCIM/screen.raw -rw-rw---- 1 root sdcard_rw 0 2016-12-14 08:07 /sdcard/DCIM/screen.raw
rpi3:/ $ cat /dev/graphics/fb0 > /sdcard/DCIM/screen.raw /system/bin/sh: cat: /dev/graphics/fb0: Permission denied $ ./adb pull /dev/graphics/fb0 adb: error: failed to copy '/dev/graphics/fb0' to './fb0': open failed: Permission denied
当たり前か。
動画はどうだ?
rpi3:/ $ screenrecord --verbose /sdcard/DCIM/screen.mp4 Main display is 1824x984 @60.00fps (orientation=0) Configuring recorder for 1824x984 video/avc at 4.00Mbps Content area is 1823x984 at offset x=0 y=0 ^CEncoder stopping; recorded 1 frames in 10 seconds Stopping encoder and muxer Executing: /system/bin/am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///sdcard/DCIM/screen.mp4 Broadcasting: Intent { act=android.intent.action.MEDIA_SCANNER_SCAN_FILE dat=file:///sdcard/DCIM/screen.mp4 } Broadcast completed: result=0 rpi3:/ $ ls -l /sdcard/DCIM/screen.mp4 -rw-rw---- 1 root sdcard_rw 26408 2016-12-14 08:14 /sdcard/DCIM/screen.mp4
なんかできてる。
$ ./adb pull /sdcard/DCIM/screen.mp4 [100%] /sdcard/DCIM/screen.mp4
init.rcを見る。
なげーよ。
起動に時間かかるわけだ。
rpi3:/ $ cat init.rc # Copyright (C) 2012 The Android Open Source Project # # IMPORTANT: Do not create world writable files or directories. # This is a common source of Android security bugs. # import /init.environ.rc import /init.usb.rc import /init.${ro.hardware}.rc import /init.usb.configfs.rc import /init.${ro.zygote}.rc on early-init # Set init and its forked children's oom_adj. write /proc/1/oom_score_adj -1000 # Disable sysrq from keyboard write /proc/sys/kernel/sysrq 0 # Set the security context of /adb_keys if present. restorecon /adb_keys # Shouldn't be necessary, but sdcard won't start without it. http://b/22568628. mkdir /mnt 0775 root system # Set the security context of /postinstall if present. restorecon /postinstall start ueventd on init sysclktz 0 # Mix device-specific information into the entropy pool copy /proc/cmdline /dev/urandom copy /default.prop /dev/urandom # Backward compatibility. symlink /system/etc /etc symlink /sys/kernel/debug /d # Link /vendor to /system/vendor for devices without a vendor partition. symlink /system/vendor /vendor # Mount cgroup mount point for cpu accounting mount cgroup none /acct cpuacct mkdir /acct/uid # Create energy-aware scheduler tuning nodes mkdir /dev/stune mount cgroup none /dev/stune schedtune mkdir /dev/stune/foreground chown system system /dev/stune chown system system /dev/stune/foreground chown system system /dev/stune/tasks chown system system /dev/stune/foreground/tasks chmod 0664 /dev/stune/tasks chmod 0664 /dev/stune/foreground/tasks # Mount staging areas for devices managed by vold # See storage config details at http://source.android.com/tech/storage/ mount tmpfs tmpfs /mnt mode=0755,uid=0,gid=1000 restorecon_recursive /mnt mount configfs none /config chmod 0775 /config/sdcardfs chown system package_info /config/sdcardfs mkdir /mnt/secure 0700 root root mkdir /mnt/secure/asec 0700 root root mkdir /mnt/asec 0755 root system mkdir /mnt/obb 0755 root system mkdir /mnt/media_rw 0750 root media_rw mkdir /mnt/user 0755 root root mkdir /mnt/user/0 0755 root root mkdir /mnt/expand 0771 system system mkdir /mnt/appfuse 0711 root root # Storage views to support runtime permissions mkdir /mnt/runtime 0700 root root mkdir /mnt/runtime/default 0755 root root mkdir /mnt/runtime/default/self 0755 root root mkdir /mnt/runtime/read 0755 root root mkdir /mnt/runtime/read/self 0755 root root mkdir /mnt/runtime/write 0755 root root mkdir /mnt/runtime/write/self 0755 root root # Symlink to keep legacy apps working in multi-user world symlink /storage/self/primary /sdcard symlink /storage/self/primary /mnt/sdcard symlink /mnt/user/0/primary /mnt/runtime/default/self/primary # root memory control cgroup, used by lmkd mkdir /dev/memcg 0700 root system mount cgroup none /dev/memcg memory # app mem cgroups, used by activity manager, lmkd and zygote mkdir /dev/memcg/apps/ 0755 system system write /proc/sys/kernel/panic_on_oops 1 write /proc/sys/kernel/hung_task_timeout_secs 0 write /proc/cpu/alignment 4 # scheduler tunables # Disable auto-scaling of scheduler tunables with hotplug. The tunables # will vary across devices in unpredictable ways if allowed to scale with # cpu cores. write /proc/sys/kernel/sched_tunable_scaling 0 write /proc/sys/kernel/sched_latency_ns 10000000 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000 write /proc/sys/kernel/sched_compat_yield 1 write /proc/sys/kernel/sched_child_runs_first 0 write /proc/sys/kernel/randomize_va_space 2 write /proc/sys/kernel/kptr_restrict 2 write /proc/sys/vm/mmap_min_addr 32768 write /proc/sys/net/ipv4/ping_group_range "0 2147483647" write /proc/sys/net/unix/max_dgram_qlen 600 write /proc/sys/kernel/sched_rt_runtime_us 950000 write /proc/sys/kernel/sched_rt_period_us 1000000 # reflect fwmark from incoming packets onto generated replies write /proc/sys/net/ipv4/fwmark_reflect 1 write /proc/sys/net/ipv6/fwmark_reflect 1 # set fwmark on accepted sockets write /proc/sys/net/ipv4/tcp_fwmark_accept 1 # disable icmp redirects write /proc/sys/net/ipv4/conf/all/accept_redirects 0 write /proc/sys/net/ipv6/conf/all/accept_redirects 0 # Create cgroup mount points for process groups mkdir /dev/cpuctl mount cgroup none /dev/cpuctl cpu chown system system /dev/cpuctl chown system system /dev/cpuctl/tasks chmod 0666 /dev/cpuctl/tasks write /dev/cpuctl/cpu.shares 1024 write /dev/cpuctl/cpu.rt_runtime_us 800000 write /dev/cpuctl/cpu.rt_period_us 1000000 mkdir /dev/cpuctl/bg_non_interactive chown system system /dev/cpuctl/bg_non_interactive/tasks chmod 0666 /dev/cpuctl/bg_non_interactive/tasks # 5.0 % write /dev/cpuctl/bg_non_interactive/cpu.shares 52 write /dev/cpuctl/bg_non_interactive/cpu.rt_runtime_us 700000 write /dev/cpuctl/bg_non_interactive/cpu.rt_period_us 1000000 # sets up initial cpusets for ActivityManager mkdir /dev/cpuset mount cpuset none /dev/cpuset # this ensures that the cpusets are present and usable, but the device's # init.rc must actually set the correct cpus mkdir /dev/cpuset/foreground write /dev/cpuset/foreground/cpus 0 write /dev/cpuset/foreground/mems 0 mkdir /dev/cpuset/foreground/boost write /dev/cpuset/foreground/boost/cpus 0 write /dev/cpuset/foreground/boost/mems 0 mkdir /dev/cpuset/background write /dev/cpuset/background/cpus 0 write /dev/cpuset/background/mems 0 # system-background is for system tasks that should only run on # little cores, not on bigs # to be used only by init, so don't change system-bg permissions mkdir /dev/cpuset/system-background write /dev/cpuset/system-background/cpus 0 write /dev/cpuset/system-background/mems 0 mkdir /dev/cpuset/top-app write /dev/cpuset/top-app/cpus 0 write /dev/cpuset/top-app/mems 0 # change permissions for all cpusets we'll touch at runtime chown system system /dev/cpuset chown system system /dev/cpuset/foreground chown system system /dev/cpuset/foreground/boost chown system system /dev/cpuset/background chown system system /dev/cpuset/system-background chown system system /dev/cpuset/top-app chown system system /dev/cpuset/tasks chown system system /dev/cpuset/foreground/tasks chown system system /dev/cpuset/foreground/boost/tasks chown system system /dev/cpuset/background/tasks chown system system /dev/cpuset/system-background/tasks chown system system /dev/cpuset/top-app/tasks # set system-background to 0775 so SurfaceFlinger can touch it chmod 0775 /dev/cpuset/system-background chmod 0664 /dev/cpuset/foreground/tasks chmod 0664 /dev/cpuset/foreground/boost/tasks chmod 0664 /dev/cpuset/background/tasks chmod 0664 /dev/cpuset/system-background/tasks chmod 0664 /dev/cpuset/top-app/tasks chmod 0664 /dev/cpuset/tasks # qtaguid will limit access to specific data based on group memberships. # net_bw_acct grants impersonation of socket owners. # net_bw_stats grants access to other apps' detailed tagged-socket stats. chown root net_bw_acct /proc/net/xt_qtaguid/ctrl chown root net_bw_stats /proc/net/xt_qtaguid/stats # Allow everybody to read the xt_qtaguid resource tracking misc dev. # This is needed by any process that uses socket tagging. chmod 0644 /dev/xt_qtaguid # Create location for fs_mgr to store abbreviated output from filesystem # checker programs. mkdir /dev/fscklogs 0770 root system # pstore/ramoops previous console log mount pstore pstore /sys/fs/pstore chown system log /sys/fs/pstore/console-ramoops chmod 0440 /sys/fs/pstore/console-ramoops chown system log /sys/fs/pstore/pmsg-ramoops-0 chmod 0440 /sys/fs/pstore/pmsg-ramoops-0 # enable armv8_deprecated instruction hooks write /proc/sys/abi/swp 1 # Linux's execveat() syscall may construct paths containing /dev/fd # expecting it to point to /proc/self/fd symlink /proc/self/fd /dev/fd # Healthd can trigger a full boot from charger mode by signaling this # property when the power button is held. on property:sys.boot_from_charger_mode=1 class_stop charger trigger late-init # Load properties from /system/ + /factory after fs mount. on load_system_props_action load_system_props on load_persist_props_action load_persist_props start logd start logd-reinit # Indicate to fw loaders that the relevant mounts are up. on firmware_mounts_complete rm /dev/.booting # Mount filesystems and start core system services. on late-init trigger early-fs trigger fs trigger post-fs # Load properties from /system/ + /factory after fs mount. Place # this in another action so that the load will be scheduled after the prior # issued fs triggers have completed. trigger load_system_props_action # Now we can mount /data. File encryption requires keymaster to decrypt # /data, which in turn can only be loaded when system properties are present trigger post-fs-data trigger load_persist_props_action # Remove a file to wake up anything waiting for firmware. trigger firmware_mounts_complete trigger early-boot trigger boot on post-fs start logd # once everything is setup, no need to modify / mount rootfs rootfs / ro remount # Mount shared so changes propagate into child namespaces mount rootfs rootfs / shared rec # Mount default storage into root namespace mount none /mnt/runtime/default /storage slave bind rec # Make sure /sys/kernel/debug (if present) is labeled properly restorecon_recursive /sys/kernel/debug # We chown/chmod /cache again so because mount is run as root + defaults chown system cache /cache chmod 0770 /cache # We restorecon /cache in case the cache partition has been reset. restorecon_recursive /cache # Create /cache/recovery in case it's not there. It'll also fix the odd # permissions if created by the recovery system. mkdir /cache/recovery 0770 system cache # Backup/restore mechanism uses the cache partition mkdir /cache/backup_stage 0700 system system mkdir /cache/backup 0700 system system #change permissions on vmallocinfo so we can grab it from bugreports chown root log /proc/vmallocinfo chmod 0440 /proc/vmallocinfo chown root log /proc/slabinfo chmod 0440 /proc/slabinfo #change permissions on kmsg & sysrq-trigger so bugreports can grab kthread stacks chown root system /proc/kmsg chmod 0440 /proc/kmsg chown root system /proc/sysrq-trigger chmod 0220 /proc/sysrq-trigger chown system log /proc/last_kmsg chmod 0440 /proc/last_kmsg # make the selinux kernel policy world-readable chmod 0444 /sys/fs/selinux/policy # create the lost+found directories, so as to enforce our permissions mkdir /cache/lost+found 0770 root root on post-fs-data # We chown/chmod /data again so because mount is run as root + defaults chown system system /data chmod 0771 /data # We restorecon /data in case the userdata partition has been reset. restorecon /data # start debuggerd to make debugging early-boot crashes easier. start debuggerd start debuggerd64 # Make sure we have the device encryption key. start vold installkey /data # Start bootcharting as soon as possible after the data partition is # mounted to collect more data. mkdir /data/bootchart 0755 shell shell bootchart_init # Avoid predictable entropy pool. Carry over entropy from previous boot. copy /data/system/entropy.dat /dev/urandom # create basic filesystem structure mkdir /data/misc 01771 system misc mkdir /data/misc/bluedroid 02770 bluetooth net_bt_stack # Fix the access permissions and group ownership for 'bt_config.conf' chmod 0660 /data/misc/bluedroid/bt_config.conf chown bluetooth net_bt_stack /data/misc/bluedroid/bt_config.conf mkdir /data/misc/bluetooth 0770 system system mkdir /data/misc/keystore 0700 keystore keystore mkdir /data/misc/gatekeeper 0700 system system mkdir /data/misc/keychain 0771 system system mkdir /data/misc/net 0750 root shell mkdir /data/misc/radio 0770 system radio mkdir /data/misc/sms 0770 system radio mkdir /data/misc/zoneinfo 0775 system system mkdir /data/misc/vpn 0770 system vpn mkdir /data/misc/shared_relro 0771 shared_relro shared_relro mkdir /data/misc/systemkeys 0700 system system mkdir /data/misc/wifi 0770 wifi wifi mkdir /data/misc/wifi/sockets 0770 wifi wifi mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi mkdir /data/misc/ethernet 0770 system system mkdir /data/misc/dhcp 0770 dhcp dhcp mkdir /data/misc/user 0771 root root mkdir /data/misc/perfprofd 0775 root root # give system access to wpa_supplicant.conf for backup and restore chmod 0660 /data/misc/wifi/wpa_supplicant.conf mkdir /data/local 0751 root root mkdir /data/misc/media 0700 media media mkdir /data/misc/audioserver 0700 audioserver audioserver mkdir /data/misc/cameraserver 0700 cameraserver cameraserver mkdir /data/misc/vold 0700 root root mkdir /data/misc/boottrace 0771 system shell mkdir /data/misc/update_engine 0700 root root mkdir /data/misc/trace 0700 root root # profile file layout mkdir /data/misc/profiles 0771 system system mkdir /data/misc/profiles/cur 0771 system system mkdir /data/misc/profiles/ref 0771 system system mkdir /data/misc/profman 0770 system shell # For security reasons, /data/local/tmp should always be empty. # Do not place files or directories in /data/local/tmp mkdir /data/local/tmp 0771 shell shell mkdir /data/data 0771 system system mkdir /data/app-private 0771 system system mkdir /data/app-ephemeral 0771 system system mkdir /data/app-asec 0700 root root mkdir /data/app-lib 0771 system system mkdir /data/app 0771 system system mkdir /data/property 0700 root root mkdir /data/tombstones 0771 system system # create dalvik-cache, so as to enforce our permissions mkdir /data/dalvik-cache 0771 root root # create the A/B OTA directory, so as to enforce our permissions mkdir /data/ota 0771 root root # create resource-cache and double-check the perms mkdir /data/resource-cache 0771 system system chown system system /data/resource-cache chmod 0771 /data/resource-cache # create the lost+found directories, so as to enforce our permissions mkdir /data/lost+found 0770 root root # create directory for DRM plug-ins - give drm the read/write access to # the following directory. mkdir /data/drm 0770 drm drm # create directory for MediaDrm plug-ins - give drm the read/write access to # the following directory. mkdir /data/mediadrm 0770 mediadrm mediadrm mkdir /data/anr 0775 system system # symlink to bugreport storage location rm /data/bugreports symlink /data/user_de/0/com.android.shell/files/bugreports /data/bugreports # Separate location for storing security policy files on data mkdir /data/security 0711 system system # Create all remaining /data root dirs so that they are made through init # and get proper encryption policy installed mkdir /data/backup 0700 system system mkdir /data/ss 0700 system system mkdir /data/system 0775 system system mkdir /data/system/heapdump 0700 system system mkdir /data/system/users 0775 system system mkdir /data/system_de 0770 system system mkdir /data/system_ce 0770 system system mkdir /data/misc_de 01771 system misc mkdir /data/misc_ce 01771 system misc mkdir /data/user 0711 system system mkdir /data/user_de 0711 system system symlink /data/data /data/user/0 mkdir /data/media 0770 media_rw media_rw mkdir /data/media/obb 0770 media_rw media_rw init_user0 # Reload policy from /data/security if present. setprop selinux.reload_policy 1 # Set SELinux security contexts on upgrade or policy update. restorecon_recursive /data # Check any timezone data in /data is newer than the copy in /system, delete if not. exec - system system -- /system/bin/tzdatacheck /system/usr/share/zoneinfo /data/misc/zoneinfo # If there is no fs-post-data action in the init.<device>.rc file, you # must uncomment this line, otherwise encrypted filesystems # won't work. # Set indication (checked by vold) that we have finished this action #setprop vold.post_fs_data_done 1 on boot # basic network init ifup lo hostname localhost domainname localdomain # set RLIMIT_NICE to allow priorities from 19 to -20 setrlimit 13 40 40 # Memory management. Basic kernel parameters, and allow the high # level system server to be able to adjust the kernel OOM driver # parameters to match how it is managing things. write /proc/sys/vm/overcommit_memory 1 write /proc/sys/vm/min_free_order_shift 4 chown root system /sys/module/lowmemorykiller/parameters/adj chmod 0664 /sys/module/lowmemorykiller/parameters/adj chown root system /sys/module/lowmemorykiller/parameters/minfree chmod 0664 /sys/module/lowmemorykiller/parameters/minfree # Tweak background writeout write /proc/sys/vm/dirty_expire_centisecs 200 write /proc/sys/vm/dirty_background_ratio 5 # Permissions for System Server and daemons. chown radio system /sys/android_power/state chown radio system /sys/android_power/request_state chown radio system /sys/android_power/acquire_full_wake_lock chown radio system /sys/android_power/acquire_partial_wake_lock chown radio system /sys/android_power/release_wake_lock chown system system /sys/power/autosleep chown system system /sys/power/state chown system system /sys/power/wakeup_count chown radio wakelock /sys/power/wake_lock chown radio wakelock /sys/power/wake_unlock chmod 0660 /sys/power/state chmod 0660 /sys/power/wake_lock chmod 0660 /sys/power/wake_unlock chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_rate chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/timer_slack chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/target_loads chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay chown system system /sys/devices/system/cpu/cpufreq/interactive/boost chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boost chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/input_boost chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy chmod 0660 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy # Assume SMP uses shared cpufreq policy for all CPUs chown system system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chmod 0660 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq chown system system /sys/class/timed_output/vibrator/enable chown system system /sys/class/leds/keyboard-backlight/brightness chown system system /sys/class/leds/lcd-backlight/brightness chown system system /sys/class/leds/button-backlight/brightness chown system system /sys/class/leds/jogball-backlight/brightness chown system system /sys/class/leds/red/brightness chown system system /sys/class/leds/green/brightness chown system system /sys/class/leds/blue/brightness chown system system /sys/class/leds/red/device/grpfreq chown system system /sys/class/leds/red/device/grppwm chown system system /sys/class/leds/red/device/blink chown system system /sys/class/timed_output/vibrator/enable chown system system /sys/module/sco/parameters/disable_esco chown system system /sys/kernel/ipv4/tcp_wmem_min chown system system /sys/kernel/ipv4/tcp_wmem_def chown system system /sys/kernel/ipv4/tcp_wmem_max chown system system /sys/kernel/ipv4/tcp_rmem_min chown system system /sys/kernel/ipv4/tcp_rmem_def chown system system /sys/kernel/ipv4/tcp_rmem_max chown root radio /proc/cmdline # Define default initial receive window size in segments. setprop net.tcp.default_init_rwnd 60 class_start core on nonencrypted # A/B update verifier that marks a successful boot. exec - root -- /system/bin/update_verifier nonencrypted class_start main class_start late_start on property:sys.init_log_level=* loglevel ${sys.init_log_level} on charger class_start charger on property:vold.decrypt=trigger_reset_main class_reset main on property:vold.decrypt=trigger_load_persist_props load_persist_props start logd start logd-reinit on property:vold.decrypt=trigger_post_fs_data trigger post-fs-data on property:vold.decrypt=trigger_restart_min_framework # A/B update verifier that marks a successful boot. exec - root -- /system/bin/update_verifier trigger_restart_min_framework class_start main on property:vold.decrypt=trigger_restart_framework # A/B update verifier that marks a successful boot. exec - root -- /system/bin/update_verifier trigger_restart_framework class_start main class_start late_start on property:vold.decrypt=trigger_shutdown_framework class_reset late_start class_reset main on property:sys.powerctl=* powerctl ${sys.powerctl} # system server cannot write to /proc/sys files, # and chown/chmod does not work for /proc/sys/ entries. # So proxy writes through init. on property:sys.sysctl.extra_free_kbytes=* write /proc/sys/vm/extra_free_kbytes ${sys.sysctl.extra_free_kbytes} # "tcp_default_init_rwnd" Is too long! on property:sys.sysctl.tcp_def_init_rwnd=* write /proc/sys/net/ipv4/tcp_default_init_rwnd ${sys.sysctl.tcp_def_init_rwnd} on property:security.perf_harden=0 write /proc/sys/kernel/perf_event_paranoid 1 on property:security.perf_harden=1 write /proc/sys/kernel/perf_event_paranoid 3 ## Daemon processes to be run by init. ## service ueventd /sbin/ueventd class core critical seclabel u:r:ueventd:s0 service healthd /sbin/healthd class core critical seclabel u:r:healthd:s0 group root system wakelock service console /system/bin/sh class core console disabled user shell group shell log readproc seclabel u:r:shell:s0 on property:ro.debuggable=1 # Give writes to anyone for the trace folder on debug builds. # The folder is used to store method traces. chmod 0773 /data/misc/trace start console service flash_recovery /system/bin/install-recovery.sh class main oneshot
rpi3:/ $ cat init.rpi3.rc # # Copyright 2016 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # on fs mount_all /fstab.${ro.hardware} service dhcpcd_wlan0 /system/bin/dhcpcd -dABKL group dhcp disabled oneshot service wpa_supplicant /system/bin/wpa_supplicant \ -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -I/system/etc/wifi/wpa_supplicant_overlay.conf \ -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot
dmesgしてみると、こんなのがあった。
[ 1.960785] IR NEC protocol handler initialized [ 1.960806] IR RC5(x/sz) protocol handler initialized [ 1.960826] IR RC6 protocol handler initialized [ 1.960845] IR JVC protocol handler initialized [ 1.960864] IR Sony protocol handler initialized [ 1.960883] IR SANYO protocol handler initialized [ 1.960903] IR Sharp protocol handler initialized [ 1.960924] IR MCE Keyboard/mouse protocol handler initialized [ 1.960943] IR XMP protocol handler initialized
赤外制御に対応している模様。
長いけど、全部つけとくか。
rpi3:/ $ dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.4.19-v7+ (android-build@vpeb11.mtv.corp.google.com) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Mon Dec 12 21:14:20 UTC 2016 [ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine model: Raspberry Pi 3 Model B Rev 1.2 [ 0.000000] Truncating RAM at 0x00000000-0x3b000000 to -0x30000000 [ 0.000000] Consider using a HIGHMEM enabled kernel. [ 0.000000] cma: Reserved 8 MiB at 0x2f400000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] On node 0 totalpages: 196608 [ 0.000000] free_area_init_node: node 0, pgdat c10a1640, node_mem_map eed40000 [ 0.000000] Normal zone: 1728 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 196608 pages, LIFO batch:31 [ 0.000000] [bcm2709_smp_init_cpus] enter (1015a0->f3003010) [ 0.000000] [bcm2709_smp_init_cpus] ncores=4 [ 0.000000] PERCPU: Embedded 11 pages/cpu @effb6000 s23232 r0 d21824 u45056 [ 0.000000] pcpu-alloc: s23232 r0 d21824 u45056 alloc=11*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 194880 [ 0.000000] Kernel command line: 8250.nr_uarts=1 dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1824 bcm2708_fb.fbheight=984 bcm2709.boardrev=0xa02082 bcm2709.serial=0x9e199182 smsc95xx.macaddr=B8:27:EB:19:91:82 bcm2708_fb.fbdepth=16 bcm2708_fb.fbswap=1 bcm2709.uart_clock=48000000 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 root=/dev/mmcblk0p6 androidboot.slot_suffix=_a ro rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait earlyprintk init=/init androidboot.hardware=rpi3 noinitrd androidboot.selinux=permissive [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 753284K/786432K available (10956K kernel code, 681K rwdata, 2696K rodata, 1024K init, 880K bss, 24956K reserved, 8192K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB) [ 0.000000] .text : 0xc0008000 - 0xc0e553f0 (14645 kB) [ 0.000000] .init : 0xc0f00000 - 0xc1000000 (1024 kB) [ 0.000000] .data : 0xc1000000 - 0xc10aa7f4 ( 682 kB) [ 0.000000] .bss : 0xc10ad000 - 0xc118903c ( 881 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] Build-time adjustment of leaf fanout to 32. [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] Architected cp15 timer(s) running at 19.20MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns [ 0.000009] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns [ 0.000028] Switching to timer-based delay loop, resolution 52ns [ 0.000198] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) [ 0.000227] pid_max: default: 32768 minimum: 301 [ 0.000336] Security Framework initialized [ 0.000357] SELinux: Initializing. [ 0.000411] SELinux: Starting in permissive mode [ 0.000673] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000693] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.001852] Disabling cpuset control group subsystem [ 0.001891] Initializing cgroup subsys io [ 0.001925] Initializing cgroup subsys memory [ 0.001976] Initializing cgroup subsys devices [ 0.002002] Initializing cgroup subsys freezer [ 0.002027] Initializing cgroup subsys debug [ 0.002094] CPU: Testing write buffer coherency: ok [ 0.002165] ftrace: allocating 30779 entries in 91 pages [ 0.082942] CPU0: update cpu_capacity 1024 [ 0.082977] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.082993] [bcm2709_smp_prepare_cpus] enter [ 0.083131] Setting up static identity map for 0x100000 - 0x100034 [ 0.162347] [bcm2709_boot_secondary] cpu:1 started (0) 17 [ 0.162527] [bcm2709_secondary_init] enter cpu:1 [ 0.162567] CPU1: update cpu_capacity 1024 [ 0.162575] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.192392] [bcm2709_boot_secondary] cpu:2 started (0) 16 [ 0.192541] [bcm2709_secondary_init] enter cpu:2 [ 0.192563] CPU2: update cpu_capacity 1024 [ 0.192571] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002 [ 0.222450] [bcm2709_boot_secondary] cpu:3 started (0) 16 [ 0.222589] [bcm2709_secondary_init] enter cpu:3 [ 0.222611] CPU3: update cpu_capacity 1024 [ 0.222618] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003 [ 0.222692] Brought up 4 CPUs [ 0.222720] SMP: Total of 4 processors activated (153.60 BogoMIPS). [ 0.222731] CPU: All CPU(s) started in HYP mode. [ 0.222741] CPU: Virtualization extensions available. [ 0.223787] devtmpfs: initialized [ 0.240062] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4 [ 0.240471] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.241274] pinctrl core: initialized pinctrl subsystem [ 0.241916] NET: Registered protocol family 16 [ 0.248095] DMA: preallocated 4096 KiB pool for atomic coherent allocations [ 0.258795] bcm2709: Mini UART enabled [ 0.258848] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [ 0.258861] hw-breakpoint: maximum watchpoint size is 8 bytes. [ 0.259030] Serial: AMBA PL011 UART driver [ 0.259211] uart-pl011 3f201000.uart: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe [ 0.259416] bcm2835-mbox 3f00b880.mailbox: mailbox enabled [ 0.356015] bcm2835-dma 3f007000.dma: DMA legacy API manager at f3007000, dmachans=0x1 [ 0.356767] SCSI subsystem initialized [ 0.357165] usbcore: registered new interface driver usbfs [ 0.357249] usbcore: registered new interface driver hub [ 0.357371] usbcore: registered new device driver usb [ 0.357602] media: Linux media interface: v0.10 [ 0.357688] Linux video capture interface: v2.00 [ 0.362767] raspberrypi-firmware soc:firmware: Attached to firmware from 2016-09-14 20:00 [ 0.372949] Advanced Linux Sound Architecture Driver Initialized. [ 0.376427] clocksource: Switched to clocksource arch_sys_counter [ 0.470779] FS-Cache: Loaded [ 0.471117] CacheFiles: Loaded [ 0.473095] NET: Registered protocol family 2 [ 0.473917] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.474050] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.474242] TCP: Hash tables configured (established 8192 bind 8192) [ 0.474349] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.474399] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.474691] NET: Registered protocol family 1 [ 0.475154] RPC: Registered named UNIX socket transport module. [ 0.475168] RPC: Registered udp transport module. [ 0.475179] RPC: Registered tcp transport module. [ 0.475190] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.477331] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available [ 0.479052] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.479185] audit: initializing netlink subsys (disabled) [ 0.479246] audit: type=2000 audit(0.439:1): initialized [ 0.496316] VFS: Disk quotas dquot_6.6.0 [ 0.496745] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.499615] FS-Cache: Netfs 'nfs' registered for caching [ 0.500720] NFS: Registering the id_resolver key type [ 0.500774] Key type id_resolver registered [ 0.500787] Key type id_legacy registered [ 0.501142] fuse init (API version 7.23) [ 0.503064] SELinux: Registering netfilter hooks [ 0.509278] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 0.509450] io scheduler noop registered [ 0.509470] io scheduler deadline registered (default) [ 0.509535] io scheduler cfq registered [ 0.511522] clk: couldn't get clock 0 for /soc/pwm@7e20c000 [ 0.513080] BCM2708FB: allocated DMA memory ef800000 [ 0.513111] BCM2708FB: allocated DMA channel 0 @ f3007000 [ 0.514365] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled [ 0.516624] 3f215040.uart: ttyS0 at MMIO 0x3f215040 (irq = 59, base_baud = 50000000) is a 16550 [ 1.512858] bcm2835-rng 3f104000.rng: hwrng registered [ 1.512995] vc-cma: Videocore CMA driver [ 1.513008] vc-cma: vc_cma_base = 0x00000000 [ 1.513019] vc-cma: vc_cma_size = 0x00000000 (0 MiB) [ 1.513031] vc-cma: vc_cma_initial = 0x00000000 (0 MiB) [ 1.513310] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) [ 1.514265] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000 [ 1.533112] brd: module loaded [ 1.543983] loop: module loaded [ 1.545239] vchiq: vchiq_init_state: slot_zero = 0xef880000, is_master = 0 [ 1.546822] Loading iSCSI transport class v2.0-870. [ 1.549937] tun: Universal TUN/TAP device driver, 1.6 [ 1.549952] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> [ 1.550238] PPP generic driver version 2.4.2 [ 1.550501] PPP BSD Compression module registered [ 1.550523] PPP Deflate Compression module registered [ 1.550558] PPP MPPE Compression module registered [ 1.550580] NET: Registered protocol family 24 [ 1.550878] usbcore: registered new interface driver brcmfmac [ 1.550977] usbcore: registered new interface driver asix [ 1.551069] usbcore: registered new interface driver ax88179_178a [ 1.551159] usbcore: registered new interface driver cdc_ether [ 1.551257] usbcore: registered new interface driver smsc95xx [ 1.551347] usbcore: registered new interface driver net1080 [ 1.551438] usbcore: registered new interface driver cdc_subset [ 1.551528] usbcore: registered new interface driver zaurus [ 1.551650] usbcore: registered new interface driver cdc_ncm [ 1.551673] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.551697] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 1.752021] Core Release: 2.80a [ 1.752047] Setting default values for core params [ 1.752082] Finished setting default values for core params [ 1.952485] Using Buffer DMA mode [ 1.952498] Periodic Transfer Interrupt Enhancement - disabled [ 1.952509] Multiprocessor Interrupt Enhancement - disabled [ 1.952520] OTG VER PARAM: 0, OTG VER FLAG: 0 [ 1.952535] Dedicated Tx FIFOs mode [ 1.952870] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xef814000 dma = 0xef814000 len=9024 [ 1.952903] FIQ FSM acceleration enabled for : [ 1.952903] Non-periodic Split Transactions [ 1.952903] Periodic Split Transactions [ 1.952903] High-Speed Isochronous Endpoints [ 1.952903] Interrupt/Control Split Transaction hack enabled [ 1.952930] dwc_otg: Microframe scheduler enabled [ 1.952991] WARN::hcd_init_fiq:413: FIQ on core 1 at 0xc05f47d0 [ 1.953009] WARN::hcd_init_fiq:414: FIQ ASM at 0xc05f4b40 length 36 [ 1.953028] WARN::hcd_init_fiq:439: MPHI regs_base at 0xf0c12000 [ 1.953103] dwc_otg 3f980000.usb: DWC OTG Controller [ 1.953143] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 [ 1.953183] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 [ 1.953238] Init: Port Power? op_state=1 [ 1.953248] Init: Power Port (0) [ 1.953527] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 1.953545] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 1.953560] usb usb1: Product: DWC OTG Controller [ 1.953574] usb usb1: Manufacturer: Linux 4.4.19-v7+ dwc_otg_hcd [ 1.953588] usb usb1: SerialNumber: 3f980000.usb [ 1.954506] hub 1-0:1.0: USB hub found [ 1.954562] hub 1-0:1.0: 1 port detected [ 1.955267] dwc_otg: FIQ enabled [ 1.955280] dwc_otg: NAK holdoff enabled [ 1.955290] dwc_otg: FIQ split-transaction FSM enabled [ 1.955330] Module dwc_common_port init [ 1.955628] usbcore: registered new interface driver usb-storage [ 1.955798] usbcore: registered new interface driver usbserial [ 1.955870] usbcore: registered new interface driver usbserial_generic [ 1.955937] usbserial: USB Serial support registered for generic [ 1.956014] usbcore: registered new interface driver ftdi_sio [ 1.956080] usbserial: USB Serial support registered for FTDI USB Serial Device [ 1.956739] mousedev: PS/2 mouse device common for all mice [ 1.956845] usbcore: registered new interface driver xpad [ 1.956935] usbcore: registered new interface driver usb_acecad [ 1.957024] usbcore: registered new interface driver aiptek [ 1.957120] usbcore: registered new interface driver gtco [ 1.957208] usbcore: registered new interface driver hanwang [ 1.957295] usbcore: registered new interface driver kbtab [ 1.958166] i2c /dev entries driver [ 1.958883] bcm2708_i2c 3f804000.i2c: BSC1 Controller at 0x3f804000 (irq 83) (baudrate 100000) [ 1.960785] IR NEC protocol handler initialized [ 1.960806] IR RC5(x/sz) protocol handler initialized [ 1.960826] IR RC6 protocol handler initialized [ 1.960845] IR JVC protocol handler initialized [ 1.960864] IR Sony protocol handler initialized [ 1.960883] IR SANYO protocol handler initialized [ 1.960903] IR Sharp protocol handler initialized [ 1.960924] IR MCE Keyboard/mouse protocol handler initialized [ 1.960943] IR XMP protocol handler initialized [ 1.978647] gspca_main: v2.14.0 registered [ 1.979838] device-mapper: uevent: version 1.0.3 [ 1.980462] device-mapper: ioctl: 4.34.0-ioctl (2015-10-28) initialised: dm-devel@redhat.com [ 1.980838] bcm2835-cpufreq: min=600000 max=1200000 [ 1.981203] sdhci: Secure Digital Host Controller Interface driver [ 1.981215] sdhci: Copyright(c) Pierre Ossman [ 1.981590] sdhost: log_buf @ ef813000 (ef813000) [ 2.056563] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) [ 2.079076] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0 [ 2.079093] mmc-bcm2835 3f300000.mmc: DMA channel allocated [ 2.113666] mmc0: host does not support reading read-only switch, assuming write-enable [ 2.115677] mmc0: new high speed SDHC card at address 0007 [ 2.116389] mmcblk0: mmc0:0007 SD8GB 7.21 GiB [ 2.116584] sdhci-pltfm: SDHCI platform and OF driver helper [ 2.117096] hidraw: raw HID events driver (C) Jiri Kosina [ 2.121813] usbcore: registered new interface driver usbhid [ 2.121825] usbhid: USB HID core driver [ 2.122239] ashmem: initialized [ 2.125710] u32 classifier [ 2.125725] Actions configured [ 2.125755] Netfilter messages via NETLINK v0.30. [ 2.125875] nf_conntrack version 0.5.0 (11898 buckets, 47592 max) [ 2.127033] ctnetlink v0.93: registering with nfnetlink. [ 2.128213] xt_time: kernel timezone is -0000 [ 2.128819] ip_tables: (C) 2000-2006 Netfilter Core Team [ 2.129129] arp_tables: (C) 2002 David S. Miller [ 2.129212] Initializing XFRM netlink socket [ 2.130933] NET: Registered protocol family 10 [ 2.132096] GPT:Primary header thinks Alt. header is not at the end of the disk. [ 2.132112] GPT:8912895 != 15126527 [ 2.132123] GPT:Alternate GPT header not at the end of the disk. [ 2.132134] GPT:8912895 != 15126527 [ 2.132144] GPT: Use GNU Parted to correct GPT errors. [ 2.132267] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 [ 2.132536] mip6: Mobile IPv6 [ 2.132586] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 2.132875] sit: IPv6 over IPv4 tunneling driver [ 2.134044] NET: Registered protocol family 17 [ 2.134091] NET: Registered protocol family 15 [ 2.134240] Key type dns_resolver registered [ 2.135589] Registering SWP/SWPB emulation handler [ 2.136776] registered taskstats version 1 [ 2.136989] vc-sm: Videocore shared memory driver [ 2.137007] [vc_sm_connected_init]: start [ 2.137564] [vc_sm_connected_init]: end - returning 0 [ 2.138060] 3f201000.uart: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 [ 2.153582] mmc1: queuing unknown CIS tuple 0x80 (2 bytes) [ 2.155168] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 2.156589] Indeed it is in host mode hprt0 = 00021501 [ 2.156771] mmc1: queuing unknown CIS tuple 0x80 (3 bytes) [ 2.159605] mmc1: queuing unknown CIS tuple 0x80 (7 bytes) [ 2.253830] mmc1: new high speed SDIO card at address 0001 [ 2.346524] usb 1-1: new high-speed USB device number 2 using dwc_otg [ 2.346690] Indeed it is in host mode hprt0 = 00001101 [ 2.353880] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Dec 15 2015 18:10:45 version 7.45.41.23 (r606571) FWID 01-cc4eda9c [ 2.375833] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code [ 2.546784] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 [ 2.546795] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 2.548531] hub 1-1:1.0: USB hub found [ 2.548628] hub 1-1:1.0: 5 ports detected [ 2.826457] usb 1-1.1: new high-speed USB device number 3 using dwc_otg [ 2.926718] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 [ 2.926728] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 2.929910] smsc95xx v1.0.4 [ 2.990278] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:19:91:82 [ 3.689988] console [ttyAMA0] enabled [ 3.694603] otg_wakelock_init: No USB transceiver found [ 3.699873] of_cfs_init [ 3.702371] of_cfs_init: OK [ 3.714228] ALSA device list: [ 3.717255] #0: bcm2835 ALSA [ 3.720540] uart-pl011 3f201000.uart: no DMA platform data [ 3.748926] EXT4-fs (mmcblk0p6): mounted filesystem with ordered data mode. Opts: (null) [ 3.757108] VFS: Mounted root (ext4 filesystem) readonly on device 179:6. [ 3.764866] devtmpfs: mounted [ 3.769811] Freeing unused kernel memory: 1024K (c0f00000 - c1000000) [ 3.820337] init: init first stage started! [ 3.845184] SELinux: 2048 avtab hash slots, 6909 rules. [ 3.855323] SELinux: 2048 avtab hash slots, 6909 rules. [ 3.855361] SELinux: 1 users, 2 roles, 671 types, 0 bools, 1 sens, 1024 cats [ 3.855384] SELinux: 63 classes, 6909 rules [ 3.858842] SELinux: Completing initialization. [ 3.858862] SELinux: Setting up existing superblocks. [ 3.908047] audit: type=1403 audit(3.869:2): policy loaded auid=4294967295 ses=4294967295 [ 3.917435] init: (Initializing SELinux non-enforcing took 0.09s.) [ 3.935206] init: init second stage started! [ 3.953056] init: Running restorecon... [ 4.017311] init: waitpid failed: No child processes [ 4.023883] init: (Loading properties from /default.prop took 0.00s.) [ 4.039116] init: (Parsing /init.environ.rc took 0.00s.) [ 4.050829] init: (Parsing /init.usb.rc took 0.01s.) [ 4.056850] init: (Parsing /init.rpi3.rc took 0.00s.) [ 4.065398] init: (Parsing /init.usb.configfs.rc took 0.00s.) [ 4.072295] init: (Parsing /init.zygote32.rc took 0.00s.) [ 4.077799] init: (Parsing /init.rc took 0.05s.) [ 4.084427] init: Starting service 'ueventd'... [ 4.089922] init: Waiting for /dev/.coldboot_done... [ 4.094380] ueventd: ueventd started! [ 4.354335] ueventd: Coldboot took 0.25s. [ 4.361564] init: Waiting for /dev/.coldboot_done took 0.27s. [ 4.382479] audit: type=1400 audit(4.339:3): avc: denied { create } for pid=1 comm="init" name="sdcard" scontext=u:r:init:s0 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=1 [ 4.401573] init: write_file: Unable to open '/proc/sys/kernel/sched_compat_yield': No such file or directory [ 4.414347] init: write_file: Unable to write to '/dev/cpuctl/cpu.shares': Invalid argument [ 4.429335] init: write_file: Unable to open '/proc/sys/abi/swp': No such file or directory [ 4.448656] EXT4-fs (mmcblk0p15): Ignoring removed nomblk_io_submit option [ 5.476985] EXT4-fs (mmcblk0p15): 2 orphan inodes deleted [ 5.482433] EXT4-fs (mmcblk0p15): recovery complete [ 5.952998] EXT4-fs (mmcblk0p15): mounted filesystem with ordered data mode. Opts: errors=remount-ro,nomblk_io_submit [ 5.963826] fs_mgr: check_fs(): mount(/dev/block/platform/soc/3f202000.sdhost/by-name/userdata,/data,ext4)=0: Success [ 6.312623] fs_mgr: check_fs(): unmount(/data) succeeded [ 6.320201] fs_mgr: Running /system/bin/e2fsck on /dev/block/platform/soc/3f202000.sdhost/by-name/userdata [ 6.360529] random: e2fsck: uninitialized urandom read (40 bytes read, 102 bits of entropy available) [ 7.633616] e2fsck: e2fsck 1.42.9 (28-Dec-2013) [ 7.633616] [ 7.639732] e2fsck: Pass 1: Checking inodes, blocks, and sizes [ 7.639732] [ 7.647086] e2fsck: Pass 2: Checking directory structure [ 7.647086] [ 7.653892] e2fsck: Pass 3: Checking directory connectivity [ 7.653892] [ 7.660976] e2fsck: Pass 4: Checking reference counts [ 7.660976] [ 7.667544] e2fsck: Pass 5: Checking group summary information [ 7.667544] [ 7.674872] e2fsck: data: 1278/163840 files (6.5% non-contiguous), 37855/655360 blocks [ 7.674872] [ 7.686635] EXT4-fs (mmcblk0p15): Ignoring removed nomblk_io_submit option [ 7.715157] EXT4-fs (mmcblk0p15): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=panic [ 7.725512] fs_mgr: __mount(source=/dev/block/platform/soc/3f202000.sdhost/by-name/userdata,target=/data,type=ext4)=0 [ 7.748139] EXT4-fs (mmcblk0p11): mounted filesystem with ordered data mode. Opts: (null) [ 7.756449] fs_mgr: __mount(source=/dev/block/platform/soc/3f202000.sdhost/by-name/oem_a,target=/oem,type=ext4)=0 [ 7.778895] EXT4-fs (mmcblk0p13): mounted filesystem with ordered data mode. Opts: (null) [ 7.787197] fs_mgr: __mount(source=/dev/block/platform/soc/3f202000.sdhost/by-name/gapps_a,target=/gapps,type=ext4)=0 [ 7.802016] init: (Parsing /system/etc/init/atrace.rc took 0.00s.) [ 7.809337] init: (Parsing /system/etc/init/audioserver.rc took 0.00s.) [ 7.816901] init: (Parsing /system/etc/init/bootanim.rc took 0.00s.) [ 7.824349] init: (Parsing /system/etc/init/bootstat.rc took 0.00s.) [ 7.831822] init: (Parsing /system/etc/init/cameraserver.rc took 0.00s.) [ 7.839767] init: (Parsing /system/etc/init/crash_reporter.rc took 0.00s.) [ 7.847639] init: (Parsing /system/etc/init/debuggerd.rc took 0.00s.) [ 7.855052] init: (Parsing /system/etc/init/drmserver.rc took 0.00s.) [ 7.862712] init: (Parsing /system/etc/init/dumpstate.rc took 0.00s.) [ 7.870140] init: (Parsing /system/etc/init/gatekeeperd.rc took 0.00s.) [ 7.877820] init: (Parsing /system/etc/init/init-debug.rc took 0.00s.) [ 7.885254] init: (Parsing /system/etc/init/inputdriverserv.rc took 0.00s.) [ 7.893194] init: (Parsing /system/etc/init/installd.rc took 0.00s.) [ 7.900566] init: (Parsing /system/etc/init/keystore.rc took 0.00s.) [ 7.907932] init: (Parsing /system/etc/init/lmkd.rc took 0.00s.) [ 7.914939] init: (Parsing /system/etc/init/logcatd.rc took 0.00s.) [ 7.922275] init: (Parsing /system/etc/init/logd.rc took 0.00s.) [ 7.929280] init: (Parsing /system/etc/init/mdnsd.rc took 0.00s.) [ 7.936300] init: (Parsing /system/etc/init/mediacodec.rc took 0.00s.) [ 7.943849] init: (Parsing /system/etc/init/mediadrmserver.rc took 0.00s.) [ 7.951744] init: (Parsing /system/etc/init/mediaextractor.rc took 0.00s.) [ 7.959642] init: (Parsing /system/etc/init/mediaserver.rc took 0.00s.) [ 7.967234] init: (Parsing /system/etc/init/metrics_collector.rc took 0.00s.) [ 7.975379] init: (Parsing /system/etc/init/metricsd.rc took 0.00s.) [ 7.982785] init: (Parsing /system/etc/init/mtpd.rc took 0.00s.) [ 7.989833] init: (Parsing /system/etc/init/netd.rc took 0.00s.) [ 7.996797] init: (Parsing /system/etc/init/perfprofd.rc took 0.00s.) [ 8.004166] init: (Parsing /system/etc/init/peripheralman.rc took 0.00s.) [ 8.011959] init: (Parsing /system/etc/init/racoon.rc took 0.00s.) [ 8.019220] init: (Parsing /system/etc/init/servicemanager.rc took 0.00s.) [ 8.027023] init: (Parsing /system/etc/init/surfaceflinger.rc took 0.00s.) [ 8.034908] init: (Parsing /system/etc/init/uncrypt.rc took 0.00s.) [ 8.042211] init: (Parsing /system/etc/init/update_engine.rc took 0.00s.) [ 8.050033] init: (Parsing /system/etc/init/vdc.rc took 0.00s.) [ 8.056920] init: (Parsing /system/etc/init/vold.rc took 0.00s.) [ 8.067539] init: Starting service 'logd'... [ 8.073207] EXT4-fs (mmcblk0p6): re-mounted. Opts: (null) [ 8.082816] random: logd: uninitialized urandom read (40 bytes read, 107 bits of entropy available) [ 8.087109] init: (Loading properties from /system/build.prop took 0.00s.) [ 8.087238] init: (Loading properties from /vendor/build.prop took 0.00s.) [ 8.087301] init: (Loading properties from /factory/factory.prop took 0.00s.) [ 8.087629] init: /recovery not specified in fstab [ 8.090288] init: Starting service 'debuggerd'... [ 8.091223] init: do_start: Service debuggerd64 not found [ 8.092953] init: Starting service 'vold'... [ 8.099521] random: debuggerd: uninitialized urandom read (40 bytes read, 107 bits of entropy available) [ 8.102512] init: Not bootcharting. [ 8.108968] random: vold: uninitialized urandom read (40 bytes read, 107 bits of entropy available) [ 8.229241] logd.auditd: start [ 8.232361] logd.klogd: 8195917549 [ 8.327758] random: vdc: uninitialized urandom read (40 bytes read, 109 bits of entropy available) [ 8.779182] init: Starting service 'exec 1 (/system/bin/tzdatacheck)'... [ 8.792143] random: tzdatacheck: uninitialized urandom read (40 bytes read, 109 bits of entropy available) [ 8.829421] init: Service 'exec 1 (/system/bin/tzdatacheck)' (pid 142) exited with status 0 [ 8.854101] init: (Loading properties from /data/local.prop took 0.00s.) [ 8.863628] random: init: uninitialized urandom read (40 bytes read, 110 bits of entropy available) [ 9.065490] init: Starting service 'logd-reinit'... [ 9.072650] init: write_file: Unable to open '/proc/sys/vm/min_free_order_shift': No such file or directory [ 9.073544] random: logd: uninitialized urandom read (40 bytes read, 110 bits of entropy available) [ 9.095381] init: Starting service 'healthd'... [ 9.101620] init: Starting service 'lmkd'... [ 9.104914] logd.daemon: reinit [ 9.110757] init: Starting service 'servicemanager'... [ 9.117493] init: Starting service 'surfaceflinger'... [ 9.123258] random: lmkd: uninitialized urandom read (40 bytes read, 110 bits of entropy available) [ 9.123838] init: couldn't write 148 to /sys/fs/cgroup/stune/foreground/tasks: No such file or directory [ 9.124023] init: Service 'logd-reinit' (pid 144) exited with status 0 [ 9.126240] init: write_file: Unable to open '/sys/kernel/debug/tracing/tracing_on': No such file or directory [ 9.127552] init: Starting service 'console'... [ 9.128686] init: Starting service 'adbd'... [ 9.130100] init: cannot find '/system/bin/update_verifier' (No such file or directory), disabling 'exec 2 (/system/bin/update_verifier)' [ 9.130187] init: cannot find '/system/bin/install-recovery.sh' (No such file or directory), disabling 'flash_recovery' [ 9.130986] init: Starting service 'zygote'... [ 9.132634] init: Starting service 'audioserver'... [ 9.133806] random: servicemanager: uninitialized urandom read (40 bytes read, 110 bits of entropy available) [ 9.133813] random: surfaceflinger: uninitialized urandom read (40 bytes read, 110 bits of entropy available) [ 9.134557] init: Starting service 'cameraserver'... [ 9.136383] init: Starting service 'drm'... [ 9.138394] init: Starting service 'installd'... [ 9.140303] binder: 145:145 transaction failed 29189, size 0-0 [ 9.140308] init: Starting service 'keystore'... [ 9.142419] init: Starting service 'mediacodec'... [ 9.144238] init: Starting service 'mediadrm'... [ 9.146077] init: Starting service 'mediaextractor'... [ 9.148319] init: Starting service 'media'... [ 9.150147] init: Starting service 'netd'... [ 9.152228] init: Starting service 'peripheralman'... [ 9.154243] init: Starting service 'crash_reporter'... [ 9.156219] init: Starting service 'crash_sender'... [ 9.158435] init: Starting service 'gatekeeperd'... [ 9.160465] init: Starting service 'inputdriverserv'... [ 9.162354] init: Starting service 'metricscollector'... [ 9.164404] init: Starting service 'metricsd'... [ 9.200548] init: Starting service 'perfprofd'... [ 9.210597] init: Starting service 'update_engine'... [ 9.263242] init: write_file: Unable to open '/sys/class/android_usb/android0/enable': No such file or directory [ 9.263330] init: write_file: Unable to open '/sys/class/android_usb/android0/idVendor': No such file or directory [ 9.263401] init: write_file: Unable to open '/sys/class/android_usb/android0/idProduct': No such file or directory [ 9.263494] init: write_file: Unable to open '/sys/class/android_usb/android0/functions': No such file or directory [ 9.263564] init: write_file: Unable to open '/sys/class/android_usb/android0/enable': No such file or directory [ 9.264302] init: write_file: Unable to open '/sys/class/android_usb/android0/enable': No such file or directory