13

Apex、Nova、ADW などで動作する同じアイコン パックがアプリケーションでも動作するように、アプリケーションにアイコン パックのサポートを実装しようとしています。このコードを使用して appfilter xml ファイルを見つけ、それを解析して描画可能な名前を取得すると、無料のテーマでこれを機能させることができました。

Context context = createPackageContext(packageName, Context.CONTEXT_IGNORE_SECURITY);
                Resources res = context.getResources();
                String str = "";
                res.getAssets().list(str);

ただし、有料のアイコン パックでは機能しません。返されるアセットは 0 です。これは、アセットを非公開にする JB+ の有料アプリにフォワード ロックが存在するためだと思います。(概要はこちら: Jelly Bean で他の Android アプリのアセットにアクセスする)

アイコン パックをサポートする方法とアイコン パック apk を逆コンパイルする方法に関する情報を見つけることができませんでした。コンテンツ プロバイダーが表示されないため、これらのランチャー アプリはアセットを取得するために私と同様の方法を使用しているとしか思えません。

これがどのように行われるか、または正しい方向に私を向ける方法について誰かが私に情報を与えることができますか?

4

2 に答える 2

1

公式の情報源ではありませんが、Apex Launcher Theme Tutorialには次のように記載されています。

次に、res/xml ディレクトリにある appfilter.xml ファイルを開きます。(注: このファイルは以前は assets ディレクトリの下にありましたが、JellyBean の新しいアプリ暗号化機能により、テーマ エンジンが有料テーマのアセットにアクセスできなくなりました。)

そのため、特別なコンテンツ プロバイダーは使用されていないように見えます。このメカニズムは、Jelly Bean で導入されたセキュリティ メカニズムと連携するように適合させる必要がありました。

于 2014-06-13T14:49:03.213 に答える