Androidデバイスのデータ/データフォルダにアクセスするには?



Answers

ルートエクスプローラアプリを使用してdbを取得することもできます。 それがうまくいかない場合は、これを試すことができます:

  1. cmdを開く
  2. あなたのディレクトリを変更し、 'プラットフォームツール'
  3. タイプ ' adb shell '
  4. su
  5. デバイスで「許可」を押す
  6. chmod 777 /data /data/data /data/data/com.application.package /data/data/com.application.package/*
  7. EclipseでDDMSビューを開き、そこから「FileExplorer」を開いて目的のファイルを取得します

その後、ルートされたデバイス上のファイルをブラウズできるはずです。

Question

私はアプリを開発していて、私のデータベース*.dbdata/data/com.****.***表示されることを知っていますdata/data/com.****.***

私はEclipseのAVDからsqlite managerの助けを借りてこのファイルにアクセスできます

しかし、私はAndroidの携帯電話でこのファイルにアクセスできません。
私はそれをgoogleし、私はそれを行うために私の携帯電話を根絶する必要があると言いますが、私はそれをしたくありません。 (新しい電話、保証の問題、セキュリティの問題)

だからここに私の質問です:どのように私のAndroidの携帯電話のdata/data/.....ディレクトリにアクセスすることができます " 根拠なし "?

ディレクトリdata/data.....ユーザー権限を根絶することなく変更できますか?




管理者権限が必要なこのフォルダにアクセスすることがあります。

2つのオプションがあります:

  1. あなたのデバイスをルートし、このフォルダにアクセスしようとするより
  2. エミュレータを使う

ps:上記の2つのオプションのいずれかを使用している場合は、次の手順に従ってこのフォルダにアクセスできます

DDMSパースペクティブを開く - >あなたのデバイス - >(右のウィンドウオプションからファイルエクスプローラを選択)パッケージ - >データ - >データ - >パッケージ名 - >ファイルを選択

そこからあなたのファイルをプルアップすることができます




上記のいずれかを行うには(つまり、電話機自体から保護されたフォルダにアクセスする)、ルートが必要です。 (これには、/ dataフォルダーへのマウント許可の変更とそれへのアクセスが含まれます)

ルートなしでは、 /dataをコード内でアプリケーション内以外の場所に直接アクセスすることはできません。 だから、そのファイルをsdcardやどこかにアクセスできる場所にコピーしてみると、それを普通にアクセスできるはずです。

デベロッパーデバイスを使用している場合は、ルーティングによって保証が無効になることはありません。 申し訳ありませんが、AFAIKの方法はありません。




  1. コマンドプロンプトを開く
  2. ディレクトリをE:\ Android \ adt-bundle-windows-x86_64-20140702 \ adt-bundle-windows-x86_64-20140702 \ sdk \ platform-toolsに変更します。
  3. 以下のコマンドを入力してください
  4. adb -d shell
  5. run-as com.your.packagename cat databases/database.db > /sdcard/database.db
  6. ディレクトリをcd /sdcardに変更して、 database.dbがあることを確認しdatabase.db
  7. adb pull /sdcard/database.dbまたは単純にデバイスからdatabase.dbをコピーすることができます。



このdbファイルをeclipseエクスプローラ(例えば:sdcardやPC)のどこかにコピーして、sqliteを使ってこのdbファイルにアクセスして更新することができます。




根っこのデバイスでは、正しい解決策は次のとおりです。

Open cmd
Change your directory and go into 'Platform tools'
Type 'adb shell'
su
Press 'Allow' on device
chmod 777 /data /data/data /data/data/*
Open DDMS view in Eclipse/IntelliJ and from there open 'FileExplorer' to get your desired file

元の解決策は機能しましたが、chmodは不明なディレクトリを返します。 chmodコマンドを/ data / data / *に変更すると、IntellijのDDMSからデータディレクトリ内のすべてのサブフォルダにアクセスできます。 Eclipse DDMSについても同じ解決策が当てはまると私は考えています。

更新それで、私が見つけたのは変です。 私はIntelliJ(Androidデバイスモニタ)でDDMSを使ってNexus 6を実行しています。 私は少しスターターアプリを構築しました。 上記のアプリはデータをdata / data / com.example.myapp / filesの.csvファイルに保存します

Nexus 6で初めてこのファイルにアクセスしようとしたとき、デバイスをルートにする必要があることがわかりました。データフォルダは表示されていましたが、開こうとすると機能しませんでした。 他の場所でオンラインで言及されているように、expand +はその後すぐに消えてしまいます(注意してください。これらのフォルダにアクセスすることを許可するソリューションがWeb上にあります。とにかく私が(私はむしろ私のソリューションを私に与えるために、アプリケーションやコマンドプロンプトに頼るよりも手動で行うことができると思います))をrootにしたくないかどうかはわかりません。 私は自分の6をルーツにして、もう一度DDMSを試しました。

この時点で、それは私にデータフォルダを示し、私はフォルダを展開し、comを見ることができた。 ディレクトリを開くことはできませんでした。 それは私が上記の解決策を発見したときです。 最初の指示はこの部分では機能しません:

chmod 777 /data /data/data /data/data/com.application.pacakage /data/data/com.application.pacakage/*

それは私が投稿した解決策を試したときです:

chmod 777 /data /data/data /data/data/*

その解決策はうまくいくように見えましたが、特定のフォルダでのみ動作していました。 myappフォルダを展開することができましたが、ファイルディレクトリを展開できませんでした。

この時点で、私はしばらくの間、遊んだのですが、なぜこれらのワイルドカードエントリを試すのではなく、私が必要とするディレクトリで試してみるのか分かりません。

chmod 777 /data /data/data /data/data/com.example.myapp/*

に続く:

chmod 777 /data /data/data /data/data/com.example.myapp/files

これらのコマンドを使用すると、.csvが正しく保存されていることを確認するために、アプリケーションのディレクトリにあるファイルを展開して表示することができました。

これが誰かを助けることを望みます。 私はこれと数時間苦労しました!

(これ以上奇妙なことにコンパイルすると、ファイルディレクトリに渡された.csvファイルにアクセス権が渡されなかった。myファイルディレクトリのアクセス権はdrwxrwxrwxとlog.csvファイルの読み取り権を読み取る。-rw-rw --- - ..ただfyi)




簡単な方法の1つは、SDカードでデータベースを作成することです。 携帯電話をルートしていない限り、内部メモリの携帯電話のデータフォルダにアクセスできないためです。 SD-Cardでデータベースを作成するだけではいかがですか?

さらに、必要に応じて、ルートを必要とせずに既存のデータベースファイル(内部メモリから)を外部メモリにコピーするためのファイルコピーコードを記述することもできます。






Links