小天才手表逆向研究


本人已棄坑,請勿私聊,謝謝!
請注意,有不法分子嘗試使用本文章方法寫入無綁定barcode盈利,請自行拆開手表掃內(nèi)部barcode辨認,請在購買前要求商家拆開手表查看barcode貼紙或購買后自行拆開掃描,如果不一致,請立即退貨,防止被定位跟蹤?。?!
如:有人出售無鎖機,你購買后他綁定自己app,你收到貨發(fā)現(xiàn)沒有解綁,找他,他開啟鎖定模式并把你拉黑。
小天才亦或成為新一代定位器
正文:
好吧,這是我第一次寫正式的blog。說實在的,本來很早就有打算寫這個了,但是沒時間?。?/span>
不管了,就開始寫吧(
關(guān)于小天才

小天才手表的內(nèi)置應(yīng)用真的一言難盡...Launcher里都能內(nèi)置nv讀寫,牛逼。但是生態(tài)真的強,不說這些有的沒的了。
沒啥好說的,直接開搞。
起因

很早之前借別人同學的手表拿來研究發(fā)現(xiàn)居然無法安裝應(yīng)用,好吧,然后自己花了接近100大洋的冤枉錢去買了個z5q鎖機,結(jié)果還是被我解了(bushi。如果沒有這臺z5q,就沒有后來的sboot,謝謝你(
我找不到源文件了,但是我就是SBoot開發(fā)者其中之一,咋滴,不信你自己去問fatfish,8說了,sboot源文件我們倆都找不到了。

感謝xrzyun的XTC文件(https://www.xrzyun.top/blog/XTC-Files),沒有這個sboot備份就沒有這篇文章(確信
過程

對于鎖機啊,最簡單的不聯(lián)網(wǎng)解除丟失模式肯定是刷超級恢復了(
刷完之后,發(fā)現(xiàn)手表沒有adb,咋辦?有*#0769651#*這串申必代碼,好家伙,輸入進去很快啊,adb就打開了。
然后我輸入*#0769789#*準備打開開發(fā)設(shè)置的時候,好家伙,沒反應(yīng),牛逼了(新系統(tǒng))
反編譯/system/app/XTCSetting/XTCSetting.apk。得到其activity為com.xtc.selftest.ui.ControllerActivity
所以只需要am start com.xtc.selftest/.ui.ControllerActivity即可。
打開充電可使用,串口。
把所有代碼送給你們(雖然有些調(diào)用不了)

實際上,這個就是調(diào)用schema開啟對應(yīng)的activity,如果能用webview test的話應(yīng)該都能調(diào)用(
例如0769651,就是setting_secret_code://0769651,不知道這種能不能用am啟動??
解掛失鎖

首先,如果已經(jīng)鎖定,有adb與sboot的前提下,你可以嘗試su后killall com.android.systemui,再rm -rf /data/data/com.xtc.i3launcher/files/*,當然,不推薦,因為這樣對方還是能定位你
為了解鎖(起碼要正常使用網(wǎng)絡(luò)),開始搗鼓barcode,發(fā)現(xiàn)barcode是寫死在cmdline里的,反編譯aboot發(fā)現(xiàn)barcode的nvram id為2497。打開QXDM Professional里的NV Browser,找到02497(Factory Data Storage Area 1,Category為STRIUS Factory,新版QXDM不一定能看到,反正找2497就對了),一共10位(FACTORY_DATA_1[0-9]),為ASCII編碼,分別修改即可。修改前先點read讀取barcode,修改完后多點幾次write防止被系統(tǒng)覆寫,再點擊reset重啟手表。建議是改完之后刷一遍超級恢復,否則需要多次重啟系統(tǒng)生效。
如果你買了臺鎖機,對綁定不感興趣的,可以備份一遍nv或者記下2497的10位ascii編碼,然后再瞎幾把改。(萬一對方什么時候解除綁定了呢((()
如果對xtc串號感興趣的,反編譯/system/app/XTCLauncher/XTCLauncher.apk。會發(fā)現(xiàn)NvApi都整上了(com.xtc里的NvApi類),調(diào)用外部jni(nvapi_xtc.so),

繼續(xù)挖掘,發(fā)現(xiàn)com.xtc.rwmac與com.xtc.i3launcher.status.band NvApiUtil類,rwmac沒啥用(在新版系統(tǒng)似乎棄用),NvApiUtil才是重量級,內(nèi)含多個用于測試的barcode/imei等

然后捏,反編譯nvapi_xtc.so,你會發(fā)現(xiàn)里面跟shi一樣根本沒法讀。反正怎么改前面都跟你說了,看著辦吧(bushi
后來

最開始我試的時候,adb install 無法使用,然后pm install是可以的。但是后來小天才官方加了個所謂“pm鎖”,導致pm install也不能使用了,小天才萬惡之源了屬于是。
簡單分析下pm install的源碼:
提取/system/framework/oat/arm/pm.odex,轉(zhuǎn)dex后反編譯,得到pm源碼,發(fā)現(xiàn)if判斷,自己看吧,不多說。

關(guān)于persist.sys.adb.install這個,XTCSetting和XTCLauncher都沒有對應(yīng)的代碼,可能需要人工設(shè)置???
于是研究adb install,反編譯源boot鏡像里的/sbin/adbd(ramdisk來自我XDPT:https://github.com/XTC-Droid-Port-Team/xtc_msm8909w_dump/tree/msm8909w-user-7.1.1-NMF26F-eng.root.20191218.012241-release-keys/boot/ramdisk),好家伙,persist.sys.adb.install沒找到,反倒是找到了個persist.sys.adb.apk,而且之前XTCSetting與XTCLauncher都有看到,很難不相信這一定和adb install有關(guān)。
(圖來自XTCLauncher com.xtc.modulemanager.server ModuleSwitchServerImpl)

繼續(xù)看ref,發(fā)現(xiàn)引用就在上面(


好家伙,這不是用來切換服務(wù)環(huán)境的嗎,看來我們user和這個無關(guān)了(
那就繼續(xù)看XTCSetting,發(fā)現(xiàn)遠程開啟開關(guān),這就是所謂的“官方開發(fā)者解鎖”了吧(


哎,問題來了,這個DevNetHelper到底事甚么東西呢?(
有請大家接下來欣賞一段“美麗”的申必代碼(


如何評價:不好評價(bushi
一句話,暴力(
不過xtc用http,真的不怕被抓包嗎(bushi
這就事所謂的“官方解鎖”,真無聊。