5

暗号化された obb ファイルを使用する Android アプリを開発しています。この obb ファイルは 3 つのファイルで構成されています (jobb ツールで作成しました)。ほとんどのデバイスでは問題ありませんが、3 つのデバイスでは ERROR_COULD_NOT_MOUNT が発生します。そして、私はそれを修正する方法を理解していません。エラーなしでアプリを配布したい :) 助けてください! :)

私が試したこと: 1)obbファイルをアンマウントしてマウントします。2) 「読み取り専用」属性のないフォルダーから obb ファイルを作成します。しかし、それはすべてうまくいきません。

問題を再現する手順 (該当する場合はサンプル コードを含む)。 1) フォルダーを作成し、その中に 3 つの異なるファイルを入れます。2) 手順 1 のフォルダーから obb ファイルを作成します。 3) このファイルをアプリからマウントしてみます (以下のサンプル コード)。

 

    最終ファイル mainFile = new File(Environment.getExternalStorageDirectory() + "/Android/obb/" + packageName + "/"
                    +「メイン」。+ versionCode + "." + パッケージ名 + ".obb");
    OnObbStateChangeListener リスナー = 新しい OnObbStateChangeListener() {
        @オーバーライド
        public void onObbStateChange(String path, int state) {
            super.onObbStateChange(パス、状態);
            if (state == OnObbStateChangeListener.MOUNTED) {
                doNextSteps();
            そうでなければ (状態 == OnObbStateChangeListener.ERROR_COULD_NOT_MOUNT) {
                Toast.makeText(getApplicationContext(), "ERROR_COULD_NOT_MOUNT", Toast.LENGTH_LONG).show();
            }
         }
    };

    if (!storageManager.isObbMounted(mainFile.getAbsolutePath())) {
        storageManager.unmountObb(mainFile.getAbsolutePath(), true, リスナー);
        storageManager.mountObb(mainFile.getAbsolutePath(), "password_string", listener);
    } そうしないと {
        doNextSteps();
    }

どうしたの。 次のデバイスで「ERROR_COULD_NOT_MOUNT」エラーが発生しました: 1) HTC PJ401 One S; 2) サムスン GT-I9505 ギャラクシー S IV; 3) Samsung SM-N9005 Galaxy Note 3. ただし、Samsung SM-N900T Galaxy Note 3 および Samsung GT-I9500 Galaxy S IV ではすべて問題ありません。

4

2 に答える 2

2

だから、すべての私の調査の後、私は言うことができます。私にできることは回避策だけです。そして、これら3つのファイルから1つのファイルを作成しました

/B ファイル 1+ファイル 2+ファイル 3 をコピーします。

そして、このファイルを暗号化されていないobbとして使用します。結局のところ、この操作はすべてうまく機能します。

于 2014-02-11T13:09:28.757 に答える
2

一部のobbファイルをマウントできなかった理由がわかりました。PBKDF2WithHmacSHA1 によって生成されたハッシュキーである obb ファイルを作成するときに、ランダムなソルトがあります。bytes convert to hex string のハッシュキーにはバグがあります。プロジェクトにパッチを送信します: platform/framework/base.

https://android-review.googlesource.com/#/c/230280/

jobb ツールを修正しました。ハッシュキーのチェックを追加して、生成された間違ったキーをスキップします。Android がパッチをマージする前に、このパッチを使用できます。このパッチは、ダンプ ファイルのバグも修正します。

https://android-review.googlesource.com/#/c/231431/

于 2016-05-20T07:28:55.593 に答える