舊手機利用篇(一):做web服務(wù)器+文件服務(wù)器+下載機+語音助手
阿里云服務(wù)器到期了,就想著再怎么整一臺,剛好手邊有個紅米note4x,老早就有把他鼓搗成個服務(wù)器的想法一直沒有付諸實踐,這次就好好折騰一下。
一、web服務(wù)器
博客環(huán)境搭建這塊兒我參考了很多大佬的文章,都寫得很詳細,我就不在贅述了,只在這做個指路人,詳細的操作到相應(yīng)的博文中去參考就可以。
1. ?Termux + Vim + SSH + Mysql + Wget
基礎(chǔ)環(huán)境使用高級終端Termux搭建,這里很感謝國光大佬寫了
這篇文章(大佬的博客過于詳細導(dǎo)致文章打開可能會出現(xiàn)假死的情況,稍等一會兒就好),幫自己省去了很多時間,詳細的介紹及安裝教程跟著一步一步操作就可以了。如果想節(jié)省時間可以直接Ctrl+F找到相應(yīng)的章節(jié)。
2. JDK
我們要用到的博客系統(tǒng)是基于Java的,所以就必須要有JDK環(huán)境,JDK的安裝參考
3. 博客系統(tǒng)
博客系統(tǒng)這里使用
,有自己的管理系統(tǒng),直接提供Jar包,而且不用注冊任何博客社區(qū),可以很方便的管理自己得博客。
在Termux創(chuàng)建存放運行包的目錄,并進入該目錄
mkdir ~/blog && cd ~/blog
下載運行包
wget https://dl.halo.run/release/halo-1.6.0.jar -O halo.jar
創(chuàng)建工作目錄
mkdir ~/.halo && cd ~/.halo
下載示例配置文件到工作目錄
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
編輯配置文件,配置數(shù)據(jù)庫或者端口
vim application.yaml
默認使用的是h2數(shù)據(jù)庫,如果你也想使用h2只需要修改數(shù)據(jù)庫和密碼即可,其他的不需要動,這里我使用MySQL數(shù)據(jù)庫,所以配置文件需要改一下,具體可以參考我的配置文件;
application.yaml(Mysql版)
server:
?port: 8090
?# Response data gzip.
?compression:
? ?enabled: false
spring:
?datasource:
? ?# H2 database configuration.
? ?# driver-class-name: org.h2.Driver
? ?# url: jdbc:h2:file:~/.halo/db/halo
? ?# username: admin
? ?# password: 123456
? ?# MySQL database configuration.
? ?driver-class-name: com.mysql.cj.jdbc.Driver
? ?url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
? ?username: root #你的數(shù)據(jù)庫用戶名
? ?password: root #你的數(shù)據(jù)庫密碼
?# H2 database console configuration.
?#h2:
?# ?console:
?# ? ?settings:
?# ? ? ?web-allow-others: false
?# ? ?path: /h2-console
?# ? ?enabled: false
halo:
?# Your admin client path is https://your-domain/{admin-path}
?admin-path: admin
?# memory or level
?cache: memory創(chuàng)建數(shù)據(jù)庫(僅使用MySQL時需要,H2會自動生成)
create database halodb character set utf8mb4 collate utf8mb4_bin;
測試運行
cd ~/blog && java -jar halo.jar
若看到如下輸出,則表示啟動成功,可以在手機瀏覽器輸入http://localhost:8090進行測試
run.halo.app.listener.StartedListener ? ?: Halo started at ? ? ? ? http://127.0.0.1:8090
run.halo.app.listener.StartedListener ? ?: Halo admin started at ? http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener ? ?: Halo has started successfully!這里僅僅是測試啟動,終端被占用無法再輸入內(nèi)容,而且終端關(guān)閉后博客會馬上停止,測試成功后按Ctrl + C停止程序運行接著往后配置。
4. 后續(xù)配置
現(xiàn)在基本的博客可以正常運行了,但每次都需要手動啟動MySQL服務(wù),再啟動博客很雞肋,這里可以配置一個啟動腳本,打開終端自動執(zhí)行啟動命令。
打開Termux,在home目錄輸入以下命令編輯.bashrc文件
vim .bashrc ?# 如果在配置Termux時終端改為了zsh,則此命令改為 vim .zshrc
在文件中添加如下內(nèi)容并保存(具體的vim編輯操作自行百度)
if pgrep -x "sshd" >/dev/null
? ?then
? ? ? ? ? ?echo "sshd運行中"
? ?else
? ? ? ? ? ?sshd
? ? ? ? ? ?echo "sshd啟動..."
fi
if pgrep -f "mysql" >/dev/null
? ?then
? ? ? ? ? ?echo "mysql運行中"
? ?else
? ? ? ? ? ?nohup mysqld_safe &
? ? ? ? ? ?echo "mysql啟動..."
fi
sleep 1s
if pgrep -f "halo.jar" >/dev/null
? ?then
? ? ? ? ? ?echo "halo運行中"
? ?else
? ? ? ? ? ?rm -rf ~/blog/out.log
? ? ? ? ? ?nohup ~/software/openjdk-11.0.1/bin/java -jar ~/blog/halo.jar > ~/blog/out.log &
? ? ? ? ? ?echo "halo啟動..."
? ? ? ? ? ?sleep 1
? ? ? ? ? ?tail -f ~/blog/out.log
fi命令很簡單,就是通過pgrep -f 查找進程,如果已存在就輸出運行中,如果不存在就執(zhí)行啟動命令并輸出啟動nohup ... & 是使程序后臺運行,不占用終端,并將程序日志輸出到對應(yīng)的文件中(若指定路徑則輸出到指定文件,若不指定則輸出到執(zhí)行目錄下nohup.out文件中),啟動博客jar包時,會輸出啟動的日志,便于在啟動時查看是否啟動成功,啟動日志輸出完畢后直接Ctrl + C結(jié)束進程,不影響博客的運行。
博客配置
這樣我們的博客就配置好了,在termux中輸入ifconfig查看服務(wù)器的IP地址,在局域網(wǎng)任意瀏覽器輸入http://服務(wù)器IP:8090,就可以開始博客的首次配置了,后面博客頁面的配置,主題選用就很簡單了,都是傻瓜式操作的,我就不介紹了。
后臺運行
各種系統(tǒng)優(yōu)化可能會讓我們的博客一段時間后就一直轉(zhuǎn)圈無法加載,所以我們要給Termux各種后臺運行權(quán)限,各種系統(tǒng)具體操作不一樣就不細說了,這里提醒下有以下幾處可以設(shè)置:
開啟后臺自啟動;
多任務(wù)界面加小鎖;
耗電優(yōu)化設(shè)置無限制;
參考
,安裝下這個插件,博客中說這個插件是收費的,百度找下一大堆。還有一些終極優(yōu)化需要用到root權(quán)限,以及后續(xù)內(nèi)網(wǎng)穿透,后面一些功能也用的到,所以直接放在了最后。
web服務(wù)器配置結(jié)束: 酷安還有一種舊手機web服務(wù)器解決方案直接用ksweb這個軟件,配置起來要比我這個簡單很多,有需要的可以去看下,但是那個使用比較局限,所以我選擇了Termux,還可以用來跑個Python腳本啥的。
二、文件服務(wù)器
這部分就很簡單了,直接下載安裝
,并打開WiFi共享即可通過局域網(wǎng)訪問,X-plore功能還是挺強的,除了基本的文件管理,通過局域網(wǎng)訪問也可以直接瀏覽里面的圖片、音樂、視頻等,后面的下載機也是以此為基礎(chǔ)。
打開x-plore,并打開WiFi共享

