Orange Pi Zero 2W Android

:warning:Japanese notation

# はじめに
::: note
### ZEROサイズ
[Raspberry Pi Zero 2 Wのすべて](https://picockpit.com/raspberry-pi/ja/%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%BB%E3%83%91%E3%82%A4%E3%83%BB%E3%82%BC%E3%83%AD%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%A8%E3%81%AF%EF%BC%9F/)
[Radxa Zero 3W と Raspberry Pi Zero 2W の比較](https://www.makeuseof.com/radxa-zero-3w-vs-raspberry-pi-zero-2w/)
- [Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)
- [Banana Pi BPI-M4 ZERO](https://wiki.banana-pi.org/Banana_Pi_BPI-M4_Zero)
- [Orange Pi Zero 2W](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-2W.html)
- [Radxa ZERO 3W](https://radxa.com/products/zeros/zero3w/)

:::

:::note
### 検証環境
- Windows11 バージョン24H2
:::

:::note
### [PowerShell](https://learn.microsoft.com/ja-jp/powershell/scripting/what-is-windows-powershell?view=powershell-7.4)の開始
- キー入力：**`Win`+`x` > `a` > `はい`**
:::

# 準備する物
:::note
### 準備する物
- マイクロSDカード
最小容量 8GB、クラス 10 以上の高速 SanDisk カード
- ケーブル
ミニHDMI to マイクロHDIM、ミニHDIM、HDMI
- 電源
  - 5V / 2A または 5V / 3A
UCB-C
:::

# デバイス

:::note
### Orange Pi Zero 2W
![0825-zero2w-img01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412833/734ae445-7351-65cb-1e2d-50b2220b4c87.png)

[Wiki-Orange Pi](http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W)

<details><summary>仕様</summary>

- CPU : Allwinner H618 クアッドコア Cortex-A53 プロセッサ 1.5GHz
- グラフィックプロセッサ : • Mali G31 MP2 • OpenGL ES 1.0/2.0/3.2、OpenCL 2.0、Vulkan 1.1 をサポート
- メモリ : 1GB/1.5GB/2GB/4GB LPDDR4
- オンボードストレージ : 16MB SPIフラッシュ
- 電力管理 : AXP313A
- オンボードWiFi + Bluetooth : WiFi5とBluetooth 5.0をサポート
- ネットワーク : 10M/100M/1000M イーサネット インターフェース
- オーディオ入力/出力 : 13ピン拡張ポートは2チャンネル出力と1チャンネル入力をサポート
- ビデオ出力 : • 最大 4K@60fps の Micro HDMI • TV 出力:13 ピンは 1 チャンネル TV CVBS 出力をサポート
- シリアル : 3ピンデバッグUART
- USB : USB 2.0 * 3（うち2つは拡張ボードから接続）
- SDカードインターフェース : マイクロSDカードインターフェース
- 拡張インターフェース• 2 : 6ピンGPIOインターフェース • 13ピンGPIOインターフェース
- 電源入力 : 5V3A、Type-Cコネクタ
- OSサポート : Android 12 TV、Debian11、Debian12、Ubuntu22.04、Ubuntu20.04
- プリント基板 : 50mm×55mm

---

</details>

:::

# ファームウェア
:::note
### ダウンロード
OmniROM 12.1 v3 (Tablet)
![スクリーンショット 2024-12-27 200841.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412833/c74108f0-22ce-08bd-8ef6-eec71feca8b8.jpeg)

OmniROM 12.1 v3 (Automotive)
![スクリーンショット 2024-12-28 211643.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3412833/16facde8-7445-f79f-b863-77c9dd197e6d.jpeg)

- Android Image
  - [Official Images](https://drive.google.com/drive/folders/19QpUgDYF35BVyB9RI38BLKqtnIHtkh5k) ★☆☆
TWRPなし
  - [Yajat blogs](https://blogs.yajatkumar.com/) ★★★
TWRPあり
  - [SpacePi](https://spacepi.root.sx/) ☆☆☆
HDMI不可
ADB不可
ログイン不能
- Official Tools
  - [PhoenixCard](https://drive.google.com/drive/folders/1IkRzr84rJss4htDabVIKPUaxqRgkCpOT)

<details><summary>SDカード初期化</summary>

```powershell
diskpart
```

```powershell
list disk
```

```powershell
select disk #
```

```powershell
clean
```

```powershell
exit
```

---

</details>
:::

# デバイスアクセス
:::note
### [Android Debug Bridge（adb）](https://developer.android.com/tools/adb)

```powershell
adb devices
```
```powershell
adb shell
```

- アーキテクチャ確認
```powershell
adb shell getprop ro.product.cpu.abi
```

- 詳細情報確認
```powershell
adb shell cat /proc/cpuinfo
```

### [ADBエクスプローラー](https://apps.microsoft.com/detail/9ppgn2wm50qb)
### [Vysor](https://www.vysor.io/) ★☆☆
低解像度（有償版：高解像度）
### [scrcpy](https://github.com/Genymobile/scrcpy/tree/master) ★★☆
高解像度
操作性難あり
```powershell
scrcpy
```

:::

# 初期設定
:::note
### カスタムROM
- [OmniROM 12.1 v3 (Tablet) (ARM64) for Orange Pi Zero 2W / Zero 3](https://blogs.yajatkumar.com/2024/12/omnirom-121-v3-tablet-arm64-for-orange.html)
[TWRP](https://twrp.me/)インストール済み

### Google Play

Google Account Manager
Google Play開発者サービス(google play services)
Google Services Framework
Google play store

[MindTheGapps](https://mindthegapps.com/)

~~[OpenGApp](https://opengapps.org/)~~

- リカバリモード
```powershell
adb devices
adb reboot recovery
```
- リブート

- Google Play インストール
```powershell
adb devices
adb shell
twrp sideload
adb sideload <path_to_ROM.zip>
adb reboot
adb reboot system
```

[デバイスの登録](https://www.google.com/android/uncertified/)

- [GoogleDeviceRegistration](https://github.com/RadxaYuntian/GoogleDeviceRegistration)

```powershell
adb shell
settings get secure android_id
# or
content query --uri content://settings/secure --projection value --where "name='android_id'"
```




~~### root化~~
[Magisk](https://github.com/topjohnwu/Magisk) 

- 確認
```powershell
adb shell
```
- 実行
```powershell
su
```


### USB PLUG
- 確認
```powershell
adb shell
getprop sys.usb.config
```
- 実行
```powershell
adb shell
setprop sys.usb.config rndis
setprop sys.usb.state rndis
```

### SELinux
```powershell
# 無効化
adb shell
setenforce 0
# 有効化
setenforce 1
```

### [Dynamic System Updates（DSU）](https://developer.android.com/topic/dsu)
- [開発者向けオプション](https://developer.android.com/studio/debug/dev-options#enable)（デバイス情報 > ビルド番号：7回タップ）
  - DSU Loader
    - GSI+GMS（Google Mobile Service）を選択
※ダウンロード後、承認してリブート
※再起動で元OSに復帰

### TCP/IPモードの有効化
```powershell
adb tcpip 5555

```

```powershell
adb shell ifconfig wlan0
# or
adb shell ip addr show wlan0
```

```powershell
# 接続
adb connect <デバイスのIPアドレス>:5555
# 切断
adb disconnect <デバイスのIPアドレス>:5555
```

接続先選択
```powershell
adb devices
```

```powershell
adb -s <デバイスID or IPアドレス:5555> shell
```

:::

# あとがき
とりあえず忘れないうちに備忘録
動作は案外軽快（4GBメモリ）
プレイストアを利用するまではカスタムROMを利用すれば、さほど難しくない
Android Autoは動かなかった、、、要調査
USBドングルも動かないー

GPIOピンの基盤裏の1mmにも満たないはんだがポロっと取れて、SDカードが認識しなくなった
うーん・・・