2012-03-13 2 views
3

/data/data/の中で保護されたデータベースにアクセスして変更できるアプリを作成しようとしています。このプロセスは明らかにroot特権を必要とし、私はrootedデバイスでこれをテストしています。 SQLiteデータベースにアクセスするための一般的なコードは、完全であり、他の場所にあるテストデータベース(/sdcard/)に対して機能します。Androidで保護されたデータベースにアクセスして変更するにはrootを使用

しかし、私がアプリケーションを/data/data/の中のデータベースにアクセスさせたい場合、通常のユーザーとしてアクセスしようとすると明らかに失敗します。私は、ちょっとAndroid用のsuバイナリを使用するという話題を読んでいます。これは通常、シェルコマンドのみを実行するために使用されていたことを理解しています。

この作業を行う私の最初の考えは、アプリケーションの起動時にファイルのアクセス許可を変更し、終了時に元に戻すというものでした。したがって、アプリケーション自体で実際に実装する前に、ファイルエクスプローラを使用して、アクセス許可をrw-rw-rw-に変更しました。しかし、私のアプリケーションはまだデータベースを開くことができませんでした。

私の次のアイデアは、シェルから直接sqlite3プログラムを使用していたが、私は私のROMが付属していませんので、私はそれを自分自身を配布しなければならないこと、が分かった(チタンバックアップはそれを行うようです) 。

は、しかし、より良い方法がないかもしれないなら、私は思ってしまうものがある:私は私のファイルエクスプローラとしてRoot Explorerを使用していますが、それはどの SQLiteデータベースを閲覧する組み込みの方法があります。カスタムのsqlite3バイナリで出荷されていないようで、私の携帯電話にはそれ自体がないとすれば、通常のJavaツールを使用してアクセスが行われるようです。しかし、アプリはどのようにしてroot権限を取得するのですか?

Androidアプリケーションをルートとして実行する方法はありますか?それとも、私がアクセスできなくなったアクセス許可の設定を忘れたのですか?または誰でも方法を知っていますルートエクスプローラはそれをしますか?

答えて

0

私が知る限り、すでに実行中のプロセスの権限を引き上げることはできません。最も単純な答えは、ルートシェル/コマンドラインを使ってそれをどこかにコピーして編集し、それをルートとして再度コピーすることです。そしてはい、私はあなたの質問を読んだだけで、答えを完全に説明していない。うまくいけばそれは今明らかです。ルートエクスプローラがそれを実行するかどうかは分かりませんが、それは機能します。

関連する問題