2. 設(shè)置密碼(可選),并打開自動開啟選項(必選)

3. 使用效果,在局域網(wǎng)任何一個設(shè)備瀏覽器輸入你無線文件共享設(shè)置中顯示的服務(wù)器地址即可訪問

打開地址就可以看到了,界面還是挺友好的。
三、下載機
就是安裝一個下載軟件,這里推薦
,可以配合 解析音視頻,實現(xiàn)快速下載。
使用方法

有的小伙伴可能會想不明白了,我還得去拿著舊手機下載,還得給他充電,這還不如直接在經(jīng)常用的手機上下載呢,別著急,現(xiàn)階段只是能用,終極解決方案都放在了最后一節(jié)!
選擇工具箱—>嗅探媒體資源,獲取音、視頻源文件(如果獲取不到就先播放幾秒,或者刷新頁面重試)

操作結(jié)束之后(可以多存一點),我們盡管去干別的,等想追劇的時候直接用手機或者電腦連上上面的文件服務(wù)器,找到視頻文件就可以盡情的享受了,因為已經(jīng)下載好了,并且在局域網(wǎng)訪問,所以不會出現(xiàn)卡頓的現(xiàn)象
安裝好以上兩個軟件,打開x瀏覽器找到你需要的視頻,然后開始解析下載。
四、語音助手
小米/紅米手機
更新最新版的小愛同學(xué),開啟語音喚醒
按自己所需進行簡單的設(shè)置,有滅屏喚醒的也可以打開,我的是不支持了,滅屏無法喚醒,長期亮屏?xí)恋膯栴}最后一節(jié)會提供解決方案
在小愛同學(xué)設(shè)置中打開小愛實驗室—>錄屏教學(xué),自定義喚醒詞,教小愛喚醒我們之前的那些配置的那些軟件,萬一被殺后臺直接讓小愛幫我們打開。比如:自定義喚醒詞打開web服務(wù)器,然后會進入錄屏,你手動打開Termux之后結(jié)束錄屏,保存之后對小愛說打開web服務(wù)器,他就會幫你打開Termux。同理,X-plore也做此設(shè)置。
非小米手機
下載
(兩年前實測可用),或用手機自帶的語音助手(如果自己覺得好用的話)進行以上類似的設(shè)置
五、終極優(yōu)化方案
以上配置的功能都僅限能用,但使用起來總是不夠流暢,接下來把我目前能想到的一一解決,如果你覺得上面的就夠用,就可以到此為止了。
1. 常駐后臺
首先最基本的就是按照Termux配置那一節(jié)給需要常駐后臺的軟件添加相應(yīng)權(quán)限
2. 電源直供電
正經(jīng)服務(wù)器通常是插著電源使用的,但是手機經(jīng)常插電源電池會有危險,直接扣掉電池接電源又不能開機,這里提供三個思路,每個手機可選用的方式不一樣,根據(jù)自己機型選擇:
root之后刷magisk電量控制模塊,教程和資源酷安都有,我沒使用這種方案,就不提供了;
拆掉后蓋,扣下電池排線,拆下電池保護板,剪個數(shù)據(jù)線,保護板直接接5V電源正負極,然后扣上排線就可以通電開機使用了,個人建議去閑魚搜“手機直供線”,他們有賣的,基本就可以用這種方式了(當然你直接買我也沒意見)

