iT邦幫忙

0

Android APP有效率獲得SQLite db的方法

想要取得某個APP的SQLite db檔案,目前我的作法是下載APK,把APK安裝在Android手機上,再透過ADB指令去把db dump下來。
但如果我想看20個APP的db table架構,這樣很耗費時間在APK安裝、dump資料上。
想到這個db的架構資訊應該也是被包在原本的APK中,有沒有什麼辦法可以透過APK直接檢視他的SQLite db table、column name、定義的data type等等資訊呢?
謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-08-06 12:32:21

直接把 apk 當成 zip 檔解壓縮
找 assets 目錄
Yes

看更多先前的回應...收起先前的回應...
leeweiche iT邦新手 5 級 ‧ 2022-08-06 15:10:53 檢舉

應該是這個方向沒錯,但我照著影片用即時通訊軟體Line來實作,要去分辨assets內容哪一個是可以用SQLite browser打開,並不像影片中那麼容易找到,不知道還有沒有其他指標比較容易辨識應該要選哪一檔案

我不知道 Line 有沒有使用 SQLite database
你確定有嗎?

leeweiche iT邦新手 5 級 ‧ 2022-08-07 07:43:34 檢舉

我確定有耶,Android資料表都是用SQLite db儲存,我之前下載app到手機再把db dump出來用SQLite browser都可以正常檢視。
但我現在是想直接透過apk來獲得這部分的資訊,我有多用幾個聊天app來實驗,每個app架構都不一樣,我還沒有成功在assets找到QQ,理論上這個資訊應該是包在apk中沒錯呀

我確定有耶,Android資料表都是用SQLite db儲存

那我就不知道了
祝你好運

科科 iT邦研究生 1 級 ‧ 2022-08-08 14:23:37 檢舉

Android資料表都是用SQLite db儲存

沒有所有Android都是用SQLite喔,你自己都說每個app架構都不一樣,
怎麼可能讓你有規律地找出資料庫。

舉我自己的經驗,我接手到的專案,資料庫就不會放在前端,
而是透過後端存取,SQLiteDB 也是放在後端伺服器上,
所以根本不會讓你存取到。

leeweiche iT邦新手 5 級 ‧ 2022-08-08 21:42:34 檢舉

你說的沒錯,這句話是我描述的不太精確。
我是因為最近在看的聊天APP資料都放在前端,所以想知道以此為前提,這種APP的資料庫架構有沒有辦法透過直接看APK的方式來瞭解,不一定要規律的分析規則,而是找得到即可。
實際拆了幾個APK跟問有研究這塊的人,得到的答案是資料庫是APK安裝後才會建立起來,而資料庫的資訊被打包起來沒這麼容易透過分析apk得知@@

我要發表回答

立即登入回答