2012-03-13 54 views
3

我正在嘗試創建一個能夠訪問和修改/data/data/中的受保護數據庫的應用程序。這個過程顯然需要root權限,我正在根設備上測試它。訪問SQLite數據庫的一般代碼是完整的,並且針對位於其他地方的測試數據庫(在/sdcard/上)工作。使用root訪問和修改Android上的受保護數據庫

但是,當我希望應用程序訪問/data/data/內的數據庫時,它顯然失敗,因爲我試圖以普通用戶的身份訪問它。我已經閱讀了關於在Android上使用su二進制文件的主題,並且據我瞭解,它通常只用於執行shell命令。

因此,我最初的想法是在應用程序啓動時更改文件的權限,並在退出時將其更改回來。所以在實際上在應用程序本身中實現它之前,我使用我的文件瀏覽器將權限更改爲rw-rw-rw-。但是我的應用程序仍然無法打開數據庫。

我的下一個想法是直接從外殼使用sqlite3程序,但我發現,我的ROM不來的,所以我將不得不發佈它自己(鈦備份似乎這樣做) 。

但是有些東西讓我懷疑是否有更好的方法:我使用Root Explorer作爲我的文件瀏覽器,它有一個內置的方式來瀏覽任何 SQLite數據庫。鑑於它似乎沒有附帶自定義的sqlite3二進制文件,並且我的手機本身沒有,訪問似乎使用普通的Java工具進行。但是,應用程序如何獲得root權利呢?

有沒有辦法讓Android應用程序以root身份運行?還是我忘記設置一些權限以防止我訪問它?或者有沒有人知道如何根目錄瀏覽器呢?

回答

0

就我所知,您無法提高正在運行的進程的權限。最簡單的答案是使用root shell /命令行將其複製到某處,然後再以root身份複製它。是的,我的確看過你的問題,只是沒有完全解釋答案。希望現在很清楚。不確定root explorer是否會執行該操作或其他操作,但它可以工作。