2017-05-24 16 views
0

私のプロジェクトでは、ユーザー識別子を格納する必要があります。おそらく私は/data/data/com.my.package/filesに保存することができると思っていたが、誰かが電話をかけた場合、最初にここで検索することは明らかだ。だから、私はちょっと安全だと思われるAccountManagerを使用しないと思った(私が間違っているかどうか教えてください)。だからここに私の質問です:AccountManagerに格納されているデータはどこですか?Android:AccountManagerにデータを格納する場所

ありがとうございます!

答えて

0

AccountManagerを使用すると、内部ストレージのファイルを使用するよりも安全ではありません。アカウントを持つデータベースは暗号化されておらず、ルートになっているデバイスでもアクセスできます。これは、official docsからの引用です:

それはAccountManagerを暗号化 サービスやキーチェーンではないことを理解することが重要です。 をプレーンテキストで渡すのと同じようにアカウント資格情報も格納されます。ほとんどのデバイスでは、特に注意する必要はありませんが、 は、ルートにのみアクセス可能なデータベースに格納されるためです。 しかし、根っこのデバイスでは、資格情報は誰でもデバイスにアクセスできる で読むことができます。

このデータベースは/data/system/users/0/accounts.db(0はユーザーのID)にあります。

+0

これは非常に良い説明でした。参考にしてありがとうございます。資格情報を保存するための良いオプションがありますか? – Sharath

+0

AccountManagerは実際にはユーザーの資格情報を保存するのに適しています。そこにプレーンテキストのパスワードを入れず、認証トークンだけを置いてください。さらに進めたい場合は、認証トークンをAccountManagerに入れる前に暗号化することができます。 P.S.役に立ったと思ったら私の答えを受け入れてください。 – makovkastar

+0

@makovkastar遅くて申し訳ありませんが、ええ助けになりました!私はまだAccountManagerの仕組みを少し混乱させていますが、あなたの答えとコメントで、誰もアクセスできない識別子を格納する方法を簡単に検索することができます。ありがとう – Kolopox

関連する問題