如果你是紅米Note4X,那么恭喜你了,只要你是MIUI10及以上,你就可以扣掉電池排線,通過充電口插著電源使用了。這也是我一直將這部手機留在身邊的原因,也是我目前試過的唯一一部可以這樣操作的手機。
如果以上三種方式你都手機都實現(xiàn)不了,那就有些麻煩了,按照第二種方式,再接法拉第電容啥的,我也沒試過,去論壇之類的找找看吧,這里有一篇文章也可以參考
3.通電自啟動(需root)
有了電源直供電我們就可以設(shè)置通電自啟動,避免斷電關(guān)機之后還得去找到手機再啟動,這里提供兩位大佬的教程
, ,都寫得很詳細,兩篇結(jié)合著來就行。4. 遠程調(diào)試(建議root)
服務(wù)器一般都是遠程調(diào)試(這一步只是實現(xiàn)局域網(wǎng),外網(wǎng)后面再說),所以我們需要打開手機的無線adb調(diào)試功能,而且最好設(shè)置開機自動開啟,避免萬一斷電還得重新設(shè)置,這一步也是解決燒屏問題的關(guān)鍵,想要避免每次手動打開就必須root。參考
如果是小米手機,還需要開啟下面兩項,沒裝手機卡會提示需要裝sim、登錄小米賬號,只需要登錄賬號,裝個手機卡,將這兩項打開之后再取出手機卡,以后每次開機就默認開啟了。

