AndroidタブレットでLinuxを色々と遊んでみよう
続編 その２

1

１、自己紹介２、Androidの紹介、全体像
３、Android上でのLinuxディストリビューション動作・Debian norootとchroot環境
・Androidでx86 PCエミュレータ
・KindleFireTVなどを遊んでみる
4、Androidで電子工作遊んでみる
５、Nexus7でOS載せ替えテスト
・Android独自ビルドとMultiROM、TWRP
・その他カスタムROM
６、Androidを独自ビルドしてみた
７、中華タブレット データ解析
８、MultiROMハッキング
９、次回出展OSC名古屋2016/5/28 16:15～
会場：吹上ホール ４F 第３会議室(2)

講演資料は電子データと紙面を配布しております。
詳しくはブースまで。
http://kapper1224.sakura.ne.jp/

講演：Kapper

2

自己紹介

Self Introduction●

My name: Kapper●

Twitter account：＠kapper1224●

HP：http://kapper1224.sakura.ne.jp●

Slideshare:●

My Hobby：Linux、*BSD、and Mobile ARM Devices●

My favorite words：Record than experiment important●●

Test Model：Netwalker(PC-Z1,T1)、Nokia N900、DynabookAZ、RaspberryPi
Nexus7(2012、2013)、Hercules eCAFE EX HD、Jetson TK-1、
OpenPandora、ARM Chromebook、ZTE OPEN C（FirefoxOS）
台湾Android電子辞書 無敵CD-920、CD-928
Recent Activity：
I have been active in the Tokaido Linux User Group.
Hacking of Android Nexus7.
I have recently often use the ARM Chromebook.

Recent test

こんな事やってます

1.Linux distributions on Android3

2. Electronic Circuit on ARM
RaspberryPiを使ってLチカ
昔に戻って、電子回路工作を楽しんでます

3. Windows and Wine on ARM

4. Plesentations in Asia(HongKong,Taiwan)
Opensouce Conference今回のテーマ

今回はマニアックにAndroidを攻めます！
●「OSを入れた後に何に使えるかを教えて欲しい」というご要望を踏まえてアプリの紹介を追加しました●
今回はそれぞれの実例に集中しています●
始めての方は前回のNexus7の資料もご一読を●資料数が多くなりすぎたので、時間の都合で後半の内容を割愛する可能性があります。
●

4

