反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

祥子2333發表於2019-02-26

堅果 Pro2s 京東開賣兩週,評論僅1.1萬。TNT 預定數量不足100臺。但是8月20日錘子科技的產品釋出會上,「子彈簡訊」火了。

但是這個子彈簡訊到底好不好用呢?正所謂沒有調查就沒有發言權,作者特意去應用寶下載了子彈簡訊並重度使用了四天。

介面略顯過時且 BUG 較多

擬物風格略顯過時

首先是子彈簡訊的介面,錘子 os 的擬物化是一貫的標誌,而子彈簡訊的狀態列是純黑的,未經過處理和定義,和 Android4.4(api<19)之前一樣,,與 app 整體顏色差別極大。許可權還是一次性獲取(target<22)。主頁選項卡可能是用上古時代的 tabhost 做的以至於切換特別生硬,並且每次切換頂部還會出現大白條,結合著2013年的擬物化風格,在 Android 已經升級為 api28 的2018年顯得格格不入。

無處不在的 bug。

例如註冊時輸錯手機號,已經按出傳送驗證碼的情況下,刪除一位號碼重新輸入,驗證碼倒數計時繼續,但是 Button 的響應事件卻做了恢復,在作者的連續點選下,幾秒後收到一連串的簡訊。

再例如使用者分享的群碼,在群沒滿員二維碼沒過期的狀態下,經常失效,使得本來為數不多的加好友方式變得更加困難。

再例如訊息通知的 bug,每一個人一個群傳送的訊息,都在通知欄單條顯示,早上起來錘友群的56條通知欄訊息著實令我驚訝。

再例如介面的暴露,經網友抓取網路介面,發現子彈簡訊介面暴露以至於洩露使用者資訊。
還有各種不經意的閃退小問題暫且不表。

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

子彈簡訊的使用場景有限。

除了去錘科論壇的錘友間互相加好友取樂(二維碼還經常失效),很難找到第二種使用場景。而新增好友形式的單一導致往往開啟軟體想找個人聊聊天都找不到,即使強大的熟人社交 app 如微信 QQ,也有發現功能,爭取使用者的留存。而子彈簡訊卻只有輸入 id 或者手機號這兩種方式才能加到新好友,並沒有模糊搜尋功能。

使用者資訊洩漏,存在色情騷擾

而與此同時由於介面的暴露,導致使用者資訊曝光,經常騙子老鴇之流騷擾使用者,賣藥賣春,搞得使用者很頭疼。

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

聊天功能異常流暢,緣於整合網易雲信 SDK

但是在各種不厭其煩的功能 bug 和令人窒息的操作手感下,作者發現子彈簡訊的通訊卻做得異常流暢,即時通訊想要做到如此,所需要的難度及技術積累頗多。而錘子科技作為一個小規模軟體團隊,是怎麼將通訊核心做的如此流暢的呢?

帶著這些疑問,我逆向拆解了子彈簡訊 APP:

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

開啟apk,沒有問題,我們看到了 okhttp,錘子科技作為一家方案整合公司,沒有自己的網路框架而採取 okhttp 網路框架也是很正常的,我們用 dex2jar開啟程式碼看看:

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

這下就麻煩了,我看到了 com.tencent.StubShell.TxAppEntry,錘子科技上傳應用寶,經過了騰訊雲的加固,這使得破解工作變得繁瑣了一些,正在作者準備大張旗鼓暴力脫殼的時候,突然想到平時研(ctrl)究(c)程式碼慣了,連常識都忘了,於是作者用 AXMLPrinter 開啟了子彈簡訊 apk 的 AndroidMainFest.xml,果然,發現了一些玄機:

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

子彈簡訊的 AndroidMainfest.xml

經作者搜尋發現,這是網易雲信 sdk 的 appid 設定程式碼

link.zhihu.com/?target=htt…

dev.yunxin.163.com/docs/produc…

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

沒錯,就是網易雲信 sdk。

子彈簡訊對外公佈融資1.5個億,估值20億,Appstore 第一,核心功能原來是基於網易雲信 sdk demo 進行的修改與再創作。

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

部分頁面包含 netease 欄位,懷疑是直接採用的網易雲信 demo 程式碼。

反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK
反向編譯了子彈簡訊的 APK,核心功能為整合網易雲信 SDK

大家可能不太理解這個意義,一般情況下,選擇呼叫即時通訊 sdk 的 app,聊天都是其附加功能,比如蜻蜓 fm 的主要功能是音訊系統。順風,主要功能是送快遞。智聯招聘,主要功能是人才市場的大資料分類等等,它們的聊天只是一個附加的小功能,而開發即時通訊費財費力,呼叫即時通訊 sdk 都是很正常的。

而子彈簡訊,它作為一款專門定義為社交聊天的 app,核心的即時通訊功能也是呼叫即時通訊 sdk。並且在短時間內獲取了1.5個億的融資。

結論

子彈簡訊核心功能呼叫網易雲信 SDK,體驗流暢。證明網易雲信的服務還是很不錯的。子彈簡訊本身在如此短時間聚集極高熱度,除了老羅個人的品牌,產品本身也還算有幾分新意吧。

但是 BUG、黃色資訊的問題不解決,子彈簡訊終歸曇花一現。

相關文章