Loading core/definitions.mk +15 −0 Original line number Diff line number Diff line Loading @@ -1927,6 +1927,21 @@ $$(PRODUCT_OUT)/$(2) : $$(LOCAL_PATH)/$(1) | $$(ACP) $$(transform-prebuilt-to-target) endef # Version of add-radio-file that also arranges for the version of the # file to be checked against the contents of # $(TARGET_BOARD_INFO_FILE). # $(1): filename # $(2): name of version variable in board-info (eg, "version-baseband") define add-radio-file-checked $(eval $(call add-radio-file-checked-internal,$(1),$(notdir $(1)),$(2))) endef define add-radio-file-checked-internal INSTALLED_RADIOIMAGE_TARGET += $$(PRODUCT_OUT)/$(2) BOARD_INFO_CHECK += $(3):$(LOCAL_PATH)/$(1) $$(PRODUCT_OUT)/$(2) : $$(LOCAL_PATH)/$(1) | $$(ACP) $$(transform-prebuilt-to-target) endef ########################################################### # Override the package defined in $(1), setting the Loading target/board/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ ifndef board_info_txt board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) endif $(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) $(hide) build/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK) $(call pretty,"Generated: ($@)") ifdef board_info_txt $(hide) grep -v '#' $< > $@ Loading tools/check_radio_versions.py 0 → 100755 +76 −0 Original line number Diff line number Diff line #!/usr/bin/env python # # Copyright (C) 2012 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import sys import os try: from hashlib import sha1 except ImportError: from sha import sha as sha1 build_info = {} f = open(sys.argv[1]) for line in f: line = line.strip() if line.startswith("require"): key, value = line.split()[1].split("=", 1) build_info[key] = value f.close() bad = False for item in sys.argv[2:]: key, fn = item.split(":", 1) values = build_info.get(key, None) if not values: continue values = values.split("|") f = open(fn, "rb") digest = sha1(f.read()).hexdigest() f.close() versions = {} try: f = open(fn + ".sha1") except IOError: if not bad: print print "*** Error opening \"%s.sha1\"; can't verify %s" % (fn, key) bad = True continue for line in f: line = line.strip() if not line or line.startswith("#"): continue h, v = line.split() versions[h] = v if digest not in versions: if not bad: print print "*** SHA-1 hash of \"%s\" doesn't appear in \"%s.sha1\"" % (fn, fn) bad = True continue if versions[digest] not in values: if not bad: print print "*** \"%s\" is version %s; not any %s allowed by \"%s\"." % ( fn, versions[digest], key, sys.argv[1]) bad = True if bad: print sys.exit(1) Loading
core/definitions.mk +15 −0 Original line number Diff line number Diff line Loading @@ -1927,6 +1927,21 @@ $$(PRODUCT_OUT)/$(2) : $$(LOCAL_PATH)/$(1) | $$(ACP) $$(transform-prebuilt-to-target) endef # Version of add-radio-file that also arranges for the version of the # file to be checked against the contents of # $(TARGET_BOARD_INFO_FILE). # $(1): filename # $(2): name of version variable in board-info (eg, "version-baseband") define add-radio-file-checked $(eval $(call add-radio-file-checked-internal,$(1),$(notdir $(1)),$(2))) endef define add-radio-file-checked-internal INSTALLED_RADIOIMAGE_TARGET += $$(PRODUCT_OUT)/$(2) BOARD_INFO_CHECK += $(3):$(LOCAL_PATH)/$(1) $$(PRODUCT_OUT)/$(2) : $$(LOCAL_PATH)/$(1) | $$(ACP) $$(transform-prebuilt-to-target) endef ########################################################### # Override the package defined in $(1), setting the Loading
target/board/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ ifndef board_info_txt board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) endif $(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) $(hide) build/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK) $(call pretty,"Generated: ($@)") ifdef board_info_txt $(hide) grep -v '#' $< > $@ Loading
tools/check_radio_versions.py 0 → 100755 +76 −0 Original line number Diff line number Diff line #!/usr/bin/env python # # Copyright (C) 2012 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import sys import os try: from hashlib import sha1 except ImportError: from sha import sha as sha1 build_info = {} f = open(sys.argv[1]) for line in f: line = line.strip() if line.startswith("require"): key, value = line.split()[1].split("=", 1) build_info[key] = value f.close() bad = False for item in sys.argv[2:]: key, fn = item.split(":", 1) values = build_info.get(key, None) if not values: continue values = values.split("|") f = open(fn, "rb") digest = sha1(f.read()).hexdigest() f.close() versions = {} try: f = open(fn + ".sha1") except IOError: if not bad: print print "*** Error opening \"%s.sha1\"; can't verify %s" % (fn, key) bad = True continue for line in f: line = line.strip() if not line or line.startswith("#"): continue h, v = line.split() versions[h] = v if digest not in versions: if not bad: print print "*** SHA-1 hash of \"%s\" doesn't appear in \"%s.sha1\"" % (fn, fn) bad = True continue if versions[digest] not in values: if not bad: print print "*** \"%s\" is version %s; not any %s allowed by \"%s\"." % ( fn, versions[digest], key, sys.argv[1]) bad = True if bad: print sys.exit(1)