序
linux deploy 是用來在安卓環(huán)境上搭建一個(gè)linux容器的工具(app)可以用來讓老手機(jī)完成家庭智能網(wǎng)絡(luò)設(shè)備管理等linux上可以完成的事
我按我搬磚順序來講故事,干貨不太可能集中放置,要看干貨建議直接ctrl+f找代碼段,我會(huì)盡量貼源地址方便大家參考。這篇文件會(huì)詳盡記錄我踩過的坑,方便你們乘涼。資料在文末(注:我的兩個(gè)安卓設(shè)備均為4.3-4.3的設(shè)備,安卓5.0+建議magisk+termux。由于5.0+安卓改動(dòng)內(nèi)容相當(dāng)大,部分內(nèi)容不宜作為參考)
為何搬磚
一個(gè)字:窮
兩把剪線鍵盤在學(xué)校說等著開學(xué)去搞,也沒帶一把回來(都是104鍵)另一把垃圾薄膜也放在學(xué)校。放假前說著寒假就搞香橙派(PC2)也沒時(shí)間玩別的,發(fā)現(xiàn)家里只有ps/2鍵盤,結(jié)果就是沒東西玩了(香橙派就是要用掉它的圖形性能)。準(zhǔn)備某魚入個(gè)百元機(jī)giao一搞,想起來家里有舊手機(jī)最后翻出來能用的就一個(gè)coolpad8720l和一個(gè)老人家在p夕夕買的山寨平板。
兩個(gè)字:折騰
也差不多同時(shí)發(fā)現(xiàn)了meefik大佬的linux deploy(下簡稱LD),于是開始了斷斷續(xù)續(xù)長達(dá)一個(gè)月的搞機(jī)之旅。(不知道為什么那么多csdx上的碼農(nóng)那么不喜歡著名出處,給個(gè)教程給個(gè)鏈接,原作者就被忘得一干二凈)
開搞
1. 刷機(jī)
酷派手機(jī)
配置:4核32位armv7l 1+4g
刷機(jī)包:找個(gè)刷機(jī)包我直接host掉了百度前三頁,最后就找到一個(gè)能用的刷機(jī)包,當(dāng)年的那些刷機(jī)網(wǎng)站全都把數(shù)據(jù)扔了,死都找不到第二個(gè)卡刷包,這就是互聯(lián)網(wǎng)嗎,吐了吐了。
rec:還好找到了一個(gè)煤礦的rec還帶root,不然干死了
精簡:安卓4.3 刷機(jī)包到手折騰了很久,最后是直接zip解壓刪apk就完事
總結(jié):垃圾堆里翻金子
寨機(jī)
配置:最有意思的來了,到手一看安卓7.1 124g存儲(chǔ),搞一搞查一查,1688有真相,估計(jì)就是個(gè)4.3或者4.4,1+16g soc差不多mt67xx
刷機(jī):寨版不知道cpu型號(hào)也不太可能找到刷機(jī)包,就只能找到聯(lián)發(fā)科官方工具
root:360root(光明正大的講這個(gè)root還是不錯(cuò)的,百度簡直是個(gè)笑話前三個(gè)app都沒用,而且360已經(jīng)放棄這個(gè)app了所以說說無所謂
統(tǒng)一步驟
線刷rec(寨機(jī)跳過
卡刷簡化zip,可以同時(shí)把所需軟件加入刷機(jī)包(寨機(jī)跳過
最后root精簡系統(tǒng)軟件
2. 環(huán)境
瑞士軍刀busybox
shell類軟件(終端模擬器v1.07或其他方便手機(jī)獨(dú)立操作)
sshclient軟件(還可以遠(yuǎn)程telnet替代adbshell連接電腦的麻煩)
es文件瀏覽器(從谷歌下載沒得廣告,用于清理存儲(chǔ)卸載軟件,開放ftp等,這軟件是真nb還支持tv pad 4.4-)
x11/vnc(可選,看你是否需要圖形環(huán)境)
LD 2.51(這是releases里最后一個(gè)支持4.4-的版本,當(dāng)然源程序是開源的,你大可以自己編譯更高版本)
3. 安裝
先裝busyboxapp和busybox,完事覺得不需要升級(jí)busybox工具版本就可以卸了節(jié)約空間
!5.0+安卓版本請勿全部參照)es查看存儲(chǔ),記住所見非所得,因?yàn)榉謪^(qū)的事我差點(diǎn)被搞死,
/sdcard下的剩余空間可能會(huì)小于實(shí)際可用空間,因?yàn)椴糠中遁d掉的系統(tǒng)軟件空間我們是可以使用的,具體可用多少建議在下面建立鏡像時(shí)再次查看系統(tǒng)可用空間在確定
我的情況:酷派總共才1+4g es顯示已用為 百兆左右/2.17g 我在建立2g.img后還剩余1g多,這表示我可以擴(kuò)容到3g+
- 開始搞大頭:配置LD :
· 左上角點(diǎn)開選擇設(shè)置,應(yīng)用欄建議勾選鎖定wifi和cpu喚醒,其他按需調(diào)整
· 環(huán)境一欄只要先更新環(huán)境即可,首次開軟件會(huì)自動(dòng)更新環(huán)境,出大問題的時(shí)候移除在更新是一個(gè)好方法(我沒用過)
· 管理一欄勾選telnet斃掉本地主機(jī),這樣你就可以擺脫adbshell直接遠(yuǎn)程telnet到 手機(jī) http守護(hù)是用于webshell(我沒連上過)我覺得沒用自帶的終端好像就是跳轉(zhuǎn)到瀏覽器連這個(gè)(問題是我為了壓榨空間瀏覽器都卸了)
· 調(diào)試?yán)锩孀钪匾木褪枪凑{(diào)試模式,以后配置完美了或者是大概能確定問題了就可以不開減少主頁面輸出,其他隨意吧,日志啥的占空間我就沒弄
· 接下來介紹與設(shè)置同級(jí)的三個(gè)按鈕“配置文件”“倉庫”“終端”
· 配置文件是用來管理多個(gè)Linux系統(tǒng)配置的,也可以改配置名稱就是主頁最上面的標(biāo)題名(five功能
· 倉庫是預(yù)先提供的配置(five功能
· 終端之前說過了(five功能
· 為什么是five功能呢?因?yàn)榕渲米约菏謩?dòng)調(diào)就可以了,自帶的還是要改配置,終端可以借助telnet實(shí)現(xiàn)adb式管理
· 最后說一下具體步驟:
· 主界面右下角點(diǎn)開配置linux預(yù)裝信息 然后主界面左上角點(diǎn)安裝,裝完了點(diǎn)啟動(dòng)。當(dāng)前任務(wù)看主界面跑碼有>>>or<<<界定狀態(tài),盡量不要在以<<<結(jié)束前執(zhí)行其他操作
· 啟動(dòng)會(huì)自動(dòng)進(jìn)行配置操作,包括ssh等,如果出現(xiàn)ssh連不上右上角手動(dòng)重新配置即可再有問題,就看下面debug過程了
· 我只成功過Ubuntu和kali的配置,其他bug沒法幫你們de。文字很多過程很長,走到這你可能成功了一大半了,后面是看運(yùn)氣的時(shí)候
· 我以ubuntu為例,如果你的LD版本低先裝xenial(16.04LTS)在升級(jí)到bionic(18.04LTS)架構(gòu)盡可能不變,對自己手機(jī)架構(gòu)了解的可以自己改,出事了大不了花時(shí)間重來。
· 裝低版本是因?yàn)楦甙姹究赡軙?huì)出現(xiàn)app要預(yù)裝的linux軟件包和源不一致導(dǎo)致安裝失敗或ssh failed(那就得重裝)
· 源地址換國內(nèi)源:清華源 記住和普通源不同要加上-ports,其他系統(tǒng)也應(yīng)該需要換名稱例如archlinuxarm,不行就用自帶源,建議用http不帶s的源,阿里云等強(qiáng)制s可能導(dǎo)致獲取不到源
· 安裝類型如果不是sd卡整個(gè)安裝建議就鏡像,路徑默認(rèn)為/sdcard/linux.img既然有root可以修改到任意位置,不建議改,方便es進(jìn)去主目錄就能直接看到鏡像,而且避免因路徑要root權(quán)限導(dǎo)致的不必要的麻煩
· 鏡像大小超過一定值就會(huì)變成2g,建議就0(自動(dòng))或者其他默認(rèn)值,我們后面可以通過擴(kuò)容擴(kuò)展容量,這里插一下我的情況:
即使把酷派清理到幾兆/2.17g仍舊不能加入2g以上鏡像,多哪怕1m都會(huì)在創(chuàng)建鏡像時(shí)失敗,但是之前說過建完2g還有1個(gè)多g可用,這里就是我的當(dāng)時(shí)的一大難關(guān)。我想過改安卓刷機(jī)包或者安卓分區(qū)等,最后都以失敗而告終。擴(kuò)容的問題我們下面再說
· 文件系統(tǒng)ext4沒什么問題,用戶密碼自己搞定,特權(quán)用戶改root(貌似可以換行添加多個(gè))
· 本地化不同版本選項(xiàng)不同,默認(rèn)即可,中文需求自己搞定
· dns自動(dòng)或者大廠,后面視版本不同選項(xiàng)可能稍有不容,trigger就理解為觸發(fā)器,比如power trigger就寫一些用于開機(jī)自啟動(dòng)的命令
· 初始化建議點(diǎn)上,沒具體比較過區(qū)別,掛載也是,不會(huì)對安裝造成影響。
· ssh不啟用我是不會(huì)玩,聲音自選圖形不建議選,我們可以進(jìn)入系統(tǒng)后自己添加桌面環(huán)境,設(shè)置可以更自由
· 桌面環(huán)境自己搞定把,我用的是xfce4+vnc網(wǎng)上教程一大把,從csdx白嫖來的東西確實(shí)太簡單了,建議可以多去github查md和issue而不是csdx上找成品(二手資料)
4. 擴(kuò)容
github地址先給你們https://github.com/meefik/linuxdeploy/issues/395
-
縮小img自己想辦法,我技術(shù)水平有限只會(huì)擴(kuò)容:停止容器然后telnet或安卓終端執(zhí)行下面的命令。n換成你要的大小(g)自己算一下就好,path換成img路徑應(yīng)該沒什么問題
dd if=/dev/zero bs=1048576 count=n*1000 >> path/linux.img e2fsck -f path/linux.img resize2fs path/linux.img 這時(shí)來了一道大坎。由于以上命令要在linux環(huán)境或者直接在手機(jī)上,所以需要環(huán)境有這些指令及指令所需的庫。手機(jī)缺指令,沒錯(cuò)就是busybox之外的指令,我從我mi6上cp了指令過去,執(zhí)行失敗,在linux內(nèi)對loop0執(zhí)行,執(zhí)行失敗,所以想到之前的一堆高難度騷操作。為什么我不移動(dòng)鏡像到別的linux環(huán)境呢?3g內(nèi)容無法移動(dòng)回到我酷派上去,系統(tǒng)判定過大,和之前直接創(chuàng)建2+g鏡像失敗是一個(gè)原因。最后功夫不負(fù)有心人,我本來4gimg在我平板上是不打算動(dòng)的,結(jié)果裝完圖形環(huán)境發(fā)現(xiàn)空間不夠用,想要擴(kuò)容到10g,先執(zhí)行了一下我酷派上缺的那個(gè)resize2fs 欸,成功了,然后我就開始擴(kuò)容,發(fā)現(xiàn)它缺酷派上有的e2fsck指令,這是候你就會(huì)發(fā)現(xiàn)es太有用了,兩邊直接指令互補(bǔ)了一下,發(fā)現(xiàn)e2fsck 還需要一個(gè).so的依賴庫文件我財(cái)大氣粗直接搜了一下幾個(gè)字母把所有相關(guān).so都復(fù)制過去了。本打算如有雷同直接跳過,沒想到?jīng)]有顯示文件重名沖突。擴(kuò)容平板到10g進(jìn)系統(tǒng)
df -h簡直完美。隨即把酷派的linxu擴(kuò)容到3.2g,基本是榨干了最后一點(diǎn)存儲(chǔ)。
DEBUG
安裝系統(tǒng)有異常
換源換版本換系統(tǒng)依次換,換到成功為止。這也是我為什么最后一個(gè)月就只裝了ubuntu的原因,centos老是有問題,kali成功過一次沒空間裝圖形太雞肋。
ssh ...failed
之前軟件包沒裝完或者部分包有異常安裝失敗導(dǎo)致的,重裝系統(tǒng)。執(zhí)行上一bug步驟
ssh ... mesg:ttyname failed:...
可以正常進(jìn)ssh沒問題,進(jìn)了之后直接sudo vi /root/.profile 在最后一行前面添加 tty -s && 重新配置一下就好了,不改其實(shí)也沒什么事
進(jìn)入普通用戶 命令行退格等亂碼
如果遇到按退格顯示^H切su即可解決,根治編輯/etc/passwd 找到你的普通用戶把最后的默認(rèn)sh改為bash或其他shell
php-fpm 裝了php用不了
我當(dāng)時(shí)請yoyojacky幫我搞的,他也試錯(cuò)了很多次,甚至幫我重新編譯安裝了nginx,最后不知道怎么搞好的有問題私聊我發(fā)一小段當(dāng)時(shí)操作錄像過去。其實(shí)即使正常了php但是連接數(shù)據(jù)庫等還是有問題,我最后是放棄了php。其他內(nèi)容
普通用戶無法su
重新配置即可,根治:把用戶添加進(jìn)sudoers 過程自己百度
重新配置后連不進(jìn)ssh 過程中出現(xiàn)ssh2
LD 只配置ssh ssh2無法配置,但在配置過程中可能會(huì)遇到ssh自動(dòng)轉(zhuǎn)到了ssh2,這是一件很尷尬的事情,我嘗試過在安卓下掛載這個(gè)img再在img內(nèi)部修改配置文件,掛載失敗。結(jié)論就是重裝系統(tǒng)。我想著看到這的應(yīng)該都是無技術(shù)力的,所以應(yīng)該不會(huì)有技術(shù)力改LD配置讓LD配置ssh2。如果你真的有這個(gè)技術(shù)力歡迎與我交流。
總結(jié)
敲個(gè)字還能把windows敲藍(lán)屏了。前天更新的小更新,都連著藍(lán)了兩次了。文字太多了建議全看一邊后在對著debug慢慢debug安裝和debug基本上是保姆式的了。刪除系統(tǒng)軟件前先確定有rom備份。mt的寨板雖然沒有刷機(jī)包我也是對照網(wǎng)上資料先備份原廠包的,有的系統(tǒng)應(yīng)用要試一下才知道能不能刪。擴(kuò)容補(bǔ)丁前也請備份一下/system/lib??傮w其實(shí)沒什么難度,但是如果我當(dāng)時(shí)有份文檔可以少走好多彎路,希望我也能夠幫助你們節(jié)省時(shí)間少走彎路。
link
LD:https://github.com/meefik/linuxdeploy/releases
busybox: https://github.com/meefik/busybox/releases
擴(kuò)容指令補(bǔ)?。?a target="_blank">https://lanzous.com/ibo3ung
終端模擬器: https://lanzous.com/ibo44mf
國外版es文件瀏覽器: https://lanzous.com/ibo4k8h
該文章由wjcwqc原創(chuàng),同步到github page和簡書
禁止轉(zhuǎn)載至csdn。轉(zhuǎn)載請注明出處