因為總要下載東西,老開着電腦也費電,還擔心電腦的壽命。
那天在同事那里見到一個 openwrt transmission 回來也折騰一下,本來也想放到 路由器上,但是編譯下載時間太長,先在 現成的 樹莓派 4b上弄下。
先更新
sudo apt-get update
安裝 U盤 ext 格式支持
sudo apt-get install exfat-fuse
安裝 transmission
sudo apt-get install transmission-daemon
先停止服務
sudo systemctl stop transmission-daemon
修改配置文件 用戶名 密碼 訪問白名單
sudo vim /etc/transmission-daemon/settings.json
啟動服務
sudo systemctl start transmission-daemon
瀏覽器登錄
http://192.168.0.123:9091/
試用了一下,感覺不是很好用,不能選擇下載的文件
換軟件
qbittorrent 此軟件需要 qt 環境,裝一個在命令行運行的 qbittorrent-nox
sudo apt-get install qbittorrent-nox
啟動
sudo qbittorrent-nox -d
瀏覽器登錄
http://192.168.0.123:8080/
用戶名 admin
密碼 adminadmin
功能很豐富啊,試用了一下,容易卡住,可能是樹莓派性能太差
買一台小主機又不花算,想着上次當tv box 的 rk3399 在安卓上面在跑一個 linux 這樣方案比較好
rk3399 的性能還是非常不錯的,秒殺市場上的主流盒子 Amlogic S905 。
先准備軟件:
https://github.com/meefik/busybox/releases
https://github.com/meefik/linuxdeploy/releases
https://www.juicessh.com/changelog
https://supersuroot.org/download/
busybox-1.31.1-46.apk (比較齊全的工具箱)
linuxdeploy-2.6.0-259.apk (chroot 容器)
supersu-2-82.apk
juicessh-2.1.4.apk (ssh 客戶端連接工具,適用於 android 6 7 低版本)
先是一個主要的軟件 linuxdeploy 在就是 busybox 工具箱
root 權限,明明編譯的是 user-debug 版本,adb root 都正常的版本,還是提示無 root 權限。
解決 root 權限問題:
android 中 app 運行的時候的權限是以 app 安裝的時候的用戶決定的。
app 安裝時的權限是一個隨機的高 uid 的低權限用戶。
supersu 是做什么用的呢?
supersu 本身已 root 用戶在運行,因為已經取得了 root 權限,普通 app 想要權限的時候,向 supersu 的 su 發送請求,由 supersu 替代執行 root 操作,在把結果返回給 app
PS: supersu 根本沒用上。
操作方法:
1,掛載 system 為讀寫,可隨意操作
2,修改安卓源碼,添加 Android.mk 或 Android.bp 打包時安裝到 /system/app 中
https://github.com/koush/Superuser
build in AOSP 方案,經過試驗並不能運行,而且系統本身有 su 這個 mk 會導致出錯
雖然 adb 中可以使用 su 切換到 root 用戶也能隨便執行 命令,但是,普通的 app 並不是 adb 的 shell 用戶,所以還是沒有 root 權限。
關鍵改動點:
1,關閉 selinux ,就算有 root 權限,如果 selinux 是嚴格模式,還是執行不了所有操作,會報 avc 錯誤,所以要先關閉 或 修改 selinux 狀態為 permissive
通過 getenforce 進行查看工作狀態
2,雖然有 root 也關閉了 selinux 但是還是不能修改 /system/ 系統文件,因為系統分區被掛載為 ro 模式,並且,還有 dm-verity 保護
修改 fstab 掛載方式為 rw
3,雖然 修改了 system/extras/su/su.cpp 里面的,權限檢查,可是打開 app 還是提示無權限操作
1 int main(int argc, char** argv) { 2 //uid_t current_uid = getuid(); 3 //if (current_uid != AID_ROOT && current_uid != AID_SHELL) error(1, 0, "not allowed");
在 進入 java 的世界的時候, Zygote 會執行 drop 權限的操作, DropCapabilitiesBoundingSet
4,雖然以上你全都操作對了,可是還是沒有 root 權限,為何呢?因為文件權限的問題 ls -la /system/xbin/su
沒有 s 權限,不要以為設為 777 就萬事大吉,誰都可以操作
經過以上重重困難,終於,可以在 app 正常使用 root 權限了。
安裝 qbittorrent-nox 並運行
開機自動啟動
鎖定WIFI
保持CPU喚醒
聯網更新
PATH變量
安裝位置,需要 ext4 分區,可以設為 /data/linux.img
配置文件
鏡像地址
http://ftp.debian.org/debian/
改為
https://ftp.debian.org/debian/
用戶名 admin
密碼 12345678
本地化 zh_CN.UTF-8
掛載
允許掛載 Android 上的資源
SSH
允許使用 SSH 服務器
圖形桌面
不需要
配置好以后,先點 安裝,然后在點啟動
容器應用,可能被系統 oom 殺掉,可以添加系統簽名,做為系統 app 安裝在 room 里面。