Androidシステムファームウェアカスタマイズ方式

3832 ワード

Androidシステムファームウェアカスタマイズ方式


一般的に、Androidベースのデバイスは、必要に応じてシステムAPPをカスタマイズし、カスタマイズの仕様はデバイスの具体的なアプリケーションシーンに基づいていることが多い.例えば、通信向けのデバイスでは、phone、tablets、browser、TeleComなどのAPPやサービスをプリインストールする必要があります.着用可能なデバイス向けにはbluetoothなどのアプリが一般的に必要です.では、どのようにシステムの要求に基づいてシステムAPPやシステムサービスをカスタマイズしますか?実は、Androidの構築システムはすでに関連する需要に対して相応の配置を行っています.異なるニーズのデバイスに対応するベースプロファイルを提供し、メーカーが独自にこれらのベースプロファイルをカスタマイズし、これらのプロファイルを通じて、システムを構築してデバイスに適したAndroidファームウェアを生成することができます.

製品構築フレームワーク


Androidシステム構築フレームワークは特定のmake構築システムに基づいており、このシステムのプロファイルは一般的に接尾辞である.mk.AndroidシステムはMakefileの機能を拡張し、構築中に使用される関数や変数などを多く追加しています.したがって、新しい製品を追加するには、いくつかの提供が必要である.mkファイルは、特定の製品構築プロセスを制御するために使用されます.次に、いくつかの重要なプロファイルについて詳しく説明します.

target_product.mk


Androidシステムは、ある製品に関するファームウェアを構築する際に、その製品固有の具体的なtarget_に基づいているのが一般的です.product.mkはAndroidシステム全体を生成するように構成されています./target_product.mkプロファイル:/path_to_android/device/vendor/ディレクトリの下でpath_to_AndroidはAndroidシステムのルートディレクトリを表します.vendorは、htc、moto、softwinnerなど、具体的なメーカー名です.
target_product.mkの基本構造は以下の通りである.
  • 基本構成情報:
      Android 
       
    
  • 特定製品構成情報:
       
    
  • target_product.mkが提供する能力


    target_product.mkは一連の関数、変数によってシステムの構築過程を制御し、主な変数と関数は以下の通りである.
  • PRODUCT_PACKAGES:製品に含まれるシステムレベルのAPP、例えばLauncher.
  • PRODUCT_COPY_FILES:製品にコピーするファイル、フォーマット:src_file:dst_file、そのうちsrc_file、dst_fileは相対パスです.たとえば、device/softinner/t 3-p 1/etc/apns-conf.xml:system/etc/apns-conf.xmlは、apns-conf.xmlをターゲットシステムsystem/etcディレクトリにコピーすることを示します.
  • PRODUCT_PROPERTY_MOVERIDES:buildを上書きする.propのシステム属性情報.例:persist.sys.timezone=Asia/Shhanghai構成システムのタイムゾーン情報.
  • inherit-product:親を呼び出す.mk構成情報、例えば$(call inherit-product,build/target/product/full_base.mk)、inherit-productによりfull_を解析base.mkの構成情報.

  • vendorsetup.sh


    特定の製品に固有のtargetを作成するのが一般的です.product.mkファイルはAndroidシステムの具体的な構成を制御し、vendorsetupを記述する.sh製品の型番を定義するために使用されます.一般的にはeng、userの2つのモデル情報が作成されます.Engはdebugバージョンのシステムをコンパイルするために使用され、userはreleaseバージョンのシステムをコンパイルするために使用されます.例:
    add_lunch_combo t3_p1-eng
    add_lunch_combo t3_p1-user
    

    システム構築プロセス


    Androidシステムの構築プロセスは、(1)環境変数の構成->(2)製品モデルの選択->(3)コンパイル->(4)パッケージ化に大きく分けられます.
  • 環境変数の構成:source build/envsetup.sh Androidコンパイルに必要な環境情報を設定します.ここで、このスクリプトはdeviceディレクトリの下のすべてのファイルをスキャンし、すべてのvendorsetupを実行します.shスクリプト.これにより、2ステップ目では、すべての製品モデル情報が表示されます.
  • 製品型番を選択:需要に合った製品型番を選択し、一般的な製品型番はカスタマイズされている.
  • コンパイル:Androidシステムコンパイル:BootLoader、kernel、rootfs、systemを含む.imgなど.
  • パッケージング:コンパイルフェーズで生成された各コンパイル生成物を、システムの記録に備えてミラーファイルにパッケージングする.

  • 製品のカスタマイズ


    具体的な製品について、どのようなカスタマイズ作業ができますか?具体的なカスタマイズはどのように展開すればいいですか?以下では、全志T 3プラットフォームに基づくAndroid 6.0ファームウェアカスタマイズ操作を例に挙げる.T 3プラットフォームで使用するAndroid 6.0システムで、このプラットフォームに関する製品構成情報は:device/sofewinner/下にあります.
    common  t3-common  t3-p1  t3-p1_v1
    

    ここで、commonにはpack、extract-bspなど、全志プラットフォームの下で一般的なツールが含まれています.t 3−commonは、t 3プロセッサプラットフォームにおけるいくつかの汎用構成を含む.t3-p1、t3-p1_v 1は2つの製品型番を表す.
    次に、システムのデフォルト入力方式を置き換える例を示します.
    Androidシステムが提供するデフォルト入力方式はあまり使いにくいので、システムデフォルト入力方式をSogou入力方式に置き換える必要があります.置換手順は次のとおりです.
  • システム入力方式に対応するインストール場所を見つける:システム入力方式はAndroidシステムレベルのサービスに属し、そのインストール場所は一般的にbuild/target/productにあり、システム入力方式のAPP名は:LatinIMEである.grep-nr LatinIMEにより,LatinIMEに関する構成情報を見つけ,これらの構成情報を注釈することができる.
  • apkは、t 3-p 1のapkディレクトリの下に置く、t 3-p 1に進む.mkに構成情報を追加:PRODUCT_COPY_FILES += device/softwinner/t3-p1/apk/sogou.apk:system/preinstall/sogou.apk
  • ハードウェアキーボード、Settingsにおける入力方式に関する構成情報:settings put secure show_ime_with_hard_keyboard 1 settings put secure enabled_input_methods com.sohu.inputmethod.sogou/.SogouIME

  • 上記の情報をスクリプトに作成して、システムの起動時に実行すればいいです.これでシステムのデフォルト入力方式はSogou入力方式に置き換えられる.
    同様に、Music、Camera、Browser、Recorderなど、システムに不要なアプリを切り取ることができます.