2016-10-12 6 views
-1

thisガイドのCM Wikiに続いて、自分のデバイスのCMを1年以上編集していますが、夜間のビルドを再作成するだけです。私はいつも基礎を超えて冒険したいと思っていました。今日、私はいくつかの第一歩を踏み出しました。ビルドCyanogenMod 13:build.propでメイクファイルをカスタマイズ

今私が計画しているのは、点滅後に変更するのではなく、構築する前に/system/build.propをカスタマイズすることです。私はいくつかの研究を行い、いくつかのスクリプトとメイクファイルを生成する責任があることを確認しました。問題のmakefileはvendor/cm/config/common.mkです。

SAMPLE

common.mkそれ(少し短くするように変更)に対応するこれらの行がありますセクションでは、私は以下のPICのように、[設定] - 会社概要に表示された「CyanogenModバージョン」フィールドは変更を修正するために探しています:

ifeq ($(CM_BUILDTYPE), RELEASE) 
    ifndef TARGET_VENDOR_RELEASE_BUILD_ID 
     CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD) 
    else 
     ifeq ($(TARGET_BUILD_VARIANT),user) 
      ifeq ($(CM_VERSION_MAINTENANCE),0) 
       CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD) 
      else 
       CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(CM_VERSION_MAINTENANCE)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD) 
      endif 
     else 
      CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(CM_BUILD) 
     endif 
    endif 
else 
    ifeq ($(CM_VERSION_MAINTENANCE),0) 
     CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD) 
    else 
     CM_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(CM_VERSION_MAINTENANCE)-$(shell date -u +%Y%m%d)-$(CM_BUILDTYPE)$(CM_EXTRAVERSION)-$(CM_BUILD) 
    endif 
endif 

PRODUCT_PROPERTY_OVERRIDES += \ 
    ro.cm.version=$(CM_VERSION) \ 
    ro.cm.releasetype=$(CM_BUILDTYPE) \ 
    ro.modversion=$(CM_VERSION) \ 
    ro.cm.display.version=$(CM_VERSION) 

は、今私は、たとえば、「CM13 FOO BARを」私はそのフィールドに表示したいカスタム文字列を格納スペースを持つ別の変数を定義したいので、私はこの記述します:

ifndef CM_VERSION_CUSTOM 
    CM_VERSION_CUSTOM := CM13 FOO BAR 
endif 

... CM_VERSION_CUSTOMにCM_VERSIONが適用される場所を割り当てます。実際に

これがすべてでは動作しません - 文字列は、第一のスペース後の内容は、次のように、存在しないかのように、時には、各スペースは改行であるかのように、時には、誤っ/build.propに出力されました:

ro.cm.version=CM13 
FOO 
BAR 
ro.modversion=CM13 
ro.cm.display.version=CM13 

文字列定義またはCM_VERSION CUSTOMが参照された場所( "$(CM_VERSION_CUSTOM)"など)に引用符を追加しようとしましたが、何も助けてくれませんでした。誰も私を正しい方法で指し示すことができますか?

答えて

0

私は、ポーズ。私はこのスクリプトをフラッシュ可能なzipの中にパッケージ化し、updater-scriptがスクリプトを呼び出させるようにします。スクリプト自体はこのような何かを行く:

#!/sbin/sh 

CM_VER="CyanogenMod 12.1 Nightly CGMod" 
sed -i "s/ro.cm.version=.*/ro.cm.version=$CM_VER/g" /system/build.prop 

これは私がこのプロパティを変更することを可能にするだけでなく、建物の前に触れるのは難しいです(grepの助けを借りて)ビルドタイプ、日付などのような他の人だけではなく。

関連する問題