簡単
アプリ
入れるだけ
Mikutter
遠隔操作サーバ
Debian Noroot(通常ﾕｰｻﾞｰ）

やれる事が
限られる

5

今回の話の流れ電子工作
x86エミュ
Windowsアプリ Arduino用端末
Linux
ディストリ
chroot環境(root)OS載換え
Root化
MultiROM
pkgsrc難しい
マニア向け
ブートローダーKernel
SoC

重要
長く使う為に
対象ﾕｰｻﾞｰ（伝えたい事）

デベロッパー
ﾊｯｸ、改造用途向け
ディストリ
サーバ用途
ビューター
「End
of
Life」延長
Office用途

Mikutterマニア

Android改造の簡単な歴史
Android初期～2.3
root取れない
Webkitのバグから
Root化
↓
改造

機種限定
規制厳しい

Android～4.2
Nexus7登場
ブートローダーがロックされていない↓
Root化可能

誰でも出来る

Android ~4.x
中華タブレット全盛
Root化アプリ多数↓
アプリ入れるだけ

アプリで簡単6

7PC市場の中のAndroid
$1000

Mac
PC

Windows
PC

Google
グラス

Apple
Watch
$500

$200

スマート
ウォッチ

ChromeBox
Android Stick
１ボードPC
RaspberryPi$100

デスクトップPC

Mac
book
iPad

iPhoneAndroid
スマートフォン

Windows
ノートPC

Android
Windows
Tablet中華パッド

Chromebook$179~$350

モバイルPC

0インチ

6インチ
画面サイズ

10インチ

8

中華PC 大分類

数が多すぎるので抜粋。個人的主観です（後日整理します）
端末、機種
プロセッサ

OS

中華タブレット
中華スマートフォン
中華Netbook

Android
FirefoxOS(ARM、MIPS）◯

CyanogenMod他
Ubuntu、Debian、Arch他

Androidスティック
Androidセットボックス
Chromebook
Chromebox
ATOM中華Windows
TabletAndroid(ARM）
ChromeOS(ARM、x86)
Windows
Android(x86)◯

CyanogenMod他
PicUntu、その他
Ubuntu、Debian他

Windows Stick

Windows(x86)
UbuntuLinux(ARM）

△
◯

移植過渡期
１万円
Ubuntu他、Bash、Cygwin ～2万円
Debian、Ubuntu、NetBSD 数千円
FreeBSD他。基本は何でも ～１万円
あり

中華Android
スマートウォッチ
中華Android wear
スマートウォッチ

Android（ARM、MIPS）△

AsteroidOS他

Android Wear
(ARM)

△

AsteroidOS他

中華Androidカーナビ

Android(ARM,MIPS)

△

移植過渡期

1 Board PC

Root 代替OS、独自ビルド
対応

◯
△

推定
価格

コメント

数千円
～3万円

比較的安価
低スペック
低バッテリ
ガラス割れる注意
旧機種は安い新型は高性能中華系は少数
高性能
最近の流行
低バッテリ
ガラス割れる注意
意外と高い
UEFI６４bit
RaspberryPi互換
ブートロックなし

数千円
～2万円
１万円
～3万円
移植過渡期
１万円
Ubuntu他、Bash、Cygwin ～2万円

数千円
～2万円
1万円
～3万円

意外と高い
丸型モニタ不便
結構高い
発展途上

2万円
～4万円

車載Android
高い

Androidでも沢山のLinuxOSを動かす事が出来ます。
Kapperのネット独断調査（間違っていたらごめんなさい。修正します）

AndroidをLinux端末として遊んでみる●

初期のAndroidとは違う使い方をしたい→何に使うの？
１、Officeやエディタ（キーボード付きミニ端末）
２、Windowsとかｘ86エミュレータ
３、Mikutter、LibreOfficeなどデスクトップアプリ
4、各種サーバ
５、TeamViewer、VNCでRaspberryPiなどを遠隔操作
６、FlashPlayerを入れて艦これ
７、電子回路用Arduino接続端末として
８、宗教上の理由（以下略９、Androidに飽きた、余った、リサイクルしたい
１０、FirefoxOS、UbuntuTouchとか第3のモバイルOS

9

VNC、RDP ビュワーで遠隔モニタ代わり
●

●

●

10

最初の基本はモニタ代わり、遠隔操作して使う
RaspberryPiやWindowsの端末としてゲームやIoTのサブモニタ、キーボード端末などNexus7に限りませんが端末が余ったら使ってみましょう
TeamviewerやRDPもRaspberryPiやAndroidに移植されています。自宅ルータ越しての遠隔操作も自由自在BlackberryQ5
Nexus7+Bluetoothキーボード
中華スマートウォッチ

サーバ用端末としてリサイクル●

Androidには簡易サーバアプリがあるので、古い端末をサーバとしてもリサイクル出来ますかも。LAMPポータブルサーバとしても。

11FlashPlayerと艦これをAndroidでも●AndroidにFlashPlayerは搭載されておりませんが、Dolphin
Browserを使えばFlashPlayerと艦これを遊ぶことが出来ます。

12

ExaGear MobileでWindowsゲームをAndroidで●●●Exagear Mobile（RPG、Strategy）はAndroidの有料アプリで
x86+Wineのエミュレーションする構成
非公式ながらもネット報告では色々なWindowsアプリ動作(Diablo1,2など）
WindowsマシンのC\:Program files\以下をコピーして使う構成

13

Androidのストレージ容量問題
●

●

●

●

14

旧機種の場合、内蔵ディスクは容量が小さいので不便です。
WindowsとUSB接続の為にデータ保存フォルダ/mnt/sdcardはFAT32になっています。

Linuxの特徴で/mnt/sdcardと外部SDカードのFAT３２にはシンボリックリン
クを作ってデータやアプリを飛ばすことが出来ません。ExtかNTFSにフォーマットが必要です。
もしくはloopbackストレージが必要です。
Link2SDやAndroid Partition ToolというアプリがありますがRoot必須
コマンドではrm -rf /storage/sdcard0/<directory>
mkdir /storage/sdcard0/<directory>
mount -o bind /storage/sdcard1/<directory> /storage/sdcard0/<directory>もしくはｓu
mount -o remount,rw /cp -pr /mnt/sdcard/<directory> /data/sdext2/<directory>
rm -r /mnt/sdcard/<directory>ln -s /data/sdext2/<directory> /mnt/sdcard/<directory>
busybox ln -s /data/sdext2/<directory> /mnt/sdcard/<directory>
参考サイト：Not possible to create a symlink in /mnt/sdcard?

ChrootでARM Linuxインストール●

ChrootはLinux環境を内部にもう一つ作れます●

違うバージョンのOSを起動出来る●

Androidの場合、専用アプリを入れるだけ

●

●

●

UbuntuDebianAndother Linux

Chrootの中から基本は外の環境へアクセス出来ない
フォルダをマウントすると移動出来る
mount -o bind <directory１> <directory２>

UbuntuDebianAndother Linux

AndroidLinux Device

ChrootはRootユーザーのみ.
一般ユーザーではFakechrootが必要（Debian Norootなどで使用）
Kernelは標準OSのまま使用するので、ドライバやモジュールは、オリジナルKernelのまま。
→オリジナルKernelがサポートしていない
ドライバやOSは使用できない

15

Debian Norootを使ってみる●●●

Debian NorootはAndroidのアプリでroot権限を取らずにchroot
で全自動フルインストール出来るDebian
誰でも導入出来る容易さが人気
Bluetoothキーボードとマウスを使えば、簡易ノートPC
中身はfakechrootを使い通常ユーザー権限で
chroot環境を構築し、Xserver-SDLでXorgを表示している●

ストレージが内臓/sdcardを前提にしているので容量に課題あり●

最近のVerはAndroid4.0以降で対応。古いOSは古いVerでどうぞ
台湾 無敵シリーズ電子辞書 CD-920

16

Androidでデスクトップのアプリを動かす

17

Debian jessieパッケージ数は43,000以上、Androidに苦手なデスクトップ
chroot環境でハードウェアを動かすのは大変なのでAndroidとデータリンク
LibreOfficeで統合Office
MikutterでTwitterアプリ

Blenderで３Dグラフィックを作る

Scratchでプログラム作成を遊ぶ

Ubuntu、Debianって何が出来るの？
●●

RaspberryPiを使って何が出来るの？という質問が多いです。
Debian、Ubuntuを使って何が出来るのでしょうか？
Windowsと同様に何でも出来る。アプリの使い方を覚える必要あり
１．デスクトップPCとして
２．サーバとしてAndroid

３．ネット関係、遠隔操作
４．開発マシンとして

ChrootDebianUbuntu５．画像処理、３D、マルチメディア
６．統計、演算、シミュレーション
６．ゲーム、エミュレータ
８．電子工作用制御
sudo apt-get install arduino
９．CAD、CAM
参考サイト：ペンギンの社～Linuxソフトリンク集
GetDebLinux

18

Android対応chrootアプリLinux状況
Terminalベースは慣れが必要ですが容量が小さくすみます。XはXserver-SDLかVNC
ディストリ

Androidバージョン

Debian Noroot（Gimp他）
Complete Linux

4.3以降

Debian Kit
Linux Deploy

4.1以降
2.1以降

GnuRoot

1.6以降

2.2以降

1.6以降
GnuRoot debian,Fedora, Gentoo
GnuRoot Wheezy X 1.6以降

インストーラー、
CUI or GUI

Linuxディストリ対応

Root

対応機種

是非

Full Auto
DebianNo
XserverSDL
Terminal Debian、Ubuntu、 RootFedora、Arch、OpenSuse他
Terminal DebianRoot
Terminal Debian、Ubuntu、F Rootedora、Arch、Open
Suse他
Terminal DebianNo

Xまで全自動ディスク容量注意
沢山のディストリ
自動GUIありTerminal

Debian,Fedora, No
GentooDebianNo

各種GNURoot用
ディストリ
古い
簡易Xserver
古い

Xserver

Debootstrap
最も対応数が多い
CentOS対応
IS01などほぼ全機種
古い

AndroLinuxAPKLinux

3.0以降 Terminal
4.0.3以降 Terminal

Fedora,CentOS ？
Bare-Bone
Root

CentOS対応
独自パッケージ

Lil' Debi

2.1以降

DebianDebootstrap

Terminal

Root

CentOSはどうやって動かすの？という質問がありましたので再調査
Kapperのネット独断調査（間違っていたらごめんなさい。修正します）

19

AndroidのRoot化
Androidをroot化することで、様々なアプリと環境が使える様になります。
root環境でなければ出来ない設定もある。
root化するとメーカーサポートは受けられなくなりますので注意。
●
Androidのroot化
１、Win上のroot化アプリでファームウェアを書換える
２、bootloaderをUnlockする
３、Android上でrootアプリを使う●
root化して出来る事
１、OS載せ替え、chroot化、シンボリックリンク
２、アクセス権限の変更、内部アクセス、ターミナル
３、オーバークロック
4、SDカードへのアプリ移動、不要アプリ削除●

20

Nexus Root Toolkit
Windows用ですがGUIでNexus7のUnlock、root化が出来るアプリ●
専用の環境を作りたくない人にお勧め
１、Nexus Root toolkitアプリのダウンロード
２、Google USBドライバのインストール
３、USBでNexus7を繋いで認識
４、機種を選択しボタンをクリックして
Unlock、root化
Nexus Root Toolkit●

スマホ、中華タブレットRoot化●●

最近はRoot化アプリがGooglePlayなどでも公開
一例としてKingo Android Root
多数のデバイスをサポート
改造して遊ぶ事が非常に簡単な時代になりました
使用のリスクは自己責任で
Supported ManufactureAndroid TerminalとBusybox
Terminal EmulatorとBusyboxを使うことでLinuxの基本的な機能を使うことが出来ます。
●
Busyboxは基本的なCUIツールがセットになっており一通りの事が出来ます（cp,wget,w3m他）●
システムやアクセス権を変更する際にはroot化が必要です。chrootしてLinuxを入れる際にも。
●

Android Terminal

Busybox23

Debian KitとComplete Linux

24

Android上でchroot環境を構築してapt-getしてパッ
ケージを入れるアプリ。Debian化が出来る。
●
Androidをシンプルにサーバ化できる。root化がいるものといらないものと。
●
Debian KitはAndroidの親プロセスのルート環境で
apt-getが使える仕組みなので、自由度が高い（ハイリスComplete Linuxク？）●
Debian Norootが入れられない古い環境向けも●色々なディストリを使いたい●TightVNCserverとVNCviewer●●●

もっとも容易なXサーバの代替がVNCserver
chroot環境でTightVNCserverを起動すれば容易にAndroid上でX環境を立ち上げられます。
sudo apt-get install tightvncservertightvncserver -geometry 1024x600
もちろん、遠隔操作して使うことも可能です。
VNC Viewer

Complete Linux25

Xserver-SDLを単独で使う
Xserverの代替としてDebian norootでも使われているXserver-SDLを単独でも使えます。
●
使い方はXserver-SDLを起動させてから、Chroot
環境で端末から、
env DISPLAY=xxx.xxx.xxx.xxx:0 lxsession &と起動しAndroid上で再度Xserver-SDLを表示●

Xserver-SDL

Complete Linux

26

27

Android用PCエミュレータで代替してみる
動作は遅く限定的ですが、PCエミュからWindowsを起動することも可能です。
●
PC: Bochs,Qemu,DOSBox,Limbo（Qemu）
MAC:vMacMini、Basillisk2●
Qemuの場合、Windows以外でもNetBSDも動作しました。（Qemu1.5以降推奨）●

Windows9x、2000

NetBSD ておくれLiveイメージ

ｘ８６ Emulations on ARM Devices

VMWare and Virtualbox are not working on ARM devices.(Only x86)

Emulation

OS

Qemu

Linux
Android
RaspberryPi
Linux
Android
RaspberryPi
Linux
RaspberryPi
Linux
RaspberryPi
Linux
Android
RaspberryPi
iOS,DS,PSPLinux
Android
RaspberryPi
iOS,PSPLinuxAndroid
RaspberryPi
iOS

Qemu+Wine
Exagear-Desktop
Exagear-Desktop+Wine
DOSBox

Bochs

XNP2（PC-98Emulation）

Root
DeviceNo

Emulated OS

Spec

Comment

Windows
MacOSX?
Linux,*BSD
Required +Windows APP

Slow

Required Ubuntu,Debian

Fast

Required Ubuntu+Wine
Windows APP
NoDOS,
WIndows9x(i386～i586）

Fast

No

Windows～XP(i386～x86-64)
Linux,*BSD

Slow

Tegra K-1
⇒PenⅡ 266MHz
Ver1.5～(ARM GUI)
Difficultkernel 3G/1G only
chroot environment
Tegra K-1
⇒Pen4 1.8GHz
Tegra K-1
⇒Pen4 1.8GHz
Tegra K-1
⇒PenⅡ 266MHz
NEON Supports
Voodoo1+Glide
Tegra K-1
⇒PenⅡ 266MHz

No

DOS、
Windows95？

Slow

Slow

Slow

Tegra K-1⇒？

Internet dogmatic investigation of Kapper (if I wrong it, I'm sorry. )28

DOSBoxでWindows95を動かそう
DOSBoxからWindows9xを起動することも可能です。
●
ARMなど移植性が高く、エミュレータの中では高速●Androidに限らず、沢山の機種やOSで動作出来ます●
もちろんレトロゲームやJW-Cadなども動きます●「はじめてのDOSBox」の資料公開中。是非ご一読を●Windows95

29

BasilliskⅡでOld Macを動かそう
BasilliskⅡからOld 68KMacOSを起動する事も可能●
Androidに限らず、沢山の機種やOSで動作出来ます●
眠っているソフト資産をAndroidで動かしてみましょう●

Basillisk2 on Old MacOS

30

一息いれましょう。Linux何に使うの？

●

OSC浜名湖、名古屋、京都でご意見が沢山ありましたのでご質問●

皆様、Linuxを日常何に使っていますか？

31

1.UbuntuやDebianとか*BSD、Linux使った事がありますか？
２.RaspberryPiとか1ボードPCを使った事がありますか？
3.電子工作やってますか？興味がありますか？
⇒RaspberryPi、IchigoJam関係が情報多い。プログラム必修化で親子に人気
４.スマホやタブレットの第３のOSを使ったことがありますか（iOS,Android以外）
５.ウェアラブル端末（スマートウォッチ、スマートグラス他）に興味ありますか？
６.IT関係やIoT関係の勉強会に興味有りますか？
⇒各地で色々と活動されています。是非ご参加を。
（東海道らぐ、NBUG、Python東海、IoT縛り勉強会、伊勢IT交流会、カーネル/VM、
日本Androidの会浜松支部、静岡大学情報学部LT大会、豊橋技科大、姫路IT系勉強会、鹿児島らぐ、ラックサーバ友の会、セキュリティCTF勉強会、その他）●

RaspberryPiで初めてLinuxを使うけど、良く分からないという人が沢山います。
初心者Linuxの学習方法ってどうしたら良いかと思いますか？（当時を思い出して）
１．Linux雑誌、ムックを買って読む
２.Web、ブログなどを参考にする
３．知人に聞く
４．勉強会などを参加して聞いてみる
５．コミュニティ、ML、掲示板、２chなどに書き込み質問
６．Twitter、FacebookなどSNSで質問

32

番外編
色々なマニアックハードを遊ぶとしたら？
（未テストあり）Hacking Android devices and OS

1.Kindle fire TV

2. Chromecast

ES File Explorerを使えばAPKファイルからアプリをインストール可能です。DebianNorootも動きます。
Root権限を取ればGooglePlayも動作します。

中身はAndroidのCoreなのでカスタムROMを入れてスタンドアローンで色々と遊べるらしいです。
「rCast」「PwndCast」など出ています。

3. IS01, Dynabook AZ(AC100)

4. HMDI stick type PC, Chromebit

アプリからRootを取ればCyanogeｎModを入れれます。
Chroot環境でDebian、Ubuntu化も可能。
旧機種Androidの中ではとにかくハッキング面白い

33

Allwinner,RockchipのCPUを使用しているのでUbuntuが移植。アプリからRootを取ればCyanogeｎModも入れれます。Chroot環境でDebian、Ubuntu化も可能

中華WindowsタブレットのUnix化(補足)●WindowsタブレットでCygwinやエミュでUnix環境
1.Bash on Windows(Ubuntuベース）
２.Cygwin
３.エミュレータ(qemu,virtualbox,VMware他)
４.Legasy,UEFI 64bit BOISからデュアルブート
Linuxのドライバの移植度がまだ低いのが課題（その筋の専門の人から色々と報告あり）
Cygwin

Qemu

34

35

Google-ChromeでAndroidアプリ(補足)Google-ChromeブラウザのARC WelderでAndroidのアプリが動作。OS環境を問わずAndroidのアプリが1/3程度使えます●ARC Welderのアプリは2016年末にChromeに統合されて標準機能として使えるそうです。
●

ARC Welder（ChromeAPP）

ARC Welder and 2chmate

36

AndroidでArduinoを使って電子工作

USBを通じてArduinoを制御できるそうです。
●
Androidを表示、操作、通信端末として活用（PCやRaspberryPiなどと）●WifiやBluetoothを通じてセンサー情報とやりとり
IoT用の端末⇔母艦として運用されています。
●
参考文献
Android側で専用アプリが必要です。
●
只今、テスト勉強中です。
ごめんなさい●37

AndroidとIoT、BigDataの関係(補足)●38

Androidにセンサーなどを繋ぐ事でIoTの制御端末(自動化、省エネ、ロボット）
また端末から情報を収集する事でBigDataの端末として可能性を秘める
1.Wifi、Bluetooth通信環境とUI、モニタ、ハードウェア接続が容易
２.様々なソフトウェアでデータ演算が可能
３.皆がスマホを持っており、一元的なアプリで莫大な情報交換
４.人というデータ（世代、行動、時間、場所）を直接収集してやり取り
５．端末が高い（Arduino：数百円以上）。拡販が難しい。アプリを使ってもらうのが難しい⇒古くはRFID（無線タグ：数十円、バーコード）、ポイントカード：１５円に比べると高すぎる
６．入手したデータをどうやって解析してビジネスに役に立てるか？
⇒一般的には主成分分析（多変量解析）、重回帰分析など統計的手法
膨大な母集団から層別するにはどこかで人の判断（作業）が必要になる
１.AndroidとArduinoとセンサー
２.Androidとアプリを介したビッグデータ
PC代わりの制御機器として

センサー

センサー

39

Android（Nexus7）のOS乗せ換え

Android（Nexus7)にLinuxディストリ●

インストール方法は主に下記３つ。
１、Linuxディストリをchrootインストールする
２、MultiROMを使ってZipファイルからインストール
３、Nexus7用Ubuntu、Bodhiをインストールする
４、ファームウェアを書き換えてブートローダごと
各種OSをインストールする

ここからマニアック路線に進みます

40

41

Android（Nexus7）にLinuxﾃﾞｨｽﾄﾘを入れる●

インストール方法は主に下記３つ。
１、Linuxディストリをchrootインストールする
２、ランチャータイプの仮想OSを利用する
３、OSをエミュレーションして動作させる
４、MultiROMとカスタムリカバリでZIPイメージを入れる
５、ファームウェアを書き換えてブートローダごと
各種OSをインストールする

ここからマニアック路線に進みますAndroid対応独自ビルド 状況
Nexus7対応の独自ビルドは数十種類と数が多すぎるので抜粋。
ディストリ

バージョン

インストーラー

Multirom

Root

対応

対応

対応機種

Factoryimg~5.1.1~6.0.4◎○△

Nexusシリーズのみ

CynanogenMOD~6.0.x

◎

○

○

多数

AOKP

◎

○

○

多数

ParanoidAndroid

○

○

○

多数

ClockworkMOD

○

○

○

多数

○

○

○

Nexus7 2012サポート終了

KDE Plazma

○

△

○

Nexus7 2012サポート終了

FirefoxOS

○

○

△

独自ビルド
AOKPと
CyanogenMODベース

Ubuntu Touch
Ubuntu Phone

◎

○

○

Nexus7(2013）
4、5、10、6

Tizen

△
△

△
△

△
△

？
Nexus5が移植度高い

Bodhi Linux

SalfishOS

～3.0

~2.0

Kapperのネット独断調査（間違っていたらごめんなさい。修正します）◎：公式サポートあり、◯：公式HPに導入報告あり、△：ユーザー導入報告あり

42

FirefoxOS２．５ランチャーを使ってみる●

FirefoxOS2.5ランチャーはAndroidのホーム画面アプリでFirefoxOSのOSとアプリをそのまま使える、第３のOSのapkアプリ●

英語版のみで日本語が難しいのでそのままの実用には課題あり●

FirefoxOSを遊んでみるには最適。違うOS環境をスマホで体験したい人

FirfoxOS HP
http://www.mozilla.org/en-US/firefox/os/

FirefoxOS2.5Launcher

43

MultiROMとTWRP●●

MultiROMを入れるとブートローダ時点でROMを選択できる様になります。
複数のOSを入れる際には必須です。
Unlockが必要です。
カスタムリカバリであるTWRPを入れると純正以外のROMを入れたりバックアップ
したりできます。NexusRootToolkitで簡単に入れれますCyanogenMod概要
●

●

●

●

●

CyanogenMod Inc.が開発しているカスタマイズされたAndroidの数ある独自ビルドの一つで各種デバイスにAndroid～6.0.xを移植
公式、非公式なサポートを含めると２２０デバイスに対応
ファームウェア（ブートローダー）からOSイメージまで開発。
公式サポートされているデバイスであれば、rootを取らずにワンクリックでインストール可能。
インストールは難しいが謎デバイスにも多数動作報告があり、旧型機種のアフターマーケットに寄与している。
Nexus7でも正規に対応しているので、簡単に母艦からインストールできます。

CyanogenMod9

FirefoxOS
Nexus7でもFirefoxOSをインストールして使うことができます。
● ROMの入れ替えしますのでカスタムROM必須●

FirefoxOS

FirefoxOS Simulator

Ubuntu Touch●

Nexus7 2013であればUbuntu Touch対応。

インストーラーとブートローダーがセット● 機種限定で使えるのはNexusシリーズ。
●

Ubuntu Touch

Ubuntu TouchNexus7にUbuntu13.04
当初Nexus7 ２０１２にUbuntu13.04をインストールできました。デスクトップ版です。
●
今はUbuntuTouchに開発がシフトしています。
サポートアウトされました。
現在でもNexus7 2012で使っている人がいる様です。
●

Ubuntu13.04 Nexus7

Ubuntu13.04 Nexus7

48

MultiROM対応のDebian、Ubuntu、Arch
2015年8月にDebian他がMultiROM移植されました●
ZIPファイルで直接Debianなどを直接デュアルブート●

49

PKGSRC on Android

●

●

50

NetBSDのパッケージャーpkgsrcをUbuntu chromebookでも使ってみる⇒何で？
⇒１，最新版のパッケージを使いたい。Mikutterとか随時最新版使いたい
２，UbuntuのPPAでARMバイナリパッケージが殆ど無い。
ソースパッケージから１個１個手動コンパイル必要。非常に面倒。
3,OS、アーキテクチャからpkgsrcが独立しUnix、Linux、MacやWinでも使えるほどの高い移植性がARM環境では大変重宝する
４，Debian SidとかDeb開発版をLTSとかと混載させたくない。独立させたい。
５，Ubuntu側とかでARM、Kernelサポートアウトされても継続し最新版使いたい
メーカー公式サポートが終わってからも使える最強パッケージャー。
最新版Mikutterが光の早さで移植されて使えます。
最近ディストリ間でMikutterがいかに短い時間でリリースされるか競争してません？

51

CyanogenModを独自ビルド
自分でAndroidを作ってみよう
注）Linuxユーザー向け
自分でAndroidを作ってみたい人が日本では少ないので増えてほしいですCyanogenModのビルド

52

Androidは一部を除くとオープンソースなので、自分でビルドして作る事が可能です。（FirefoxOSも）●ビルドPCの推奨スペック
OS：Ubuntu（VirtualBox）
CPU：Coreiシリーズ
Officially-Supported CyanogenMod
メモリ：4GB以上
HDD：100GB以上
推定時間8～24時間●
改造したり、Kernelを新しく作る事が出来る●
機種毎にビルド方法が公開されている
基本はコピペだけ●
まずは公開イメージを入れてみる●Hacking Android devices
andOS
2.ファイルのカスタマイズ

53

1. ソースコードを入手

3. コンパイル

4. Kernelコンパイル（作り変える場合のみ）長いので抜粋しました。
都度新しくなりますので実際の手順は本家HP参照

54

Nexus7の改造とソースコード
ブートローダーとOS載せ替え

Ubuntuのインストーラーのソースコード●

実際はWgetでイメージをダウンロードしてfastbootで書き込むだけ。
set -eecho "$COUNTER"
echo "# Begining Ubuntu Core Nexus7 installation"; sleep 2
COUNTER=$((COUNTER+20))
echo "$COUNTER"
echo "# Erasing boot partition"
sudo -Sp '' -- fastboot erase boot <<<"${SPW}"
COUNTER=$((COUNTER+20))
echo "$COUNTER"
echo "# Flashing boot partition"
sudo -Sp '' -- fastboot flash boot ./"${IMAGES[0]}" <<<"${SPW}"
COUNTER=$((COUNTER+20))
echo "$COUNTER"
echo "# Erasing userdata partition"
sudo -Sp '' -- fastboot erase userdata <<<"${SPW}"
COUNTER=$((COUNTER+20))
echo "$COUNTER"
echo "# Flashing Ubuntu Core root file system"
sudo -Sp '' -- fastboot flash userdata ./"${IMAGES[1]%.*}" <<<"${SPW}"
COUNTER=$((COUNTER+20))
echo "$COUNTER"
echo "# Rebooting device"; sleep 2
sudo -Sp '' -- fastboot reboot <<<"${SPW}")|

55

ARMブートローダの仕組みとx86比較

56

ARMの場合、FlashROMからRAMにブートローダを転送し、Kernelとrootfsを読み込む構成です。ROMに書き込んでるブートローダは「ファームウェア」と呼ぶそうです。Androidの場合、Unlockが必要です。
種類
x86~
Linux

ARM
Androidx86Chrome
book

ROM

BIOS
デバイス認識ブートディスク選択

MBR(ディスク）GRUB
LILO他

KernelKernelドライバ

init

Daemon
他

ログイン
CUI
Xorg

特徴
BIOSと
DISKブート
ローダー
構成

ブートロー
デバイス
KernelKernel初期化
DalvikKernelDaemon 仮想マシン ダーの
ドライバ
ドライバ
rootfsUnlockが転送
RAM転送
読み込み rootfs起動 コンテキスト Android 重要
マネージャ
GUI
MLO
Android ブートローダー（ROM）
Zygote
初期化
ドライバ
RAM転送
CoreBoot

ARMLinux
ディストリ
Chromebook

RAM

Kernel
転送

Kernelrootfs
読み込み

Kernelドライバ

Daemon
他

CUI
Xorg

ブートロー
ダー以降は
共通

ブートローダー（U-boot、SeaBIOS）

Kernel初期化
KernelKernelドライバ
rootfs
転送
ドライバ
RAM転送
読み込み
MLO
ブートローダー（U-boot他）

Daemon
他

CUI
Xorg

ブートロー
ダー以降は
x86と同じ57

中華プロセッサ別分類
一部CPUベンダーは直接Androidをハック出来る仕組みにしてあるそうな・・・
プロセッサ
RK3066,RK2926
RK3088,RK3188,RK3268
AllwinnerA10、A20
AllwinnerA31
MT8389MT6577

ハックアプリ Bootloader
rkflashkit U-bootcreateLinuxium
sdcard.7z
BROM
U-bootBerryBoot Barebox
Debian- Coreboot
Installer
Magic
U-boot
TWRP/CWM
SPFlashTool

Root SDboot 端末◯◯ MK802~8
◯

◯

◯

◯

Exnos5250

U-boot◯？

Snapdragon
K3V2
iMX6

U-ｂootU-bootU-boot

◯
◯
◯

？
？
◯

UEFI
U-bootU-bootU-boot

◯
◯
◯
◯

？
？
◯

Atom Z3735
ATM7029
Tegra

OMAP4470

fastboot

Kernel
RK3***

CubieBoard SUNXI
Lichee

コメント

主流
ツールあり
Ubuntu動作
主流
ツールあり
Debian動作

Thunder 主流
Kernel MediaTek

サムスン

Arndale Board

Qualｃomm
Hisilicon
Linao

Freescale
WIndowsタブ

DynabookAZ◯

Kapperのネット独断調査（間違っていたらごめんなさい。修正します）

NvidiaActions
開発終了？

Androidなどのカスタムブートローダー
●

●

58

MultiROM以外にもU-BootなどカスタムブートローダーがARMのチップ毎で出ています。
例えば、RockchipRK3188用ではLinuiumというGrubライクなROMブートローダーがあり、SDカードからブート出来るものもありますMultiROMとZIPイメージのビルド

59

台湾MOPCON２０１６、OSC京都2016●

台湾MOPCON、OSC京都、KOFに出展予定●

内容:OSC京都、OSC東京、KOF2016

Androidタブレット、RaspberryPiの予定

OSC京都 ７月３０日
オープンショーテック姫路 ８月１６日？
OSC東京 １１月５～６日
台湾MOPCON２０１６ １０月？
KOF２０１６ １１月１１～１２日●
東海道らぐのセッションにも是非遊びに来て下さい●
質問、ご要望はブースまで是非気軽にお聞き願います。
まだ分からない事沢山あります、ゴメンナサイ。
技術的な話題や議論、雑談を含め何でも。
講演資料は会場でも配布しております。
楽しみにお待ちしております。
●

60