今天要來分享的也是一個我在工作上遇到的問題
由於我最近的案子是做一個跟金融相關的APP,而在金融相關的APP上往往資安上的處理都必須要做得比較嚴格億點點
所以有天客戶(應該吧)那邊就突然要我們做所謂的「脱獄化検知」的這個操作
注:因為我在日本上班所以脱獄化検知這個詞是日文
什麼脱獄化?我還以為是什麼政府的新政策勒
後來我查一了一下
喔,原來是刷Root啊!(台灣講刷機)
講個那麼有鋼鐵墳墓之感的用詞我還真的一時沒有意會到(笑)
好啦,那回歸正題。先來看一下效果
其實也就是一個判斷而已,跟Android好像關係不大(笑)
不過我姑且有上傳Git,在裏面的Readme也有寫一些步驟,大家可以去看一下
->Github
1. 上~~~程~~~式
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ((TextView)(findViewById(R.id.text_hello))).setText("裝置是否刷機?: "+isRoot()); } private boolean isRoot(){ try{ Process process = Runtime.getRuntime().exec("su"); process.destroy(); return true; }catch (IOException e){ return false; } } }
好,結束
恩,對。就這樣
其原理也就是對著Android的系統發一個名為「su」的指令,然後去檢證他有沒有反應
有的話就是有刷機,沒有反應就是沒刷機,就真的只是這樣而已(笑
那麼今天的文章就到這邊,喜歡的話....
欸不是,我會寫出這種文字那麼少的文章嗎??
(好像也不是不行(?))
好啦,認真講就是如果你的需求只有到上面而已,那我想已經夠了
不過如果你跟我一樣,需要驗證給上頭讓他們可以有個交代的話,那倒是建議你繼續往下看看
就著實務來說吧,一般人也很難馬上生出一支刷好機的手機去驗證
所以相對來說嘗試著去刷Android Studio的模擬器(以下簡稱AVD)可能更實際一些
於是後來我找到了這個專刷AVD的工具
從名字來看,這就是一個妥妥的刷模擬器的工具唄
而且開發者不但幫你寫好,他還很貼心的教你怎麼用這套工具
而我ㄋ..就當我搬運工吧,直接把他的教學消化完寫成中文給你看XD
好啦,廢話不多說,開始吧
2. 開始刷AVD之前
首先雖然他的庫Mac、Windows跟Linux都可以使用
不過因為我本人手邊沒有Windows電腦(一般不是反過來嗎XD),因此本文沒辦法用Windows操作給你看
這個函式庫的作者有提供Windows的安裝影片教學,可能只能麻煩你們去看原文了....
那,我就直接開始安裝了
首先在安裝之前,要先去Android Studio去開啟模擬器
開模擬器的方法隨便找隨便有,我就放一個別人的影片供參考吧
OK,開好模擬器之後,揪下來進入到adb操作
以下步驟我在readme都有寫,要看精簡版也可以去看readme
->README
首先第一步,我們要先找到能夠執行adb的資料夾
而adb的位置通常會被安裝在
~/Library/Android/sdk/platform-tools/
的路徑底下,因此我們先打開終端機(terminal),並輸入
cd ~/Library/Android/sdk/platform-tools/
再來我們可以檢證一下adb是否可用,也順便檢查模擬器是否有開
輸入
./adb shell
這時候如果模擬器有開的話,應該會進入到模擬器的內部
這時候打上id的話,他就會告訴你一些訊息
確認好後,打上exit退出
3. 開始刷AVD
接下來就要實際刷機了,首先我先回到sdk的主要資料夾
cd ..
再來下載rootAVD
git clone https://github.com/newbit1/rootAVD.git
(跑跑跑🎵向前跑🎵經過小巷和大道🎵)←靠北這多久的歌了...
接下來是安裝,在安裝之前必須先給一個環境變數
export PATH=~/Library/Android/sdk/platform-tools:$PATH
再來進入rootAVD資料夾
cd rootAVD
後,開始安裝
./rootAVD.sh ~/Library/Android/sdk/system-images/android-31/google_apis_playstore/x86_64/ramdisk.img
基本上沒意外的話就是一直跑...跑很大一串後安裝完成
在這裡,模擬器會被自動重開,而重開完成後就會在面上看到Magisk軟體,基本上跟我們沒什麼關係(笑)
最後再開一次我們的驗證程式,就可以看到已經完成刷機囉
其實刷機喔..我覺得近幾年除了喜歡玩手機的玩家以外,一般人也不太刷機了
因為最早要刷機的理由不外乎都是優化系統或者某些APP需要刷機才能用等等
但近幾年Android越做越好,我感覺慢慢地似乎也越來越沒有刷機的必要了
不過世界那麼大,也真的無法保證現在還有經常拿著刷好的手機在路上跑的人就是了(苦笑
好啦,那今天的文章就到這,希望對你有幫助囉