1. 程式人生 > >Android使用adb進行簡訊資料轉移的方法

Android使用adb進行簡訊資料轉移的方法

作者:Yongquan

筆者在某個應用測試中有發現特殊簡訊傳輸失敗的問題,該問題涉及在地簡訊運營商與開發者分處不同地區無法復現。故本文介紹了一種使用eng版本模擬現場的方法。

首先,我們需要從測試樣機匯出簡訊資料庫,從程式碼中我們可以找到,簡訊的資料庫應該在/data/data/com.android.providers.telephony/databases

/mmssms.db。但實際上,在該路徑下並沒有找到該檔案,原因是android N以後加入了多使用者,不同使用者的data目錄發生改變,可以用adb在data目錄下進行查詢。


找到db檔案後,就可以用adb匯出該檔案。在該目錄下有一個mmssms.db-journal資料檔案,這個是sqlite的臨時日誌檔案,正常情況下可以忽略。

Adb pull /data/ user_de/0/com.android.providers.telephony/databases

/mmssms.db ./

接下來就可以匯入到除錯樣機,此時需要注意該檔案的owner和許可權。

Adb push mmssms.db /data/ user_de/0/com.android.providers.telephony/

databases/

匯入後使用adb檢視,發現檔案的owner是root,需要改成和上圖一樣的owner和許可權。

       cd /data/ user_de/0/com.android.providers.telephony/databases

       chown radio:radio mmssms.db

       chmod 660 mmssms.db


匯入完成後,需要重啟可以檢視匯入的資料。

用該方法也可以匯入第三方應用的資料,需要注意的是,如果是第三方應用,檔案的owner和appid相關,在不同樣機上可能會不同,需要修改owner與appid一致,否則可能出現訪問許可權的問題。