carriersettings-extractor: Make APNs extract optional
Change-Id: Ic7701d660146a400b5e7ee4ee41a940f6d56c455
This commit is contained in:
committed by
Michael Bestas
parent
9a7adaa7c7
commit
cfd6e2d601
@@ -37,7 +37,7 @@ def parse_args():
|
|||||||
parser.add_argument('-i', '--input', help='CarrierSettings folder',
|
parser.add_argument('-i', '--input', help='CarrierSettings folder',
|
||||||
required=True)
|
required=True)
|
||||||
parser.add_argument('-a', '--apns', help='apns-conf.xml Output folder',
|
parser.add_argument('-a', '--apns', help='apns-conf.xml Output folder',
|
||||||
required=True)
|
required=False)
|
||||||
parser.add_argument('-v', '--vendor', help='vendor.xml Output folder',
|
parser.add_argument('-v', '--vendor', help='vendor.xml Output folder',
|
||||||
required=True)
|
required=True)
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
@@ -316,52 +316,60 @@ def main():
|
|||||||
self.add_attribute('user_visible')
|
self.add_attribute('user_visible')
|
||||||
self.add_attribute('user_editable')
|
self.add_attribute('user_editable')
|
||||||
|
|
||||||
with open(os.path.join(apns_folder, 'apns-conf.xml'), 'w', encoding='utf-8') as f:
|
if apns_folder is not None:
|
||||||
f.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n\n')
|
with open(os.path.join(apns_folder, 'apns-conf.xml'), 'w', encoding='utf-8') as f:
|
||||||
f.write('<apns version="8">\n\n')
|
f.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n\n')
|
||||||
|
f.write('<apns version="8">\n\n')
|
||||||
|
|
||||||
for entry in carrier_list.entry:
|
for entry in carrier_list.entry:
|
||||||
try:
|
try:
|
||||||
setting = all_settings[entry.canonical_name]
|
setting = all_settings[entry.canonical_name]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print("Skipping " + entry.canonical_name, file=sys.stderr)
|
print("Skipping " + entry.canonical_name, file=sys.stderr)
|
||||||
continue
|
continue
|
||||||
for apn in setting.apns.apn:
|
for apn in setting.apns.apn:
|
||||||
f.write(' <apn carrier={}\n'.format(quoteattr(apn.name)))
|
f.write(' <apn carrier={}\n'.format(quoteattr(apn.name)))
|
||||||
apn_element = ApnElement(apn, entry.carrier_id[0])
|
apn_element = ApnElement(apn, entry.carrier_id[0])
|
||||||
for (key, value) in apn_element.attributes.items():
|
for (key, value) in apn_element.attributes.items():
|
||||||
f.write(' {}={}\n'.format(escape(key), quoteattr(value)))
|
f.write(' {}={}\n'.format(escape(key), quoteattr(value)))
|
||||||
f.write(' />\n\n')
|
f.write(' />\n\n')
|
||||||
|
|
||||||
carrier_config_element = ET.SubElement(
|
f.write('</apns>\n')
|
||||||
carrier_config_root,
|
|
||||||
|
# Test XML parsing.
|
||||||
|
ET.parse(os.path.join(apns_folder, 'apns-conf.xml'))
|
||||||
|
|
||||||
|
for entry in carrier_list.entry:
|
||||||
|
try:
|
||||||
|
setting = all_settings[entry.canonical_name]
|
||||||
|
except KeyError:
|
||||||
|
print("Skipping " + entry.canonical_name, file=sys.stderr)
|
||||||
|
continue
|
||||||
|
|
||||||
|
carrier_config_element = ET.SubElement(
|
||||||
|
carrier_config_root,
|
||||||
|
'carrier_config',
|
||||||
|
)
|
||||||
|
mcc = entry.carrier_id[0].mcc_mnc[:3]
|
||||||
|
mnc = entry.carrier_id[0].mcc_mnc[3:]
|
||||||
|
if (mcc == '000' and mnc == '000'):
|
||||||
|
carrier_config_no_sim_element = ET.SubElement(
|
||||||
|
carrier_config_no_sim_root,
|
||||||
'carrier_config',
|
'carrier_config',
|
||||||
)
|
)
|
||||||
mcc = entry.carrier_id[0].mcc_mnc[:3]
|
|
||||||
mnc = entry.carrier_id[0].mcc_mnc[3:]
|
|
||||||
if (mcc == '000' and mnc == '000'):
|
|
||||||
carrier_config_no_sim_element = ET.SubElement(
|
|
||||||
carrier_config_no_sim_root,
|
|
||||||
'carrier_config',
|
|
||||||
)
|
|
||||||
for config in setting.configs.config:
|
|
||||||
extract_gps_elements(carrier_config_no_sim_element, config)
|
|
||||||
else:
|
|
||||||
carrier_config_element.set('mcc', mcc)
|
|
||||||
carrier_config_element.set('mnc', mnc)
|
|
||||||
for field in ['spn', 'imsi', 'gid1']:
|
|
||||||
if entry.carrier_id[0].HasField(field):
|
|
||||||
carrier_config_element.set(
|
|
||||||
field,
|
|
||||||
getattr(entry.carrier_id[0], field),
|
|
||||||
)
|
|
||||||
for config in setting.configs.config:
|
for config in setting.configs.config:
|
||||||
extract_elements(carrier_config_element, config)
|
extract_gps_elements(carrier_config_no_sim_element, config)
|
||||||
|
else:
|
||||||
f.write('</apns>\n')
|
carrier_config_element.set('mcc', mcc)
|
||||||
|
carrier_config_element.set('mnc', mnc)
|
||||||
# Test XML parsing.
|
for field in ['spn', 'imsi', 'gid1']:
|
||||||
ET.parse(os.path.join(apns_folder, 'apns-conf.xml'))
|
if entry.carrier_id[0].HasField(field):
|
||||||
|
carrier_config_element.set(
|
||||||
|
field,
|
||||||
|
getattr(entry.carrier_id[0], field),
|
||||||
|
)
|
||||||
|
for config in setting.configs.config:
|
||||||
|
extract_elements(carrier_config_element, config)
|
||||||
|
|
||||||
indent(carrier_config_root)
|
indent(carrier_config_root)
|
||||||
carrier_config_tree = ET.ElementTree(carrier_config_root)
|
carrier_config_tree = ET.ElementTree(carrier_config_root)
|
||||||
|
|||||||
Reference in New Issue
Block a user