至于遠程調(diào)試的話這里也推薦兩個軟件,手機端的甲殼蟲,電腦端使用晨鐘醬的投屏控制器
甲殼蟲: 輸入舊手機ip:端口(adb默認5555)點擊連接,連接成功后,下面會顯示已連接的設(shè)備,點擊選擇設(shè)備進入管理頁面。

點擊鼠標圖片,再點連接可開始遠程控制,其他頁面可查看手機信息

投屏控制器:下載解壓后,先修改配置文件



如果設(shè)置了開機啟動無線調(diào)試,并且之前連上了,一段時間之后連接不上,只需重啟手機即可。
5. 小愛喚醒
方法一:硬件法(推薦)
小愛同學(xué)只能亮屏喚醒,但是一直亮著屏幕又會燒屏,所以我直接使用了物理方式:手機設(shè)置永不滅屏,拆后蓋拔下手機屏幕和觸摸屏的排線開機使用(前提是上一步遠程調(diào)試設(shè)置好了,并且測試一兩天沒問題,不然來回拔插怪麻煩)。
如果上面小愛錄頻教學(xué)那一步你做好了,那么小愛同學(xué)也可以用作一個調(diào)試工具,如果實在連不上了,可以讓小愛同學(xué)打開軟件,或者干脆找小愛重啟。
方法二:軟件法
參考
,未經(jīng)過大量測試,也希望有大佬可以完善。
六、后續(xù)優(yōu)化(可選)
1. 內(nèi)網(wǎng)穿透
局域網(wǎng)我們實現(xiàn)了,如果想要正真的做一個服務(wù)器,還需要做內(nèi)網(wǎng)穿透,內(nèi)網(wǎng)穿透的方案也有好多,想整的話可以去酷安或者百度找一找,這里我使用了花生殼的免費體驗版,說是體驗版其實要6元,好處就是簡單易上手,而且有管理端,可以隨時靈活設(shè)置要映射的內(nèi)網(wǎng)端口,送一個超難記的二級域名,如果沒有固定外網(wǎng)IP或者向我這種居無定所的可以考慮,省得一直配置。缺點是免費兩年,而且每月限流只有1G。
花生殼
,服務(wù)器手機下載花生殼內(nèi)網(wǎng)版APP,打開登錄就好,同樣設(shè)置后臺免殺小愛喚醒。管理端可以下在常用的手機上或者也有web端的管理平臺,具體的映射需要在管理端添加,很簡單就不介紹了。
2. 域名設(shè)置
說到這里就不得不吐槽下了,在騰訊云看到個域名跟我的博客名挺搭,而且還挺便宜,一沖動買了10年的。。。結(jié)果去備案了才知道備案需要在域名服務(wù)提供商有云資產(chǎn),也就是說服務(wù)器也要在騰訊云,自己搭建的博客是不允許備案的?。?!國內(nèi)服務(wù)器不備案就無法訪問?。?!找了一圈找到個解決方案,不過感覺折騰起來挺麻煩,我又希望把手機帶在身邊使用小愛同學(xué),外網(wǎng)使用除了博客也沒啥需求,所以就此打住了,還有想法的可以繼續(xù)整下去,這里貼下大佬的教程
七、閑言碎語
為了搞這個東西手機先后刷了四次,第一次miflash刷機按默認選了刷機并上鎖,結(jié)果卡米無法開機,短接9008救回來了;之刷了MIUI9,想著會流暢一些,軟件都配置好了,結(jié)果最后低版本小愛不支持語音喚醒;又卡刷了MIUI12,從頭配置了一遍,小愛也支持語音喚醒,但是電源直供電又開不了機了(不知道具體原因,猜想是因為系統(tǒng)底包,因為開始搞這些之前確實是可以的);然后又線刷了MIUI10,從頭配置一遍,總算搞定!
這篇文章就是提供個舊手機利用思路,大佬勿噴,另外搞機需謹慎,斟酌能力再動手。
有問題歡迎評論區(qū)討論,格式有點亂,感興趣的小伙伴可以參考個人博客:https://www.runing.fun/try/webServer-fileServer-aiAi.html