Android 16 beta 推出了很多全新的功能,
讓我眼睛一亮的是原生終端機 (Terminal) 功能,
相對於手機有一個小小 Debian Linux 可以使用,
如果熟悉 Ubuntu 的朋友,幾乎無痛上手。
就來看看要怎麼把玩這個新功能吧!
Android 16 新功能頁面:
https://developer.android.com/about/versions/16?hl=zh-tw
Table of Contents
支援的清單
支援的清單列表在這裡:
https://developer.android.com/about/versions/16/download-ota?hl=zh-tw
- Pixel 6 與 6 Pro
- Pixel 6a
- Pixel 7 與 7 Pro
- Pixel 7a
- Pixel Fold
- Pixel Tablet
- Pixel 8 和 8 Pro
- Pixel 8a
- Pixel 9、Pixel 9 Pro、Pixel 9 Pro XL 和 Pixel 9 Pro Fold
有支援的清單可以直接線上 OTA 升級,不用清除資料
不用清除資料,這點真的香
這次使用的機器:Pixel 7 pro
以下是操作步驟
加入 Android Beta 版體驗方案
到這個連結:
https://www.google.com/android/beta#devices
登入你有綁定 Pixel 手機的 Google 帳號,選取你手機,
將你的手機加入 Beta 體驗方案,屆時 Android 就會幫你推送 Beta 的更新
在手機系統,點選系統更新,就會看到新版 Android 16 beta 啦!
開心的的按下更新
(註:Beta 版可能會有不穩定的情況,建議不要用主要使用的手機做這個更新)
打開 Linux 開發環境
更新完畢之後,除了 UI 介面有小改之外,感覺什麼事情都沒有發生,
這很正常,要打開秘密選項才有
到系統設定
系統 > 開發人員選項 > Linux 開發環境
[勾選] 實驗功能 在 Android 上執行 Linux 終端機
系統 > 開發人員選項 > Linux 開發環境
[勾選] 停止限制子程序
應用程式就會出現 [終端機] 程式
就可以開始玩了
等於一台 arm64 的 debian 機器
設定硬碟大小
設定 > 調整磁碟大小
預設 5GB 可以直接開到最大 16GB
不然你可能會遇到磁碟空間不足的問題
各種安裝與把玩
接下來就是各種安裝與把玩啦!
想怎麼玩都可以,不一定要照我的做
有個地方要注意,手機是 arm64
架構,
一般 x86_64 程式是不能直接運行的,
它也不是 Apple silicon (M1) 有 Rosetta 可以跑相容模式,
下載程式編譯架構要注意一下
以下是一些指令筆記:
安裝相關套件與權限調整
安裝相關套件
sudo apt update -y
sudo apt install -y tmux neofetch
建立使用者,調整權限
useradd myuser
passwd myuser
sudo usermod -a -G sudo myuser
sudo usermod -a -G docker myuser
調整磁碟大小
sudo apt install -y parted
在 parted 介面裡,找到 rootfs ext4 磁區,將它擴大
print
resizepart 1 100%
quit
SSH Server
安裝 SSH Server
sudo apt install -y openssh-server
設定開啟的 port
sudo vi /etc/ssh/sshd_config
修改
port 22
重啟服務
sudo systemctl restart sshd
會有通知提示是否允許 port 開啟,因爲安全原因,只會開放對應到本機上
ngrok
安裝 ngrok,下列指令二選一
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm64.tgz
sudo tar xvzf ./ngrok-v3-stable-linux-arm64.tgz -C /usr/local/bin
參考:
https://ngrok.com/docs/guides/device-gateway/linux/
或者
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
| sudo tee /etc/apt/sources.list.d/ngrok.list \
&& sudo apt update \
&& sudo apt install ngrok
參考:
https://ngrok.com/downloads/linux
Docker
一鍵指令安裝 Docker
sudo apt-get update -y && \
sudo apt-get install ca-certificates curl && \
sudo install -m 0755 -d /etc/apt/keyrings && \
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \
sudo chmod a+r /etc/apt/keyrings/docker.asc && \
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && \
sudo apt-get update -y && \
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
參考:
https://docs.docker.com/engine/install/debian/
kind & K8s
安裝 kind
export BIN_PATH=/usr/local/bin
export KIND_VER=0.26.0
export CLOUD_PROVIDER_KIND_VER=0.5.0
curl -Lo ${BIN_PATH}/kind https://kind.sigs.k8s.io/dl/v${KIND_VER}/kind-linux-arm64 && chmod +x ${BIN_PATH}/kind
curl -Lo /tmp/cloud-provider-kind.tgz https://github.com/kubernetes-sigs/cloud-provider-kind/releases/download/v${CLOUD_PROVIDER_KIND_VER}/cloud-provider-kind_${CLOUD_PROVIDER_KIND_VER}_linux_arm64.tar.gz && tar zxvf /tmp/cloud-provider-kind.tgz -C ${BIN_PATH} cloud-provider-kind
curl -Lo ${BIN_PATH}/kubectl "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl" && chmod +x ${BIN_PATH}/kubectl
參考:
https://github.com/kalug/k8s-demo/blob/main/kind-starting/1-create-cluster.md
ollama 與 LLM
安裝 ollama
curl -fsSL https://ollama.com/install.sh | sh
參考:
https://ollama.com/download/linux
下載模型
ollama pull deepseek-r1:1.5b
註:gemma:2b
手機記憶體不足,跑不動,
故改用 deepseek-r1:1.5b
會有通知提示是否允許 port 11434 開啟,因爲安全原因,只會開放對應到本機上
按允許即可
你可以用相關聊天 WebUI,我這邊直接用 App 解決
下載 Maid:
https://play.google.com/store/apps/details?id=com.danemadsen.maid
進入 App 的設定,
設定來源為 ollama
網址: localhost:11434
按下確定,就可以開始聊天了
參考資料
https://ivonblog.com/posts/ollama-android-termux/
https://www.youtube.com/watch?v=UT8Q_V82boM