-1

メーカーによってサポートされなくなった古いandroidapkファイルがあります。

Javaからメソッドを呼び出しているため、何が間違っている可能性があるかを理解しました。

Javaファイルの1つ(dex2jarの後に表示され、jd-guiで表示されます)

インポートcom.htc.buletoothconfirm;

私がしたいのはそれをに変更することです

インポートcom.htc.bluetoothconfirm;

次に、それを.classファイルに再コンパイルします。次に、その.classファイルを.jarファイルに再挿入します。次に、.apkファイルを再構築します。

jd-guiでは何も変更できません。

javacを使用して単一の.javaファイルをコンパイルしようとすると、インポートエラーが発生します(ファイルには多くのインポートがあります)。

私はjadを使用してクラスファイルを逆コンパイルしようとしましたが、これが私が取り組んでいるものです。

多くの「完全に逆コンパイルできません」というエラーが発生しましたが。

私がやりたいと思うのは、Javaファイルのコンテンツ全体をjd-guiからメモ帳にコピーして貼り付け、.javaとして保存してから、.classにコンパイルして、.jarファイルに再挿入することです。

しかし、言うのは簡単です。すべてのインポートがあるため、この新しい.javaファイルを.classファイルにコンパイルする方法がわかりません。(たとえば、import android.content.intent;などはどこで入手できますか?ディレクトリ構造などを保持する必要がありますか?)

もっと簡単な方法はありますか?1行を変更しようとしています。残りはすべて同じに保つことができます。

4

1 に答える 1

2

ASM-AndroidDedexerなどのツールを使用してapkファイルを逆コンパイルする必要があります。クラスを生成する場合は、sdcardを使用してデバイス上で生成してから、dexを作成できます。ファイルとそれに対応する.jar。BCELとASMを使用して、デバイス上でバイトコードを生成しました。

于 2012-09-20T13:09:42.730 に答える