序
linux deploy 是用來(lái)在安卓環(huán)境上搭建一個(gè)linux容器的工具(app)可以用來(lái)讓老手機(jī)完成家庭智能網(wǎng)絡(luò)設(shè)備管理等linux上可以完成的事
我按我搬磚順序來(lái)講故事,干貨不太可能集中放置,要看干貨建議直接ctrl+f
找代碼段,我會(huì)盡量貼源地址方便大家參考磁玉。這篇文件會(huì)詳盡記錄我踩過(guò)的坑惋嚎,方便你們乘涼昵时。資料在文末(注:我的兩個(gè)安卓設(shè)備均為4.3-4.3的設(shè)備爵赵,安卓5.0+建議magisk+termux扛或。由于5.0+安卓改動(dòng)內(nèi)容相當(dāng)大,部分內(nèi)容不宜作為參考)
為何搬磚
一個(gè)字:窮
兩把剪線鍵盤在學(xué)校說(shuō)等著開(kāi)學(xué)去搞瓢颅,也沒(méi)帶一把回來(lái)(都是104鍵)另一把垃圾薄膜也放在學(xué)校恩尾。放假前說(shuō)著寒假就搞香橙派(PC2)也沒(méi)時(shí)間玩別的,發(fā)現(xiàn)家里只有ps/2鍵盤挽懦,結(jié)果就是沒(méi)東西玩了(香橙派就是要用掉它的圖形性能)翰意。準(zhǔn)備某魚(yú)入個(gè)百元機(jī)giao一搞,想起來(lái)家里有舊手機(jī)最后翻出來(lái)能用的就一個(gè)coolpad8720l和一個(gè)老人家在p夕夕買的山寨平板信柿。
兩個(gè)字:折騰
也差不多同時(shí)發(fā)現(xiàn)了meefik大佬的linux deploy(下簡(jiǎn)稱LD)冀偶,于是開(kāi)始了斷斷續(xù)續(xù)長(zhǎng)達(dá)一個(gè)月的搞機(jī)之旅。(不知道為什么那么多csdx上的碼農(nóng)那么不喜歡著名出處渔嚷,給個(gè)教程給個(gè)鏈接进鸠,原作者就被忘得一干二凈)
開(kāi)搞
1. 刷機(jī)
酷派手機(jī)
配置:4核32位armv7l 1+4g
刷機(jī)包:找個(gè)刷機(jī)包我直接host掉了百度前三頁(yè),最后就找到一個(gè)能用的刷機(jī)包形病,當(dāng)年的那些刷機(jī)網(wǎng)站全都把數(shù)據(jù)扔了客年,死都找不到第二個(gè)卡刷包,這就是互聯(lián)網(wǎng)嗎漠吻,吐了吐了量瓜。
rec:還好找到了一個(gè)煤礦的rec還帶root,不然干死了
精簡(jiǎn):安卓4.3 刷機(jī)包到手折騰了很久途乃,最后是直接zip解壓刪apk就完事
總結(jié):垃圾堆里翻金子
寨機(jī)
配置:最有意思的來(lái)了绍傲,到手一看安卓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ò)的,百度簡(jiǎn)直是個(gè)笑話前三個(gè)app都沒(méi)用邢享,而且360已經(jīng)放棄這個(gè)app了所以說(shuō)說(shuō)無(wú)所謂
統(tǒng)一步驟
線刷rec(寨機(jī)跳過(guò)
卡刷簡(jiǎn)化zip鹏往,可以同時(shí)把所需軟件加入刷機(jī)包(寨機(jī)跳過(guò)
最后root精簡(jiǎn)系統(tǒng)軟件
2. 環(huán)境
瑞士軍刀busybox
shell類軟件(終端模擬器v1.07或其他方便手機(jī)獨(dú)立操作)
sshclient軟件(還可以遠(yuǎn)程telnet替代adbshell連接電腦的麻煩)
es文件瀏覽器(從谷歌下載沒(méi)得廣告,用于清理存儲(chǔ)卸載軟件骇塘,開(kāi)放ftp等伊履,這軟件是真nb還支持tv pad 4.4-)
x11/vnc(可選,看你是否需要圖形環(huán)境)
LD 2.51(這是releases里最后一個(gè)支持4.4-的版本款违,當(dāng)然源程序是開(kāi)源的唐瀑,你大可以自己編譯更高版本)
3. 安裝
先裝busyboxapp和busybox,完事覺(jué)得不需要升級(jí)busybox工具版本就可以卸了節(jié)約空間
插爹!5.0+安卓版本請(qǐng)勿全部參照)es查看存儲(chǔ)哄辣,記住所見(jiàn)非所得请梢,因?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+
- 開(kāi)始搞大頭:配置LD :
· 左上角點(diǎn)開(kāi)選擇設(shè)置当窗,應(yīng)用欄建議勾選鎖定wifi和cpu喚醒够坐,其他按需調(diào)整
· 環(huán)境一欄只要先更新環(huán)境即可,首次開(kāi)軟件會(huì)自動(dòng)更新環(huán)境崖面,出大問(wèn)題的時(shí)候移除在更新是一個(gè)好方法(我沒(méi)用過(guò))
· 管理一欄勾選telnet斃掉本地主機(jī)元咙,這樣你就可以擺脫adbshell直接遠(yuǎn)程telnet到 手機(jī) http守護(hù)是用于webshell(我沒(méi)連上過(guò))我覺(jué)得沒(méi)用自帶的終端好像就是跳轉(zhuǎn)到瀏覽器連這個(gè)(問(wèn)題是我為了壓榨空間瀏覽器都卸了)
· 調(diào)試?yán)锩孀钪匾木褪枪凑{(diào)試模式,以后配置完美了或者是大概能確定問(wèn)題了就可以不開(kāi)減少主頁(yè)面輸出巫员,其他隨意吧庶香,日志啥的占空間我就沒(méi)弄
· 接下來(lái)介紹與設(shè)置同級(jí)的三個(gè)按鈕“配置文件”“倉(cāng)庫(kù)”“終端”
· 配置文件是用來(lái)管理多個(gè)Linux系統(tǒng)配置的,也可以改配置名稱就是主頁(yè)最上面的標(biāo)題名(five功能
· 倉(cāng)庫(kù)是預(yù)先提供的配置(five功能
· 終端之前說(shuō)過(guò)了(five功能
· 為什么是five功能呢疏遏?因?yàn)榕渲米约菏謩?dòng)調(diào)就可以了脉课,自帶的還是要改配置,終端可以借助telnet實(shí)現(xiàn)adb式管理
· 最后說(shuō)一下具體步驟:
· 主界面右下角點(diǎn)開(kāi)配置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)重新配置即可再有問(wèn)題,就看下面debug過(guò)程了
· 我只成功過(guò)Ubuntu和kali的配置疫鹊,其他bug沒(méi)法幫你們de袖瞻。文字很多過(guò)程很長(zhǎng),走到這你可能成功了一大半了拆吆,后面是看運(yùn)氣的時(shí)候
· 我以u(píng)buntu為例聋迎,如果你的LD版本低先裝xenial(16.04LTS)在升級(jí)到bionic(18.04LTS)架構(gòu)盡可能不變,對(duì)自己手機(jī)架構(gòu)了解的可以自己改枣耀,出事了大不了花時(shí)間重來(lái)霉晕。
· 裝低版本是因?yàn)楦甙姹究赡軙?huì)出現(xiàn)app要預(yù)裝的linux軟件包和源不一致導(dǎo)致安裝失敗或ssh failed(那就得重裝)
· 源地址換國(guó)內(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)致的不必要的麻煩
· 鏡像大小超過(guò)一定值就會(huì)變成2g筏养,建議就0(自動(dòng))或者其他默認(rèn)值胯盯,我們后面可以通過(guò)擴(kuò)容擴(kuò)展容量兼丰,這里插一下我的情況:
即使把酷派清理到幾兆/2.17g仍舊不能加入2g以上鏡像隶校,多哪怕1m都會(huì)在創(chuàng)建鏡像時(shí)失敗蜈漓,但是之前說(shuō)過(guò)建完2g還有1個(gè)多g可用,這里就是我的當(dāng)時(shí)的一大難關(guān)掌猛。我想過(guò)改安卓刷機(jī)包或者安卓分區(qū)等盏浙,最后都以失敗而告終。擴(kuò)容的問(wèn)題我們下面再說(shuō)
· 文件系統(tǒng)ext4沒(méi)什么問(wèn)題荔茬,用戶密碼自己搞定废膘,特權(quán)用戶改root(貌似可以換行添加多個(gè))
· 本地化不同版本選項(xiàng)不同,默認(rèn)即可慕蔚,中文需求自己搞定
· dns自動(dòng)或者大廠丐黄,后面視版本不同選項(xiàng)可能稍有不容,trigger就理解為觸發(fā)器孔飒,比如power trigger就寫(xiě)一些用于開(kāi)機(jī)自啟動(dòng)的命令
· 初始化建議點(diǎn)上灌闺,沒(méi)具體比較過(guò)區(qū)別,掛載也是坏瞄,不會(huì)對(duì)安裝造成影響桂对。
· ssh不啟用我是不會(huì)玩,聲音自選圖形不建議選鸠匀,我們可以進(jìn)入系統(tǒng)后自己添加桌面環(huán)境蕉斜,設(shè)置可以更自由
· 桌面環(huán)境自己搞定把,我用的是xfce4+vnc網(wǎng)上教程一大把缀棍,從csdx白嫖來(lái)的東西確實(shí)太簡(jiǎn)單了宅此,建議可以多去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)該沒(méi)什么問(wèn)題
dd if=/dev/zero bs=1048576 count=n*1000 >> path/linux.img e2fsck -f path/linux.img resize2fs path/linux.img
這時(shí)來(lái)了一道大坎青瀑。由于以上命令要在linux環(huán)境或者直接在手機(jī)上侣诵,所以需要環(huán)境有這些指令及指令所需的庫(kù)。手機(jī)缺指令狱窘,沒(méi)錯(cuò)就是busybox之外的指令,我從我mi6上cp了指令過(guò)去财搁,執(zhí)行失敗蘸炸,在linux內(nèi)對(duì)loop0執(zhí)行,執(zhí)行失敗尖奔,所以想到之前的一堆高難度騷操作搭儒。為什么我不移動(dòng)鏡像到別的linux環(huán)境呢穷当?3g內(nèi)容無(wú)法移動(dòng)回到我酷派上去,系統(tǒng)判定過(guò)大淹禾,和之前直接創(chuàng)建2+g鏡像失敗是一個(gè)原因馁菜。最后功夫不負(fù)有心人,我本來(lái)4gimg在我平板上是不打算動(dòng)的铃岔,結(jié)果裝完圖形環(huán)境發(fā)現(xiàn)空間不夠用汪疮,想要擴(kuò)容到10g,先執(zhí)行了一下我酷派上缺的那個(gè)resize2fs 欸毁习,成功了智嚷,然后我就開(kāi)始擴(kuò)容,發(fā)現(xiàn)它缺酷派上有的e2fsck指令纺且,這是候你就會(huì)發(fā)現(xiàn)es太有用了盏道,兩邊直接指令互補(bǔ)了一下,發(fā)現(xiàn)e2fsck 還需要一個(gè).so的依賴庫(kù)文件我財(cái)大氣粗直接搜了一下幾個(gè)字母把所有相關(guān).so都復(fù)制過(guò)去了载碌。本打算如有雷同直接跳過(guò)猜嘱,沒(méi)想到?jīng)]有顯示文件重名沖突。擴(kuò)容平板到10g進(jìn)系統(tǒng)
df -h
簡(jiǎn)直完美嫁艇。隨即把酷派的linxu擴(kuò)容到3.2g朗伶,基本是榨干了最后一點(diǎn)存儲(chǔ)。
DEBUG
安裝系統(tǒng)有異常
換源換版本換系統(tǒng)依次換裳仆,換到成功為止腕让。這也是我為什么最后一個(gè)月就只裝了ubuntu的原因,centos老是有問(wèn)題歧斟,kali成功過(guò)一次沒(méi)空間裝圖形太雞肋纯丸。
ssh ...failed
之前軟件包沒(méi)裝完或者部分包有異常安裝失敗導(dǎo)致的,重裝系統(tǒng)静袖。執(zhí)行上一bug步驟
ssh ... mesg:ttyname failed:...
可以正常進(jìn)ssh沒(méi)問(wèn)題觉鼻,進(jìn)了之后直接sudo vi /root/.profile 在最后一行前面添加 tty -s &&
重新配置一下就好了,不改其實(shí)也沒(méi)什么事
進(jìn)入普通用戶 命令行退格等亂碼
如果遇到按退格顯示^H
切su即可解決队橙,根治編輯/etc/passwd
找到你的普通用戶把最后的默認(rèn)sh
改為bash
或其他shell
php-fpm 裝了php用不了
我當(dāng)時(shí)請(qǐng)yoyojacky幫我搞的坠陈,他也試錯(cuò)了很多次,甚至幫我重新編譯安裝了nginx捐康,最后不知道怎么搞好的有問(wèn)題私聊我發(fā)一小段當(dāng)時(shí)操作錄像過(guò)去仇矾。其實(shí)即使正常了php但是連接數(shù)據(jù)庫(kù)等還是有問(wèn)題,我最后是放棄了php解总。其他內(nèi)容
普通用戶無(wú)法su
重新配置即可贮匕,根治:把用戶添加進(jìn)sudoers 過(guò)程自己百度
重新配置后連不進(jìn)ssh 過(guò)程中出現(xiàn)ssh2
LD 只配置ssh ssh2無(wú)法配置,但在配置過(guò)程中可能會(huì)遇到ssh自動(dòng)轉(zhuǎn)到了ssh2花枫,這是一件很尷尬的事情刻盐,我嘗試過(guò)在安卓下掛載這個(gè)img再在img內(nèi)部修改配置文件掏膏,掛載失敗。結(jié)論就是重裝系統(tǒng)敦锌。我想著看到這的應(yīng)該都是無(wú)技術(shù)力的馒疹,所以應(yīng)該不會(huì)有技術(shù)力改LD配置讓LD配置ssh2。如果你真的有這個(gè)技術(shù)力歡迎與我交流乙墙。
總結(jié)
敲個(gè)字還能把windows敲藍(lán)屏了颖变。前天更新的小更新,都連著藍(lán)了兩次了伶丐。文字太多了建議全看一邊后在對(duì)著debug慢慢debug安裝和debug基本上是保姆式的了悼做。刪除系統(tǒng)軟件前先確定有rom備份。mt的寨板雖然沒(méi)有刷機(jī)包我也是對(duì)照網(wǎng)上資料先備份原廠包的哗魂,有的系統(tǒng)應(yīng)用要試一下才知道能不能刪肛走。擴(kuò)容補(bǔ)丁前也請(qǐng)備份一下/system/lib
÷急穑總體其實(shí)沒(méi)什么難度朽色,但是如果我當(dāng)時(shí)有份文檔可以少走好多彎路,希望我也能夠幫助你們節(jié)省時(shí)間少走彎路组题。
link
LD:https://github.com/meefik/linuxdeploy/releases
busybox: https://github.com/meefik/busybox/releases
擴(kuò)容指令補(bǔ)逗小:https://lanzous.com/ibo3ung
終端模擬器: https://lanzous.com/ibo44mf
國(guó)外版es文件瀏覽器: https://lanzous.com/ibo4k8h
該文章由wjcwqc原創(chuàng),同步到github page和簡(jiǎn)書(shū)
禁止轉(zhuǎn)載至csdn崔列。轉(zhuǎn)載請(qǐng)注明出處