我正在使用Realm作为我的Android应用程序,我想使用Realm浏览器查看我的mac上的default.realm文件,但它要求加密密钥。 我没有通过提供“.encryptionKey(key)”明确地在Realm Configuration中进行加密。那么我必须提供什么加密密钥?默认情况下是否有加密?我在Android Studio上使用Realm插件2.0.2,我的Realm Browser在Mac上使用2.0.1。 我还尝试在我的代码中提供这样的encryptionKey(key):
byte[] key = new byte[64];
new SecureRandom().nextBytes(key);
RealmConfiguration config = new RealmConfiguration.Builder()
.encryptionKey(key)
.build();
并尝试向浏览器提供相同的哈希值(128长度)以打开文件,但没有运气。我在SO中找到了与如何使用adb pull检索文件相关的答案,但我对这个加密部分一无所知。在这方面的任何帮助都会很棒。
答案 0 :(得分:5)
问题是该文件已损坏。来自Realm浏览器的错误消息相当误导,要求加密密钥。
由于我的手机没有root,我无法使用adb pull直接检索文件。
adb pull /data/data/<packagename>/files/ .
我通过将内容复制到系统上的文件来使用另一个命令,这会导致损坏。
这是最终为我工作的命令。
./adb exec-out run-as <packagename> cat /data/data/<packagename>/files/default.realm > ~/Documents/foo/foo.realm
之前我没有把exec-out放在命令中,这就是腐败的原因。