Nook読者のロシア化:何が起こったのか(技術面)

画像



一般的に、私は自分用にNookリーダーを購入し、数週間読んで読んだ後、そのために何かを書きたいと思っていましたが、このイニシアチブは、nilov habrayuzerと、noesdevs.orgのさまざまな人々(JesusFrekeを含む)そしてプーティン。







言い訳





必要なソフトウェア







すべてのユーティリティとそのファームウェアのアセンブリの説明



注意:たくさんお願いします-何千ものファームウェアオプションを作成しないでください! すべてを集中的にやってみましょう!



デバイスからアプリケーションを直接取得する:ダウンロード/すべてダウンロードユーティリティ




これらのユーティリティを使用すると、nukからダウンロードしたフォルダーにアプリケーションをダウンロードし、抽出したフォルダーに完全に解凍することができます(ソースリソースとコードを取得するために必要です)。



最初のものは入力でシステムアプリケーションの名前を取得し、2番目のものは何も取得せず、rus_res / indexで指定されたすべてのアプリケーションをダウンロードします



これらは非常に単純に見えます-これはadbおよびapktoolユーティリティの順次実行です:

adb pull /system/app/$1.apk downloaded/$1.apk

java -jar apktool.jar d -f downloaded/$1.apk extracted/$1/









すべてダウンロードを実行した後、必要なすべてのリソースを取得し、リソースの変更と交換を進めることができます。



アプリケーション修正




いくつかの困難があります。 リソースは簡単に変更できますが、コードは変更できません。明らかにdalvikマシンのキャッシュなどが原因です。



資源


ここでは、リソースを置き換えるのに複雑なことはありません-ダウンロードフォルダーから一時フォルダーwork /%appname%に解凍し、そこにあるファイルを置き換えてパックし、adb push(adbインストールではなく)を実行して、アプリケーションをデバイスにダウンロードします。 この方法は、新しいデザインのデバッグ、読者のフォントやcss-okのデバッグに非常に便利です。この方法によって簡略化されたフォントを選択するときにmynook.ruの友人を使用しました。 =)



コード


ここのすべてはリソースの場合とまったく同じですが、1つあります。 デバイスにアプリケーションを配置することはできません。 新しいアプリケーションを開こうとすると、nukがハングするだけで、通常のadbインストールは機能しません。 システムアプリケーションを変更しています。 解決策は何ですか? 解決策は、コードが変更されたファームウェアを直接収集し、デバイスに配置して、その動作を確認することです。 はい、難しいですが、とにかく根本的な変更は必要ありません。



変更用のスクリプト:process / process-all




完全なプロセスコード



ここで、何をどこでコピーして実行するかを簡単に説明します(すべてのファイルはrus_res /%appname%/から取得されます)



  1. ホームおよびライブラリの場合、コードの逆コンパイルで解凍し、残りの部分-リソースのみ- ここで、他のアプリケーションでコードを変更する場合は編集する必要があります
  2. strings.xm->値/ strings.xml
  3. styles.xm->値/ styles.xml
  4. strings.xm-> values /arrays.xml
  5. colors.xm->値/ colors.xml
  6. 値/ *->値/ *
  7. xml / *-> xml / *
  8. 資産/ *->資産/ *
  9. スクリプトを実行します
  10. レイアウト/ *-> res / layout / *
  11. ドロウアブル/ *-> res /ドロウアブル/ *
  12. パック
  13. キーで署名します。




ほとんどのテキストのロシア語化:sashaフォルダーとcopy-sashaスクリプト




sashaフォルダー(mynookを使用したデザイナーの名前です。ちなみに、ありがとうございました。彼がいなければ、少なくとも=は熱意はないでしょう)。



デバイスへのアップロード:アップロード/すべてアップロード




これは、リソースが変更され、元のコードが使用されているアプリケーション専用であることを思い出してください。



コードも非常に簡単です。

adb push %appname%.apk /system/app/%appname%.apk







ファームウェアの作成:ビルドファームウェア




ここでも、すべてが非常に簡単です=)標準のソフトウェアファームウェアを使用して変更します。



nookdevs.com IRCチャンネルでは、画像のパック/アンパック用の特別な(複雑ではない)スクリプトが提供され、それも使用します。



このすべての助けを借りて、ファームウェアを作成するプロセス全体をできるだけ単純化できます:展開、変更、梱包。



現時点でのファームウェアの変更点をリストします。







これでファームウェアが完成し、ルート化されたNukaで実行できます!



PS:

そこで、いくつかのフォルダを手動で作成する必要があるかもしれませんが、どこでスクリプトをセットアップしたか覚えていません。



All Articles