From 44e10d10a0d6efdbae0359cad257f9571f27ef1c Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 7 Dec 2021 21:00:08 +0100 Subject: [PATCH] Support deploying Python apps for Android using bdist_apps --- direct/src/dist/FreezeTool.py | 2 +- direct/src/dist/_android.py | 250 ++ direct/src/dist/_proto/Configuration_pb2.py | 766 +++++ direct/src/dist/_proto/README | 4 + direct/src/dist/_proto/Resources_pb2.py | 3246 +++++++++++++++++++ direct/src/dist/_proto/__init__.py | 0 direct/src/dist/_proto/config_pb2.py | 1045 ++++++ direct/src/dist/_proto/files_pb2.py | 307 ++ direct/src/dist/_proto/targeting_pb2.py | 1470 +++++++++ direct/src/dist/commands.py | 215 +- direct/src/dist/installers.py | 68 + dtool/src/prc/configPageManager.cxx | 3 +- makepanda/makepanda.py | 10 +- makepanda/makewheel.py | 155 +- panda/src/android/PandaActivity.java | 40 +- panda/src/pipeline/threadPosixImpl.cxx | 4 + pandatool/src/deploy-stub/android_main.cxx | 361 +++ 17 files changed, 7892 insertions(+), 54 deletions(-) create mode 100644 direct/src/dist/_android.py create mode 100644 direct/src/dist/_proto/Configuration_pb2.py create mode 100644 direct/src/dist/_proto/README create mode 100644 direct/src/dist/_proto/Resources_pb2.py create mode 100644 direct/src/dist/_proto/__init__.py create mode 100644 direct/src/dist/_proto/config_pb2.py create mode 100644 direct/src/dist/_proto/files_pb2.py create mode 100644 direct/src/dist/_proto/targeting_pb2.py create mode 100644 pandatool/src/deploy-stub/android_main.cxx diff --git a/direct/src/dist/FreezeTool.py b/direct/src/dist/FreezeTool.py index 4bdb4e2a4d..e47d0ee932 100644 --- a/direct/src/dist/FreezeTool.py +++ b/direct/src/dist/FreezeTool.py @@ -1835,7 +1835,7 @@ class Freezer: # If it is a submodule of a frozen module, Python will have # trouble importing it as a builtin module. Synthesize a frozen # module that loads it dynamically. - if '.' in moduleName: + if '.' in moduleName and not self.platform.startswith('android'): if self.platform.startswith("macosx") and not use_console: # We write the Frameworks directory to sys.path[0]. code = 'import sys;del sys.modules["%s"];import sys,os,imp;imp.load_dynamic("%s",os.path.join(sys.path[0], "%s%s"))' % (moduleName, moduleName, moduleName, modext) diff --git a/direct/src/dist/_android.py b/direct/src/dist/_android.py new file mode 100644 index 0000000000..051e4f08aa --- /dev/null +++ b/direct/src/dist/_android.py @@ -0,0 +1,250 @@ +"""Internal support module for Android builds.""" + +import xml.etree.ElementTree as ET + +from ._proto.targeting_pb2 import Abi +from ._proto.config_pb2 import BundleConfig +from ._proto.files_pb2 import NativeLibraries +from ._proto.Resources_pb2 import XmlNode, ResourceTable + + +AbiAlias = Abi.AbiAlias + + +def str_resource(id): + def compile(attrib): + attrib.resource_id = id + return compile + + +def int_resource(id): + def compile(attrib): + attrib.resource_id = id + if attrib.value.startswith('0x') or attrib.value.startswith('0X'): + attrib.compiled_item.prim.int_hexadecimal_value = int(attrib.value, 16) + else: + attrib.compiled_item.prim.int_decimal_value = int(attrib.value) + return compile + + +def bool_resource(id): + def compile(attrib): + attrib.resource_id = id + attrib.compiled_item.prim.boolean_value = { + 'true': True, '1': True, 'false': False, '0': False + }[attrib.value] + return compile + + +def enum_resource(id, /, *values): + def compile(attrib): + attrib.resource_id = id + attrib.compiled_item.prim.int_decimal_value = values.index(attrib.value) + return compile + + +def flag_resource(id, /, **values): + def compile(attrib): + attrib.resource_id = id + bitmask = 0 + flags = attrib.value.split('|') + for flag in flags: + bitmask = values[flag] + attrib.compiled_item.prim.int_hexadecimal_value = bitmask + return compile + + +def ref_resource(id, type): + def compile(attrib): + assert attrib.value[0] == '@' + ref_type, ref_name = attrib.value[1:].split('/') + attrib.resource_id = id + if ref_type == 'android:style': + attrib.compiled_item.ref.id = ANDROID_STYLES[ref_name] + attrib.compiled_item.ref.name = ref_type + '/' + ref_name + else: + print(f'Warning: unhandled AndroidManifest.xml reference "{attrib.value}"') + return compile + + +# See data/res/values/public.xml +ANDROID_STYLES = { + 'Animation': 0x01030000, + 'Animation.Activity': 0x01030001, + 'Animation.Dialog': 0x01030002, + 'Animation.Translucent': 0x01030003, + 'Animation.Toast': 0x01030004, + 'Theme': 0x01030005, + 'Theme.NoTitleBar': 0x01030006, + 'Theme.NoTitleBar.Fullscreen': 0x01030007, + 'Theme.Black': 0x01030008, + 'Theme.Black.NoTitleBar': 0x01030009, + 'Theme.Black.NoTitleBar.Fullscreen': 0x0103000a, + 'Theme.Dialog': 0x0103000b, + 'Theme.Light': 0x0103000c, + 'Theme.Light.NoTitleBar': 0x0103000d, + 'Theme.Light.NoTitleBar.Fullscreen': 0x0103000e, + 'Theme.Translucent': 0x0103000f, + 'Theme.Translucent.NoTitleBar': 0x01030010, + 'Theme.Translucent.NoTitleBar.Fullscreen': 0x01030011, + 'Widget': 0x01030012, + 'Widget.AbsListView': 0x01030013, + 'Widget.Button': 0x01030014, + 'Widget.Button.Inset': 0x01030015, + 'Widget.Button.Small': 0x01030016, + 'Widget.Button.Toggle': 0x01030017, + 'Widget.CompoundButton': 0x01030018, + 'Widget.CompoundButton.CheckBox': 0x01030019, + 'Widget.CompoundButton.RadioButton': 0x0103001a, + 'Widget.CompoundButton.Star': 0x0103001b, + 'Widget.ProgressBar': 0x0103001c, + 'Widget.ProgressBar.Large': 0x0103001d, + 'Widget.ProgressBar.Small': 0x0103001e, + 'Widget.ProgressBar.Horizontal': 0x0103001f, + 'Widget.SeekBar': 0x01030020, + 'Widget.RatingBar': 0x01030021, + 'Widget.TextView': 0x01030022, + 'Widget.EditText': 0x01030023, + 'Widget.ExpandableListView': 0x01030024, + 'Widget.ImageWell': 0x01030025, + 'Widget.ImageButton': 0x01030026, + 'Widget.AutoCompleteTextView': 0x01030027, + 'Widget.Spinner': 0x01030028, + 'Widget.TextView.PopupMenu': 0x01030029, + 'Widget.TextView.SpinnerItem': 0x0103002a, + 'Widget.DropDownItem': 0x0103002b, + 'Widget.DropDownItem.Spinner': 0x0103002c, + 'Widget.ScrollView': 0x0103002d, + 'Widget.ListView': 0x0103002e, + 'Widget.ListView.White': 0x0103002f, + 'Widget.ListView.DropDown': 0x01030030, + 'Widget.ListView.Menu': 0x01030031, + 'Widget.GridView': 0x01030032, + 'Widget.WebView': 0x01030033, + 'Widget.TabWidget': 0x01030034, + 'Widget.Gallery': 0x01030035, + 'Widget.PopupWindow': 0x01030036, + 'MediaButton': 0x01030037, + 'MediaButton.Previous': 0x01030038, + 'MediaButton.Next': 0x01030039, + 'MediaButton.Play': 0x0103003a, + 'MediaButton.Ffwd': 0x0103003b, + 'MediaButton.Rew': 0x0103003c, + 'MediaButton.Pause': 0x0103003d, + 'TextAppearance': 0x0103003e, + 'TextAppearance.Inverse': 0x0103003f, + 'TextAppearance.Theme': 0x01030040, + 'TextAppearance.DialogWindowTitle': 0x01030041, + 'TextAppearance.Large': 0x01030042, + 'TextAppearance.Large.Inverse': 0x01030043, + 'TextAppearance.Medium': 0x01030044, + 'TextAppearance.Medium.Inverse': 0x01030045, + 'TextAppearance.Small': 0x01030046, + 'TextAppearance.Small.Inverse': 0x01030047, + 'TextAppearance.Theme.Dialog': 0x01030048, + 'TextAppearance.Widget': 0x01030049, + 'TextAppearance.Widget.Button': 0x0103004a, + 'TextAppearance.Widget.IconMenu.Item': 0x0103004b, + 'TextAppearance.Widget.EditText': 0x0103004c, + 'TextAppearance.Widget.TabWidget': 0x0103004d, + 'TextAppearance.Widget.TextView': 0x0103004e, + 'TextAppearance.Widget.TextView.PopupMenu': 0x0103004f, + 'TextAppearance.Widget.DropDownHint': 0x01030050, + 'TextAppearance.Widget.DropDownItem': 0x01030051, + 'TextAppearance.Widget.TextView.SpinnerItem': 0x01030052, + 'TextAppearance.WindowTitle': 0x01030053, +} + + +# See data/res/values/public.xml, attrs.xml and especially attrs_manifest.xml +ANDROID_ATTRIBUTES = { + 'allowBackup': bool_resource(0x1010280), + 'allowClearUserData': bool_resource(0x1010005), + 'allowParallelSyncs': bool_resource(0x1010332), + 'allowSingleTap': bool_resource(0x1010259), + 'allowTaskReparenting': bool_resource(0x1010204), + 'alwaysRetainTaskState': bool_resource(0x1010203), + 'clearTaskOnLaunch': bool_resource(0x1010015), + 'debuggable': bool_resource(0x0101000f), + 'configChanges': flag_resource(0x0101001f, mcc=0x0001, mnc=0x0002, locale=0x0004, touchscreen=0x0008, keyboard=0x0010, keyboardHidden=0x0020, navigation=0x0040, orientation=0x0080, screenLayout=0x0100, uiMode=0x0200, screenSize=0x0400, smallestScreenSize=0x0800, layoutDirection=0x2000, fontScale=0x40000000), + 'enabled': bool_resource(0x101000e), + 'excludeFromRecents': bool_resource(0x1010017), + 'extractNativeLibs': bool_resource(0x10104ea), + 'finishOnTaskLaunch': bool_resource(0x1010014), + 'fullBackupContent': bool_resource(0x10104eb), + 'glEsVersion': int_resource(0x1010281), + 'hasCode': bool_resource(0x101000c), + 'host': str_resource(0x1010028), + 'immersive': bool_resource(0x10102c0), + 'installLocation': enum_resource(0x10102b7, "auto", "internalOnly", "preferExternal"), + 'isGame': bool_resource(0x010103f4), + 'label': str_resource(0x01010001), + 'launchMode': enum_resource(0x101001d, "standard", "singleTop", "singleTask", "singleInstance"), + 'maxSdkVersion': int_resource(0x1010271), + 'mimeType': str_resource(0x1010026), + 'minSdkVersion': int_resource(0x101020c), + 'multiprocess': bool_resource(0x1010013), + 'name': str_resource(0x1010003), + 'pathPattern': str_resource(0x101002c), + 'required': bool_resource(0x101028e), + 'scheme': str_resource(0x1010027), + 'stateNotNeeded': bool_resource(0x1010016), + 'supportsUploading': bool_resource(0x101029b), + 'targetSandboxVersion': int_resource(0x101054c), + 'targetSdkVersion': int_resource(0x1010270), + 'theme': ref_resource(0x01010000, 'android:style'), + 'value': str_resource(0x1010024), + 'versionCode': int_resource(0x101021b), + 'versionName': str_resource(0x101021c), +} + + +class AndroidManifest: + def __init__(self): + super().__init__() + self._stack = [] + self.root = XmlNode() + + def parse_xml(self, data): + parser = ET.XMLParser(target=self) + parser.feed(data) + parser.close() + + def start_ns(self, prefix, uri): + decl = self.root.element.namespace_declaration.add() + decl.prefix = prefix + decl.uri = uri + + def start(self, tag, attribs): + if not self._stack: + node = self.root + else: + node = self._stack[-1].child.add() + + element = node.element + element.name = tag + + self._stack.append(element) + + for key, value in attribs.items(): + attrib = element.attribute.add() + attrib.value = value + + if key.startswith('{'): + attrib.namespace_uri, key = key[1:].split('}', 1) + res_compile = ANDROID_ATTRIBUTES.get(key, None) + if not res_compile: + print(f'Warning: unhandled AndroidManifest.xml attribute "{key}"') + else: + res_compile = None + + attrib.name = key + + if res_compile: + res_compile(attrib) + + def end(self, tag): + self._stack.pop() + + def dumps(self): + return self.root.SerializeToString() diff --git a/direct/src/dist/_proto/Configuration_pb2.py b/direct/src/dist/_proto/Configuration_pb2.py new file mode 100644 index 0000000000..54c6d0a80c --- /dev/null +++ b/direct/src/dist/_proto/Configuration_pb2.py @@ -0,0 +1,766 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: frameworks/base/tools/aapt2/Configuration.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='frameworks/base/tools/aapt2/Configuration.proto', + package='aapt.pb', + syntax='proto3', + serialized_options=b'\n\020com.android.aapt', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n/frameworks/base/tools/aapt2/Configuration.proto\x12\x07\x61\x61pt.pb\"\xd9\x14\n\rConfiguration\x12\x0b\n\x03mcc\x18\x01 \x01(\r\x12\x0b\n\x03mnc\x18\x02 \x01(\r\x12\x0e\n\x06locale\x18\x03 \x01(\t\x12@\n\x10layout_direction\x18\x04 \x01(\x0e\x32&.aapt.pb.Configuration.LayoutDirection\x12\x14\n\x0cscreen_width\x18\x05 \x01(\r\x12\x15\n\rscreen_height\x18\x06 \x01(\r\x12\x17\n\x0fscreen_width_dp\x18\x07 \x01(\r\x12\x18\n\x10screen_height_dp\x18\x08 \x01(\r\x12 \n\x18smallest_screen_width_dp\x18\t \x01(\r\x12\x43\n\x12screen_layout_size\x18\n \x01(\x0e\x32\'.aapt.pb.Configuration.ScreenLayoutSize\x12\x43\n\x12screen_layout_long\x18\x0b \x01(\x0e\x32\'.aapt.pb.Configuration.ScreenLayoutLong\x12\x38\n\x0cscreen_round\x18\x0c \x01(\x0e\x32\".aapt.pb.Configuration.ScreenRound\x12?\n\x10wide_color_gamut\x18\r \x01(\x0e\x32%.aapt.pb.Configuration.WideColorGamut\x12\'\n\x03hdr\x18\x0e \x01(\x0e\x32\x1a.aapt.pb.Configuration.Hdr\x12\x37\n\x0borientation\x18\x0f \x01(\x0e\x32\".aapt.pb.Configuration.Orientation\x12\x37\n\x0cui_mode_type\x18\x10 \x01(\x0e\x32!.aapt.pb.Configuration.UiModeType\x12\x39\n\rui_mode_night\x18\x11 \x01(\x0e\x32\".aapt.pb.Configuration.UiModeNight\x12\x0f\n\x07\x64\x65nsity\x18\x12 \x01(\r\x12\x37\n\x0btouchscreen\x18\x13 \x01(\x0e\x32\".aapt.pb.Configuration.Touchscreen\x12\x36\n\x0bkeys_hidden\x18\x14 \x01(\x0e\x32!.aapt.pb.Configuration.KeysHidden\x12\x31\n\x08keyboard\x18\x15 \x01(\x0e\x32\x1f.aapt.pb.Configuration.Keyboard\x12\x34\n\nnav_hidden\x18\x16 \x01(\x0e\x32 .aapt.pb.Configuration.NavHidden\x12\x35\n\nnavigation\x18\x17 \x01(\x0e\x32!.aapt.pb.Configuration.Navigation\x12\x13\n\x0bsdk_version\x18\x18 \x01(\r\x12\x0f\n\x07product\x18\x19 \x01(\t\"a\n\x0fLayoutDirection\x12\x1a\n\x16LAYOUT_DIRECTION_UNSET\x10\x00\x12\x18\n\x14LAYOUT_DIRECTION_LTR\x10\x01\x12\x18\n\x14LAYOUT_DIRECTION_RTL\x10\x02\"\xaa\x01\n\x10ScreenLayoutSize\x12\x1c\n\x18SCREEN_LAYOUT_SIZE_UNSET\x10\x00\x12\x1c\n\x18SCREEN_LAYOUT_SIZE_SMALL\x10\x01\x12\x1d\n\x19SCREEN_LAYOUT_SIZE_NORMAL\x10\x02\x12\x1c\n\x18SCREEN_LAYOUT_SIZE_LARGE\x10\x03\x12\x1d\n\x19SCREEN_LAYOUT_SIZE_XLARGE\x10\x04\"m\n\x10ScreenLayoutLong\x12\x1c\n\x18SCREEN_LAYOUT_LONG_UNSET\x10\x00\x12\x1b\n\x17SCREEN_LAYOUT_LONG_LONG\x10\x01\x12\x1e\n\x1aSCREEN_LAYOUT_LONG_NOTLONG\x10\x02\"X\n\x0bScreenRound\x12\x16\n\x12SCREEN_ROUND_UNSET\x10\x00\x12\x16\n\x12SCREEN_ROUND_ROUND\x10\x01\x12\x19\n\x15SCREEN_ROUND_NOTROUND\x10\x02\"h\n\x0eWideColorGamut\x12\x1a\n\x16WIDE_COLOR_GAMUT_UNSET\x10\x00\x12\x1b\n\x17WIDE_COLOR_GAMUT_WIDECG\x10\x01\x12\x1d\n\x19WIDE_COLOR_GAMUT_NOWIDECG\x10\x02\"3\n\x03Hdr\x12\r\n\tHDR_UNSET\x10\x00\x12\x0e\n\nHDR_HIGHDR\x10\x01\x12\r\n\tHDR_LOWDR\x10\x02\"h\n\x0bOrientation\x12\x15\n\x11ORIENTATION_UNSET\x10\x00\x12\x14\n\x10ORIENTATION_PORT\x10\x01\x12\x14\n\x10ORIENTATION_LAND\x10\x02\x12\x16\n\x12ORIENTATION_SQUARE\x10\x03\"\xd7\x01\n\nUiModeType\x12\x16\n\x12UI_MODE_TYPE_UNSET\x10\x00\x12\x17\n\x13UI_MODE_TYPE_NORMAL\x10\x01\x12\x15\n\x11UI_MODE_TYPE_DESK\x10\x02\x12\x14\n\x10UI_MODE_TYPE_CAR\x10\x03\x12\x1b\n\x17UI_MODE_TYPE_TELEVISION\x10\x04\x12\x1a\n\x16UI_MODE_TYPE_APPLIANCE\x10\x05\x12\x16\n\x12UI_MODE_TYPE_WATCH\x10\x06\x12\x1a\n\x16UI_MODE_TYPE_VRHEADSET\x10\x07\"[\n\x0bUiModeNight\x12\x17\n\x13UI_MODE_NIGHT_UNSET\x10\x00\x12\x17\n\x13UI_MODE_NIGHT_NIGHT\x10\x01\x12\x1a\n\x16UI_MODE_NIGHT_NOTNIGHT\x10\x02\"m\n\x0bTouchscreen\x12\x15\n\x11TOUCHSCREEN_UNSET\x10\x00\x12\x17\n\x13TOUCHSCREEN_NOTOUCH\x10\x01\x12\x16\n\x12TOUCHSCREEN_STYLUS\x10\x02\x12\x16\n\x12TOUCHSCREEN_FINGER\x10\x03\"v\n\nKeysHidden\x12\x15\n\x11KEYS_HIDDEN_UNSET\x10\x00\x12\x1b\n\x17KEYS_HIDDEN_KEYSEXPOSED\x10\x01\x12\x1a\n\x16KEYS_HIDDEN_KEYSHIDDEN\x10\x02\x12\x18\n\x14KEYS_HIDDEN_KEYSSOFT\x10\x03\"`\n\x08Keyboard\x12\x12\n\x0eKEYBOARD_UNSET\x10\x00\x12\x13\n\x0fKEYBOARD_NOKEYS\x10\x01\x12\x13\n\x0fKEYBOARD_QWERTY\x10\x02\x12\x16\n\x12KEYBOARD_TWELVEKEY\x10\x03\"V\n\tNavHidden\x12\x14\n\x10NAV_HIDDEN_UNSET\x10\x00\x12\x19\n\x15NAV_HIDDEN_NAVEXPOSED\x10\x01\x12\x18\n\x14NAV_HIDDEN_NAVHIDDEN\x10\x02\"}\n\nNavigation\x12\x14\n\x10NAVIGATION_UNSET\x10\x00\x12\x14\n\x10NAVIGATION_NONAV\x10\x01\x12\x13\n\x0fNAVIGATION_DPAD\x10\x02\x12\x18\n\x14NAVIGATION_TRACKBALL\x10\x03\x12\x14\n\x10NAVIGATION_WHEEL\x10\x04\x42\x12\n\x10\x63om.android.aaptb\x06proto3' +) + + + +_CONFIGURATION_LAYOUTDIRECTION = _descriptor.EnumDescriptor( + name='LayoutDirection', + full_name='aapt.pb.Configuration.LayoutDirection', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='LAYOUT_DIRECTION_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LAYOUT_DIRECTION_LTR', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LAYOUT_DIRECTION_RTL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1119, + serialized_end=1216, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_LAYOUTDIRECTION) + +_CONFIGURATION_SCREENLAYOUTSIZE = _descriptor.EnumDescriptor( + name='ScreenLayoutSize', + full_name='aapt.pb.Configuration.ScreenLayoutSize', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_SIZE_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_SIZE_SMALL', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_SIZE_NORMAL', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_SIZE_LARGE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_SIZE_XLARGE', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1219, + serialized_end=1389, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_SCREENLAYOUTSIZE) + +_CONFIGURATION_SCREENLAYOUTLONG = _descriptor.EnumDescriptor( + name='ScreenLayoutLong', + full_name='aapt.pb.Configuration.ScreenLayoutLong', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_LONG_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_LONG_LONG', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_LAYOUT_LONG_NOTLONG', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1391, + serialized_end=1500, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_SCREENLAYOUTLONG) + +_CONFIGURATION_SCREENROUND = _descriptor.EnumDescriptor( + name='ScreenRound', + full_name='aapt.pb.Configuration.ScreenRound', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='SCREEN_ROUND_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_ROUND_ROUND', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_ROUND_NOTROUND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1502, + serialized_end=1590, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_SCREENROUND) + +_CONFIGURATION_WIDECOLORGAMUT = _descriptor.EnumDescriptor( + name='WideColorGamut', + full_name='aapt.pb.Configuration.WideColorGamut', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='WIDE_COLOR_GAMUT_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WIDE_COLOR_GAMUT_WIDECG', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='WIDE_COLOR_GAMUT_NOWIDECG', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1592, + serialized_end=1696, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_WIDECOLORGAMUT) + +_CONFIGURATION_HDR = _descriptor.EnumDescriptor( + name='Hdr', + full_name='aapt.pb.Configuration.Hdr', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='HDR_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HDR_HIGHDR', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HDR_LOWDR', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1698, + serialized_end=1749, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_HDR) + +_CONFIGURATION_ORIENTATION = _descriptor.EnumDescriptor( + name='Orientation', + full_name='aapt.pb.Configuration.Orientation', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='ORIENTATION_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORIENTATION_PORT', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORIENTATION_LAND', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ORIENTATION_SQUARE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1751, + serialized_end=1855, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_ORIENTATION) + +_CONFIGURATION_UIMODETYPE = _descriptor.EnumDescriptor( + name='UiModeType', + full_name='aapt.pb.Configuration.UiModeType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_NORMAL', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_DESK', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_CAR', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_TELEVISION', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_APPLIANCE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_WATCH', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_TYPE_VRHEADSET', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1858, + serialized_end=2073, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_UIMODETYPE) + +_CONFIGURATION_UIMODENIGHT = _descriptor.EnumDescriptor( + name='UiModeNight', + full_name='aapt.pb.Configuration.UiModeNight', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UI_MODE_NIGHT_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_NIGHT_NIGHT', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UI_MODE_NIGHT_NOTNIGHT', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2075, + serialized_end=2166, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_UIMODENIGHT) + +_CONFIGURATION_TOUCHSCREEN = _descriptor.EnumDescriptor( + name='Touchscreen', + full_name='aapt.pb.Configuration.Touchscreen', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='TOUCHSCREEN_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOUCHSCREEN_NOTOUCH', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOUCHSCREEN_STYLUS', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TOUCHSCREEN_FINGER', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2168, + serialized_end=2277, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_TOUCHSCREEN) + +_CONFIGURATION_KEYSHIDDEN = _descriptor.EnumDescriptor( + name='KeysHidden', + full_name='aapt.pb.Configuration.KeysHidden', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='KEYS_HIDDEN_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYS_HIDDEN_KEYSEXPOSED', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYS_HIDDEN_KEYSHIDDEN', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYS_HIDDEN_KEYSSOFT', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2279, + serialized_end=2397, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_KEYSHIDDEN) + +_CONFIGURATION_KEYBOARD = _descriptor.EnumDescriptor( + name='Keyboard', + full_name='aapt.pb.Configuration.Keyboard', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='KEYBOARD_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYBOARD_NOKEYS', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYBOARD_QWERTY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='KEYBOARD_TWELVEKEY', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2399, + serialized_end=2495, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_KEYBOARD) + +_CONFIGURATION_NAVHIDDEN = _descriptor.EnumDescriptor( + name='NavHidden', + full_name='aapt.pb.Configuration.NavHidden', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NAV_HIDDEN_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAV_HIDDEN_NAVEXPOSED', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAV_HIDDEN_NAVHIDDEN', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2497, + serialized_end=2583, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_NAVHIDDEN) + +_CONFIGURATION_NAVIGATION = _descriptor.EnumDescriptor( + name='Navigation', + full_name='aapt.pb.Configuration.Navigation', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NAVIGATION_UNSET', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAVIGATION_NONAV', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAVIGATION_DPAD', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAVIGATION_TRACKBALL', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NAVIGATION_WHEEL', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2585, + serialized_end=2710, +) +_sym_db.RegisterEnumDescriptor(_CONFIGURATION_NAVIGATION) + + +_CONFIGURATION = _descriptor.Descriptor( + name='Configuration', + full_name='aapt.pb.Configuration', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='mcc', full_name='aapt.pb.Configuration.mcc', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mnc', full_name='aapt.pb.Configuration.mnc', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='locale', full_name='aapt.pb.Configuration.locale', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='layout_direction', full_name='aapt.pb.Configuration.layout_direction', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_width', full_name='aapt.pb.Configuration.screen_width', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_height', full_name='aapt.pb.Configuration.screen_height', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_width_dp', full_name='aapt.pb.Configuration.screen_width_dp', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_height_dp', full_name='aapt.pb.Configuration.screen_height_dp', index=7, + number=8, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='smallest_screen_width_dp', full_name='aapt.pb.Configuration.smallest_screen_width_dp', index=8, + number=9, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_layout_size', full_name='aapt.pb.Configuration.screen_layout_size', index=9, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_layout_long', full_name='aapt.pb.Configuration.screen_layout_long', index=10, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_round', full_name='aapt.pb.Configuration.screen_round', index=11, + number=12, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='wide_color_gamut', full_name='aapt.pb.Configuration.wide_color_gamut', index=12, + number=13, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='hdr', full_name='aapt.pb.Configuration.hdr', index=13, + number=14, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='orientation', full_name='aapt.pb.Configuration.orientation', index=14, + number=15, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ui_mode_type', full_name='aapt.pb.Configuration.ui_mode_type', index=15, + number=16, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ui_mode_night', full_name='aapt.pb.Configuration.ui_mode_night', index=16, + number=17, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='density', full_name='aapt.pb.Configuration.density', index=17, + number=18, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='touchscreen', full_name='aapt.pb.Configuration.touchscreen', index=18, + number=19, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keys_hidden', full_name='aapt.pb.Configuration.keys_hidden', index=19, + number=20, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='keyboard', full_name='aapt.pb.Configuration.keyboard', index=20, + number=21, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='nav_hidden', full_name='aapt.pb.Configuration.nav_hidden', index=21, + number=22, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='navigation', full_name='aapt.pb.Configuration.navigation', index=22, + number=23, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sdk_version', full_name='aapt.pb.Configuration.sdk_version', index=23, + number=24, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='product', full_name='aapt.pb.Configuration.product', index=24, + number=25, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONFIGURATION_LAYOUTDIRECTION, + _CONFIGURATION_SCREENLAYOUTSIZE, + _CONFIGURATION_SCREENLAYOUTLONG, + _CONFIGURATION_SCREENROUND, + _CONFIGURATION_WIDECOLORGAMUT, + _CONFIGURATION_HDR, + _CONFIGURATION_ORIENTATION, + _CONFIGURATION_UIMODETYPE, + _CONFIGURATION_UIMODENIGHT, + _CONFIGURATION_TOUCHSCREEN, + _CONFIGURATION_KEYSHIDDEN, + _CONFIGURATION_KEYBOARD, + _CONFIGURATION_NAVHIDDEN, + _CONFIGURATION_NAVIGATION, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=61, + serialized_end=2710, +) + +_CONFIGURATION.fields_by_name['layout_direction'].enum_type = _CONFIGURATION_LAYOUTDIRECTION +_CONFIGURATION.fields_by_name['screen_layout_size'].enum_type = _CONFIGURATION_SCREENLAYOUTSIZE +_CONFIGURATION.fields_by_name['screen_layout_long'].enum_type = _CONFIGURATION_SCREENLAYOUTLONG +_CONFIGURATION.fields_by_name['screen_round'].enum_type = _CONFIGURATION_SCREENROUND +_CONFIGURATION.fields_by_name['wide_color_gamut'].enum_type = _CONFIGURATION_WIDECOLORGAMUT +_CONFIGURATION.fields_by_name['hdr'].enum_type = _CONFIGURATION_HDR +_CONFIGURATION.fields_by_name['orientation'].enum_type = _CONFIGURATION_ORIENTATION +_CONFIGURATION.fields_by_name['ui_mode_type'].enum_type = _CONFIGURATION_UIMODETYPE +_CONFIGURATION.fields_by_name['ui_mode_night'].enum_type = _CONFIGURATION_UIMODENIGHT +_CONFIGURATION.fields_by_name['touchscreen'].enum_type = _CONFIGURATION_TOUCHSCREEN +_CONFIGURATION.fields_by_name['keys_hidden'].enum_type = _CONFIGURATION_KEYSHIDDEN +_CONFIGURATION.fields_by_name['keyboard'].enum_type = _CONFIGURATION_KEYBOARD +_CONFIGURATION.fields_by_name['nav_hidden'].enum_type = _CONFIGURATION_NAVHIDDEN +_CONFIGURATION.fields_by_name['navigation'].enum_type = _CONFIGURATION_NAVIGATION +_CONFIGURATION_LAYOUTDIRECTION.containing_type = _CONFIGURATION +_CONFIGURATION_SCREENLAYOUTSIZE.containing_type = _CONFIGURATION +_CONFIGURATION_SCREENLAYOUTLONG.containing_type = _CONFIGURATION +_CONFIGURATION_SCREENROUND.containing_type = _CONFIGURATION +_CONFIGURATION_WIDECOLORGAMUT.containing_type = _CONFIGURATION +_CONFIGURATION_HDR.containing_type = _CONFIGURATION +_CONFIGURATION_ORIENTATION.containing_type = _CONFIGURATION +_CONFIGURATION_UIMODETYPE.containing_type = _CONFIGURATION +_CONFIGURATION_UIMODENIGHT.containing_type = _CONFIGURATION +_CONFIGURATION_TOUCHSCREEN.containing_type = _CONFIGURATION +_CONFIGURATION_KEYSHIDDEN.containing_type = _CONFIGURATION +_CONFIGURATION_KEYBOARD.containing_type = _CONFIGURATION +_CONFIGURATION_NAVHIDDEN.containing_type = _CONFIGURATION +_CONFIGURATION_NAVIGATION.containing_type = _CONFIGURATION +DESCRIPTOR.message_types_by_name['Configuration'] = _CONFIGURATION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Configuration = _reflection.GeneratedProtocolMessageType('Configuration', (_message.Message,), { + 'DESCRIPTOR' : _CONFIGURATION, + '__module__' : 'frameworks.base.tools.aapt2.Configuration_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Configuration) + }) +_sym_db.RegisterMessage(Configuration) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/direct/src/dist/_proto/README b/direct/src/dist/_proto/README new file mode 100644 index 0000000000..b327e1bd49 --- /dev/null +++ b/direct/src/dist/_proto/README @@ -0,0 +1,4 @@ +The files in this directory were generated from the .proto files in the +bundletool and aapt2 repositories. + +They are used by installer.py when generating an Android App Bundle. diff --git a/direct/src/dist/_proto/Resources_pb2.py b/direct/src/dist/_proto/Resources_pb2.py new file mode 100644 index 0000000000..c18aa80284 --- /dev/null +++ b/direct/src/dist/_proto/Resources_pb2.py @@ -0,0 +1,3246 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: frameworks/base/tools/aapt2/Resources.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from . import Configuration_pb2 as frameworks_dot_base_dot_tools_dot_aapt2_dot_Configuration__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='frameworks/base/tools/aapt2/Resources.proto', + package='aapt.pb', + syntax='proto3', + serialized_options=b'\n\020com.android.aapt', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n+frameworks/base/tools/aapt2/Resources.proto\x12\x07\x61\x61pt.pb\x1a/frameworks/base/tools/aapt2/Configuration.proto\"\x1a\n\nStringPool\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"<\n\x0eSourcePosition\x12\x13\n\x0bline_number\x18\x01 \x01(\r\x12\x15\n\rcolumn_number\x18\x02 \x01(\r\"E\n\x06Source\x12\x10\n\x08path_idx\x18\x01 \x01(\r\x12)\n\x08position\x18\x02 \x01(\x0b\x32\x17.aapt.pb.SourcePosition\"0\n\x0fToolFingerprint\x12\x0c\n\x04tool\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xbb\x01\n\rResourceTable\x12(\n\x0bsource_pool\x18\x01 \x01(\x0b\x32\x13.aapt.pb.StringPool\x12!\n\x07package\x18\x02 \x03(\x0b\x32\x10.aapt.pb.Package\x12)\n\x0boverlayable\x18\x03 \x03(\x0b\x32\x14.aapt.pb.Overlayable\x12\x32\n\x10tool_fingerprint\x18\x04 \x03(\x0b\x32\x18.aapt.pb.ToolFingerprint\"\x17\n\tPackageId\x12\n\n\x02id\x18\x01 \x01(\r\"d\n\x07Package\x12&\n\npackage_id\x18\x01 \x01(\x0b\x32\x12.aapt.pb.PackageId\x12\x14\n\x0cpackage_name\x18\x02 \x01(\t\x12\x1b\n\x04type\x18\x03 \x03(\x0b\x32\r.aapt.pb.Type\"\x14\n\x06TypeId\x12\n\n\x02id\x18\x01 \x01(\r\"U\n\x04Type\x12 \n\x07type_id\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.TypeId\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x05\x65ntry\x18\x03 \x03(\x0b\x32\x0e.aapt.pb.Entry\"\xab\x01\n\nVisibility\x12(\n\x05level\x18\x01 \x01(\x0e\x32\x19.aapt.pb.Visibility.Level\x12\x1f\n\x06source\x18\x02 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x03 \x01(\t\x12\x12\n\nstaged_api\x18\x04 \x01(\x08\"-\n\x05Level\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0b\n\x07PRIVATE\x10\x01\x12\n\n\x06PUBLIC\x10\x02\"<\n\x08\x41llowNew\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\"K\n\x0bOverlayable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x06source\x18\x02 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\r\n\x05\x61\x63tor\x18\x03 \x01(\t\"\x95\x02\n\x0fOverlayableItem\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12/\n\x06policy\x18\x03 \x03(\x0e\x32\x1f.aapt.pb.OverlayableItem.Policy\x12\x17\n\x0foverlayable_idx\x18\x04 \x01(\r\"\x85\x01\n\x06Policy\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06PUBLIC\x10\x01\x12\n\n\x06SYSTEM\x10\x02\x12\n\n\x06VENDOR\x10\x03\x12\x0b\n\x07PRODUCT\x10\x04\x12\r\n\tSIGNATURE\x10\x05\x12\x07\n\x03ODM\x10\x06\x12\x07\n\x03OEM\x10\x07\x12\t\n\x05\x41\x43TOR\x10\x08\x12\x14\n\x10\x43ONFIG_SIGNATURE\x10\t\">\n\x08StagedId\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x11\n\tstaged_id\x18\x02 \x01(\r\"\x15\n\x07\x45ntryId\x12\n\n\x02id\x18\x01 \x01(\r\"\x8e\x02\n\x05\x45ntry\x12\"\n\x08\x65ntry_id\x18\x01 \x01(\x0b\x32\x10.aapt.pb.EntryId\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\'\n\nvisibility\x18\x03 \x01(\x0b\x32\x13.aapt.pb.Visibility\x12$\n\tallow_new\x18\x04 \x01(\x0b\x32\x11.aapt.pb.AllowNew\x12\x32\n\x10overlayable_item\x18\x05 \x01(\x0b\x32\x18.aapt.pb.OverlayableItem\x12*\n\x0c\x63onfig_value\x18\x06 \x03(\x0b\x32\x14.aapt.pb.ConfigValue\x12$\n\tstaged_id\x18\x07 \x01(\x0b\x32\x11.aapt.pb.StagedId\"T\n\x0b\x43onfigValue\x12&\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x16.aapt.pb.Configuration\x12\x1d\n\x05value\x18\x02 \x01(\x0b\x32\x0e.aapt.pb.Value\"\xa1\x01\n\x05Value\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12\x0c\n\x04weak\x18\x03 \x01(\x08\x12\x1d\n\x04item\x18\x04 \x01(\x0b\x32\r.aapt.pb.ItemH\x00\x12\x30\n\x0e\x63ompound_value\x18\x05 \x01(\x0b\x32\x16.aapt.pb.CompoundValueH\x00\x42\x07\n\x05value\"\x8d\x02\n\x04Item\x12!\n\x03ref\x18\x01 \x01(\x0b\x32\x12.aapt.pb.ReferenceH\x00\x12\x1e\n\x03str\x18\x02 \x01(\x0b\x32\x0f.aapt.pb.StringH\x00\x12%\n\x07raw_str\x18\x03 \x01(\x0b\x32\x12.aapt.pb.RawStringH\x00\x12+\n\nstyled_str\x18\x04 \x01(\x0b\x32\x15.aapt.pb.StyledStringH\x00\x12&\n\x04\x66ile\x18\x05 \x01(\x0b\x32\x16.aapt.pb.FileReferenceH\x00\x12\x19\n\x02id\x18\x06 \x01(\x0b\x32\x0b.aapt.pb.IdH\x00\x12\"\n\x04prim\x18\x07 \x01(\x0b\x32\x12.aapt.pb.PrimitiveH\x00\x42\x07\n\x05value\"\xef\x01\n\rCompoundValue\x12\"\n\x04\x61ttr\x18\x01 \x01(\x0b\x32\x12.aapt.pb.AttributeH\x00\x12\x1f\n\x05style\x18\x02 \x01(\x0b\x32\x0e.aapt.pb.StyleH\x00\x12\'\n\tstyleable\x18\x03 \x01(\x0b\x32\x12.aapt.pb.StyleableH\x00\x12\x1f\n\x05\x61rray\x18\x04 \x01(\x0b\x32\x0e.aapt.pb.ArrayH\x00\x12!\n\x06plural\x18\x05 \x01(\x0b\x32\x0f.aapt.pb.PluralH\x00\x12#\n\x05macro\x18\x06 \x01(\x0b\x32\x12.aapt.pb.MacroBodyH\x00\x42\x07\n\x05value\"\x18\n\x07\x42oolean\x12\r\n\x05value\x18\x01 \x01(\x08\"\xd0\x01\n\tReference\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.aapt.pb.Reference.Type\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x0f\n\x07private\x18\x04 \x01(\x08\x12$\n\nis_dynamic\x18\x05 \x01(\x0b\x32\x10.aapt.pb.Boolean\x12\x12\n\ntype_flags\x18\x06 \x01(\r\x12\x11\n\tallow_raw\x18\x07 \x01(\x08\"$\n\x04Type\x12\r\n\tREFERENCE\x10\x00\x12\r\n\tATTRIBUTE\x10\x01\"\x04\n\x02Id\"\x17\n\x06String\x12\r\n\x05value\x18\x01 \x01(\t\"\x1a\n\tRawString\x12\r\n\x05value\x18\x01 \x01(\t\"\x83\x01\n\x0cStyledString\x12\r\n\x05value\x18\x01 \x01(\t\x12(\n\x04span\x18\x02 \x03(\x0b\x32\x1a.aapt.pb.StyledString.Span\x1a:\n\x04Span\x12\x0b\n\x03tag\x18\x01 \x01(\t\x12\x12\n\nfirst_char\x18\x02 \x01(\r\x12\x11\n\tlast_char\x18\x03 \x01(\r\"\x85\x01\n\rFileReference\x12\x0c\n\x04path\x18\x01 \x01(\t\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.aapt.pb.FileReference.Type\";\n\x04Type\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03PNG\x10\x01\x12\x0e\n\nBINARY_XML\x10\x02\x12\r\n\tPROTO_XML\x10\x03\"\x83\x04\n\tPrimitive\x12\x31\n\nnull_value\x18\x01 \x01(\x0b\x32\x1b.aapt.pb.Primitive.NullTypeH\x00\x12\x33\n\x0b\x65mpty_value\x18\x02 \x01(\x0b\x32\x1c.aapt.pb.Primitive.EmptyTypeH\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x19\n\x0f\x64imension_value\x18\r \x01(\rH\x00\x12\x18\n\x0e\x66raction_value\x18\x0e \x01(\rH\x00\x12\x1b\n\x11int_decimal_value\x18\x06 \x01(\x05H\x00\x12\x1f\n\x15int_hexadecimal_value\x18\x07 \x01(\rH\x00\x12\x17\n\rboolean_value\x18\x08 \x01(\x08H\x00\x12\x1b\n\x11\x63olor_argb8_value\x18\t \x01(\rH\x00\x12\x1a\n\x10\x63olor_rgb8_value\x18\n \x01(\rH\x00\x12\x1b\n\x11\x63olor_argb4_value\x18\x0b \x01(\rH\x00\x12\x1a\n\x10\x63olor_rgb4_value\x18\x0c \x01(\rH\x00\x12(\n\x1a\x64imension_value_deprecated\x18\x04 \x01(\x02\x42\x02\x18\x01H\x00\x12\'\n\x19\x66raction_value_deprecated\x18\x05 \x01(\x02\x42\x02\x18\x01H\x00\x1a\n\n\x08NullType\x1a\x0b\n\tEmptyTypeB\r\n\x0boneof_value\"\x90\x03\n\tAttribute\x12\x14\n\x0c\x66ormat_flags\x18\x01 \x01(\r\x12\x0f\n\x07min_int\x18\x02 \x01(\x05\x12\x0f\n\x07max_int\x18\x03 \x01(\x05\x12)\n\x06symbol\x18\x04 \x03(\x0b\x32\x19.aapt.pb.Attribute.Symbol\x1ay\n\x06Symbol\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12 \n\x04name\x18\x03 \x01(\x0b\x32\x12.aapt.pb.Reference\x12\r\n\x05value\x18\x04 \x01(\r\x12\x0c\n\x04type\x18\x05 \x01(\r\"\xa4\x01\n\x0b\x46ormatFlags\x12\x08\n\x04NONE\x10\x00\x12\t\n\x03\x41NY\x10\xff\xff\x03\x12\r\n\tREFERENCE\x10\x01\x12\n\n\x06STRING\x10\x02\x12\x0b\n\x07INTEGER\x10\x04\x12\x0b\n\x07\x42OOLEAN\x10\x08\x12\t\n\x05\x43OLOR\x10\x10\x12\t\n\x05\x46LOAT\x10 \x12\r\n\tDIMENSION\x10@\x12\r\n\x08\x46RACTION\x10\x80\x01\x12\n\n\x04\x45NUM\x10\x80\x80\x04\x12\x0b\n\x05\x46LAGS\x10\x80\x80\x08\"\xf1\x01\n\x05Style\x12\"\n\x06parent\x18\x01 \x01(\x0b\x32\x12.aapt.pb.Reference\x12&\n\rparent_source\x18\x02 \x01(\x0b\x32\x0f.aapt.pb.Source\x12#\n\x05\x65ntry\x18\x03 \x03(\x0b\x32\x14.aapt.pb.Style.Entry\x1aw\n\x05\x45ntry\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12\x1f\n\x03key\x18\x03 \x01(\x0b\x32\x12.aapt.pb.Reference\x12\x1b\n\x04item\x18\x04 \x01(\x0b\x32\r.aapt.pb.Item\"\x91\x01\n\tStyleable\x12\'\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x18.aapt.pb.Styleable.Entry\x1a[\n\x05\x45ntry\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12 \n\x04\x61ttr\x18\x03 \x01(\x0b\x32\x12.aapt.pb.Reference\"\x8a\x01\n\x05\x41rray\x12\'\n\x07\x65lement\x18\x01 \x03(\x0b\x32\x16.aapt.pb.Array.Element\x1aX\n\x07\x45lement\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12\x1b\n\x04item\x18\x03 \x01(\x0b\x32\r.aapt.pb.Item\"\xef\x01\n\x06Plural\x12$\n\x05\x65ntry\x18\x01 \x03(\x0b\x32\x15.aapt.pb.Plural.Entry\x1a|\n\x05\x45ntry\x12\x1f\n\x06source\x18\x01 \x01(\x0b\x32\x0f.aapt.pb.Source\x12\x0f\n\x07\x63omment\x18\x02 \x01(\t\x12$\n\x05\x61rity\x18\x03 \x01(\x0e\x32\x15.aapt.pb.Plural.Arity\x12\x1b\n\x04item\x18\x04 \x01(\x0b\x32\r.aapt.pb.Item\"A\n\x05\x41rity\x12\x08\n\x04ZERO\x10\x00\x12\x07\n\x03ONE\x10\x01\x12\x07\n\x03TWO\x10\x02\x12\x07\n\x03\x46\x45W\x10\x03\x12\x08\n\x04MANY\x10\x04\x12\t\n\x05OTHER\x10\x05\"r\n\x07XmlNode\x12&\n\x07\x65lement\x18\x01 \x01(\x0b\x32\x13.aapt.pb.XmlElementH\x00\x12\x0e\n\x04text\x18\x02 \x01(\tH\x00\x12\'\n\x06source\x18\x03 \x01(\x0b\x32\x17.aapt.pb.SourcePositionB\x06\n\x04node\"\xb2\x01\n\nXmlElement\x12\x34\n\x15namespace_declaration\x18\x01 \x03(\x0b\x32\x15.aapt.pb.XmlNamespace\x12\x15\n\rnamespace_uri\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12(\n\tattribute\x18\x04 \x03(\x0b\x32\x15.aapt.pb.XmlAttribute\x12\x1f\n\x05\x63hild\x18\x05 \x03(\x0b\x32\x10.aapt.pb.XmlNode\"T\n\x0cXmlNamespace\x12\x0e\n\x06prefix\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\'\n\x06source\x18\x03 \x01(\x0b\x32\x17.aapt.pb.SourcePosition\"\xa6\x01\n\x0cXmlAttribute\x12\x15\n\rnamespace_uri\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\'\n\x06source\x18\x04 \x01(\x0b\x32\x17.aapt.pb.SourcePosition\x12\x13\n\x0bresource_id\x18\x05 \x01(\r\x12$\n\rcompiled_item\x18\x06 \x01(\x0b\x32\r.aapt.pb.Item\"\xe7\x01\n\tMacroBody\x12\x12\n\nraw_string\x18\x01 \x01(\t\x12*\n\x0cstyle_string\x18\x02 \x01(\x0b\x32\x14.aapt.pb.StyleString\x12?\n\x17untranslatable_sections\x18\x03 \x03(\x0b\x32\x1e.aapt.pb.UntranslatableSection\x12\x30\n\x0fnamespace_stack\x18\x04 \x03(\x0b\x32\x17.aapt.pb.NamespaceAlias\x12\'\n\x06source\x18\x05 \x01(\x0b\x32\x17.aapt.pb.SourcePosition\"J\n\x0eNamespaceAlias\x12\x0e\n\x06prefix\x18\x01 \x01(\t\x12\x14\n\x0cpackage_name\x18\x02 \x01(\t\x12\x12\n\nis_private\x18\x03 \x01(\x08\"\x82\x01\n\x0bStyleString\x12\x0b\n\x03str\x18\x01 \x01(\t\x12(\n\x05spans\x18\x02 \x03(\x0b\x32\x19.aapt.pb.StyleString.Span\x1a<\n\x04Span\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bstart_index\x18\x02 \x01(\r\x12\x11\n\tend_index\x18\x03 \x01(\r\"?\n\x15UntranslatableSection\x12\x13\n\x0bstart_index\x18\x01 \x01(\x04\x12\x11\n\tend_index\x18\x02 \x01(\x04\x42\x12\n\x10\x63om.android.aaptb\x06proto3' + , + dependencies=[frameworks_dot_base_dot_tools_dot_aapt2_dot_Configuration__pb2.DESCRIPTOR,]) + + + +_VISIBILITY_LEVEL = _descriptor.EnumDescriptor( + name='Level', + full_name='aapt.pb.Visibility.Level', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRIVATE', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PUBLIC', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=869, + serialized_end=914, +) +_sym_db.RegisterEnumDescriptor(_VISIBILITY_LEVEL) + +_OVERLAYABLEITEM_POLICY = _descriptor.EnumDescriptor( + name='Policy', + full_name='aapt.pb.OverlayableItem.Policy', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PUBLIC', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SYSTEM', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='VENDOR', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PRODUCT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SIGNATURE', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ODM', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OEM', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ACTOR', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='CONFIG_SIGNATURE', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1200, + serialized_end=1333, +) +_sym_db.RegisterEnumDescriptor(_OVERLAYABLEITEM_POLICY) + +_REFERENCE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='aapt.pb.Reference.Type', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='REFERENCE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATTRIBUTE', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2658, + serialized_end=2694, +) +_sym_db.RegisterEnumDescriptor(_REFERENCE_TYPE) + +_FILEREFERENCE_TYPE = _descriptor.EnumDescriptor( + name='Type', + full_name='aapt.pb.FileReference.Type', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNKNOWN', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PNG', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BINARY_XML', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PROTO_XML', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2964, + serialized_end=3023, +) +_sym_db.RegisterEnumDescriptor(_FILEREFERENCE_TYPE) + +_ATTRIBUTE_FORMATFLAGS = _descriptor.EnumDescriptor( + name='FormatFlags', + full_name='aapt.pb.Attribute.FormatFlags', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ANY', index=1, number=65535, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='REFERENCE', index=2, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='STRING', index=3, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='INTEGER', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='BOOLEAN', index=5, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COLOR', index=6, number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLOAT', index=7, number=32, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DIMENSION', index=8, number=64, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FRACTION', index=9, number=128, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENUM', index=10, number=65536, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FLAGS', index=11, number=131072, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=3780, + serialized_end=3944, +) +_sym_db.RegisterEnumDescriptor(_ATTRIBUTE_FORMATFLAGS) + +_PLURAL_ARITY = _descriptor.EnumDescriptor( + name='Arity', + full_name='aapt.pb.Plural.Arity', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='ZERO', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ONE', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TWO', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='FEW', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MANY', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OTHER', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=4654, + serialized_end=4719, +) +_sym_db.RegisterEnumDescriptor(_PLURAL_ARITY) + + +_STRINGPOOL = _descriptor.Descriptor( + name='StringPool', + full_name='aapt.pb.StringPool', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='data', full_name='aapt.pb.StringPool.data', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=105, + serialized_end=131, +) + + +_SOURCEPOSITION = _descriptor.Descriptor( + name='SourcePosition', + full_name='aapt.pb.SourcePosition', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='line_number', full_name='aapt.pb.SourcePosition.line_number', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='column_number', full_name='aapt.pb.SourcePosition.column_number', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=133, + serialized_end=193, +) + + +_SOURCE = _descriptor.Descriptor( + name='Source', + full_name='aapt.pb.Source', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path_idx', full_name='aapt.pb.Source.path_idx', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='position', full_name='aapt.pb.Source.position', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=195, + serialized_end=264, +) + + +_TOOLFINGERPRINT = _descriptor.Descriptor( + name='ToolFingerprint', + full_name='aapt.pb.ToolFingerprint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='tool', full_name='aapt.pb.ToolFingerprint.tool', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='version', full_name='aapt.pb.ToolFingerprint.version', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=266, + serialized_end=314, +) + + +_RESOURCETABLE = _descriptor.Descriptor( + name='ResourceTable', + full_name='aapt.pb.ResourceTable', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source_pool', full_name='aapt.pb.ResourceTable.source_pool', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='package', full_name='aapt.pb.ResourceTable.package', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='overlayable', full_name='aapt.pb.ResourceTable.overlayable', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='tool_fingerprint', full_name='aapt.pb.ResourceTable.tool_fingerprint', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=317, + serialized_end=504, +) + + +_PACKAGEID = _descriptor.Descriptor( + name='PackageId', + full_name='aapt.pb.PackageId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='aapt.pb.PackageId.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=506, + serialized_end=529, +) + + +_PACKAGE = _descriptor.Descriptor( + name='Package', + full_name='aapt.pb.Package', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='package_id', full_name='aapt.pb.Package.package_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='package_name', full_name='aapt.pb.Package.package_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='aapt.pb.Package.type', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=531, + serialized_end=631, +) + + +_TYPEID = _descriptor.Descriptor( + name='TypeId', + full_name='aapt.pb.TypeId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='aapt.pb.TypeId.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=633, + serialized_end=653, +) + + +_TYPE = _descriptor.Descriptor( + name='Type', + full_name='aapt.pb.Type', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type_id', full_name='aapt.pb.Type.type_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.Type.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='entry', full_name='aapt.pb.Type.entry', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=655, + serialized_end=740, +) + + +_VISIBILITY = _descriptor.Descriptor( + name='Visibility', + full_name='aapt.pb.Visibility', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='level', full_name='aapt.pb.Visibility.level', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Visibility.source', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Visibility.comment', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='staged_api', full_name='aapt.pb.Visibility.staged_api', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _VISIBILITY_LEVEL, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=743, + serialized_end=914, +) + + +_ALLOWNEW = _descriptor.Descriptor( + name='AllowNew', + full_name='aapt.pb.AllowNew', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.AllowNew.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.AllowNew.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=916, + serialized_end=976, +) + + +_OVERLAYABLE = _descriptor.Descriptor( + name='Overlayable', + full_name='aapt.pb.Overlayable', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.Overlayable.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Overlayable.source', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='actor', full_name='aapt.pb.Overlayable.actor', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=978, + serialized_end=1053, +) + + +_OVERLAYABLEITEM = _descriptor.Descriptor( + name='OverlayableItem', + full_name='aapt.pb.OverlayableItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.OverlayableItem.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.OverlayableItem.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='policy', full_name='aapt.pb.OverlayableItem.policy', index=2, + number=3, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='overlayable_idx', full_name='aapt.pb.OverlayableItem.overlayable_idx', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _OVERLAYABLEITEM_POLICY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1056, + serialized_end=1333, +) + + +_STAGEDID = _descriptor.Descriptor( + name='StagedId', + full_name='aapt.pb.StagedId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.StagedId.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='staged_id', full_name='aapt.pb.StagedId.staged_id', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1335, + serialized_end=1397, +) + + +_ENTRYID = _descriptor.Descriptor( + name='EntryId', + full_name='aapt.pb.EntryId', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='aapt.pb.EntryId.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1399, + serialized_end=1420, +) + + +_ENTRY = _descriptor.Descriptor( + name='Entry', + full_name='aapt.pb.Entry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='entry_id', full_name='aapt.pb.Entry.entry_id', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.Entry.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='visibility', full_name='aapt.pb.Entry.visibility', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='allow_new', full_name='aapt.pb.Entry.allow_new', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='overlayable_item', full_name='aapt.pb.Entry.overlayable_item', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='config_value', full_name='aapt.pb.Entry.config_value', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='staged_id', full_name='aapt.pb.Entry.staged_id', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1423, + serialized_end=1693, +) + + +_CONFIGVALUE = _descriptor.Descriptor( + name='ConfigValue', + full_name='aapt.pb.ConfigValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='config', full_name='aapt.pb.ConfigValue.config', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.ConfigValue.value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1695, + serialized_end=1779, +) + + +_VALUE = _descriptor.Descriptor( + name='Value', + full_name='aapt.pb.Value', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Value.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Value.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='weak', full_name='aapt.pb.Value.weak', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='item', full_name='aapt.pb.Value.item', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='compound_value', full_name='aapt.pb.Value.compound_value', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='value', full_name='aapt.pb.Value.value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1782, + serialized_end=1943, +) + + +_ITEM = _descriptor.Descriptor( + name='Item', + full_name='aapt.pb.Item', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='ref', full_name='aapt.pb.Item.ref', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='str', full_name='aapt.pb.Item.str', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='raw_str', full_name='aapt.pb.Item.raw_str', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='styled_str', full_name='aapt.pb.Item.styled_str', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='file', full_name='aapt.pb.Item.file', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='aapt.pb.Item.id', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='prim', full_name='aapt.pb.Item.prim', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='value', full_name='aapt.pb.Item.value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1946, + serialized_end=2215, +) + + +_COMPOUNDVALUE = _descriptor.Descriptor( + name='CompoundValue', + full_name='aapt.pb.CompoundValue', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='attr', full_name='aapt.pb.CompoundValue.attr', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='style', full_name='aapt.pb.CompoundValue.style', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='styleable', full_name='aapt.pb.CompoundValue.styleable', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='array', full_name='aapt.pb.CompoundValue.array', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='plural', full_name='aapt.pb.CompoundValue.plural', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='macro', full_name='aapt.pb.CompoundValue.macro', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='value', full_name='aapt.pb.CompoundValue.value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=2218, + serialized_end=2457, +) + + +_BOOLEAN = _descriptor.Descriptor( + name='Boolean', + full_name='aapt.pb.Boolean', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.Boolean.value', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2459, + serialized_end=2483, +) + + +_REFERENCE = _descriptor.Descriptor( + name='Reference', + full_name='aapt.pb.Reference', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='aapt.pb.Reference.type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='id', full_name='aapt.pb.Reference.id', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.Reference.name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='private', full_name='aapt.pb.Reference.private', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_dynamic', full_name='aapt.pb.Reference.is_dynamic', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_flags', full_name='aapt.pb.Reference.type_flags', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='allow_raw', full_name='aapt.pb.Reference.allow_raw', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _REFERENCE_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2486, + serialized_end=2694, +) + + +_ID = _descriptor.Descriptor( + name='Id', + full_name='aapt.pb.Id', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2696, + serialized_end=2700, +) + + +_STRING = _descriptor.Descriptor( + name='String', + full_name='aapt.pb.String', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.String.value', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2702, + serialized_end=2725, +) + + +_RAWSTRING = _descriptor.Descriptor( + name='RawString', + full_name='aapt.pb.RawString', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.RawString.value', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2727, + serialized_end=2753, +) + + +_STYLEDSTRING_SPAN = _descriptor.Descriptor( + name='Span', + full_name='aapt.pb.StyledString.Span', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='tag', full_name='aapt.pb.StyledString.Span.tag', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='first_char', full_name='aapt.pb.StyledString.Span.first_char', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='last_char', full_name='aapt.pb.StyledString.Span.last_char', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2829, + serialized_end=2887, +) + +_STYLEDSTRING = _descriptor.Descriptor( + name='StyledString', + full_name='aapt.pb.StyledString', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.StyledString.value', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='span', full_name='aapt.pb.StyledString.span', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_STYLEDSTRING_SPAN, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2756, + serialized_end=2887, +) + + +_FILEREFERENCE = _descriptor.Descriptor( + name='FileReference', + full_name='aapt.pb.FileReference', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path', full_name='aapt.pb.FileReference.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='aapt.pb.FileReference.type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FILEREFERENCE_TYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2890, + serialized_end=3023, +) + + +_PRIMITIVE_NULLTYPE = _descriptor.Descriptor( + name='NullType', + full_name='aapt.pb.Primitive.NullType', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3503, + serialized_end=3513, +) + +_PRIMITIVE_EMPTYTYPE = _descriptor.Descriptor( + name='EmptyType', + full_name='aapt.pb.Primitive.EmptyType', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3515, + serialized_end=3526, +) + +_PRIMITIVE = _descriptor.Descriptor( + name='Primitive', + full_name='aapt.pb.Primitive', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='null_value', full_name='aapt.pb.Primitive.null_value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='empty_value', full_name='aapt.pb.Primitive.empty_value', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='float_value', full_name='aapt.pb.Primitive.float_value', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dimension_value', full_name='aapt.pb.Primitive.dimension_value', index=3, + number=13, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='fraction_value', full_name='aapt.pb.Primitive.fraction_value', index=4, + number=14, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='int_decimal_value', full_name='aapt.pb.Primitive.int_decimal_value', index=5, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='int_hexadecimal_value', full_name='aapt.pb.Primitive.int_hexadecimal_value', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='boolean_value', full_name='aapt.pb.Primitive.boolean_value', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='color_argb8_value', full_name='aapt.pb.Primitive.color_argb8_value', index=8, + number=9, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='color_rgb8_value', full_name='aapt.pb.Primitive.color_rgb8_value', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='color_argb4_value', full_name='aapt.pb.Primitive.color_argb4_value', index=10, + number=11, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='color_rgb4_value', full_name='aapt.pb.Primitive.color_rgb4_value', index=11, + number=12, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dimension_value_deprecated', full_name='aapt.pb.Primitive.dimension_value_deprecated', index=12, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='fraction_value_deprecated', full_name='aapt.pb.Primitive.fraction_value_deprecated', index=13, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=b'\030\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PRIMITIVE_NULLTYPE, _PRIMITIVE_EMPTYTYPE, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='oneof_value', full_name='aapt.pb.Primitive.oneof_value', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=3026, + serialized_end=3541, +) + + +_ATTRIBUTE_SYMBOL = _descriptor.Descriptor( + name='Symbol', + full_name='aapt.pb.Attribute.Symbol', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Attribute.Symbol.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Attribute.Symbol.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.Attribute.Symbol.name', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.Attribute.Symbol.value', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='aapt.pb.Attribute.Symbol.type', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3656, + serialized_end=3777, +) + +_ATTRIBUTE = _descriptor.Descriptor( + name='Attribute', + full_name='aapt.pb.Attribute', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='format_flags', full_name='aapt.pb.Attribute.format_flags', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='min_int', full_name='aapt.pb.Attribute.min_int', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='max_int', full_name='aapt.pb.Attribute.max_int', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='symbol', full_name='aapt.pb.Attribute.symbol', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_ATTRIBUTE_SYMBOL, ], + enum_types=[ + _ATTRIBUTE_FORMATFLAGS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3544, + serialized_end=3944, +) + + +_STYLE_ENTRY = _descriptor.Descriptor( + name='Entry', + full_name='aapt.pb.Style.Entry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Style.Entry.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Style.Entry.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='key', full_name='aapt.pb.Style.Entry.key', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='item', full_name='aapt.pb.Style.Entry.item', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4069, + serialized_end=4188, +) + +_STYLE = _descriptor.Descriptor( + name='Style', + full_name='aapt.pb.Style', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='parent', full_name='aapt.pb.Style.parent', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='parent_source', full_name='aapt.pb.Style.parent_source', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='entry', full_name='aapt.pb.Style.entry', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_STYLE_ENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3947, + serialized_end=4188, +) + + +_STYLEABLE_ENTRY = _descriptor.Descriptor( + name='Entry', + full_name='aapt.pb.Styleable.Entry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Styleable.Entry.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Styleable.Entry.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attr', full_name='aapt.pb.Styleable.Entry.attr', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4245, + serialized_end=4336, +) + +_STYLEABLE = _descriptor.Descriptor( + name='Styleable', + full_name='aapt.pb.Styleable', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='entry', full_name='aapt.pb.Styleable.entry', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_STYLEABLE_ENTRY, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4191, + serialized_end=4336, +) + + +_ARRAY_ELEMENT = _descriptor.Descriptor( + name='Element', + full_name='aapt.pb.Array.Element', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Array.Element.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Array.Element.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='item', full_name='aapt.pb.Array.Element.item', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4389, + serialized_end=4477, +) + +_ARRAY = _descriptor.Descriptor( + name='Array', + full_name='aapt.pb.Array', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='element', full_name='aapt.pb.Array.element', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_ARRAY_ELEMENT, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4339, + serialized_end=4477, +) + + +_PLURAL_ENTRY = _descriptor.Descriptor( + name='Entry', + full_name='aapt.pb.Plural.Entry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.Plural.Entry.source', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='comment', full_name='aapt.pb.Plural.Entry.comment', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='arity', full_name='aapt.pb.Plural.Entry.arity', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='item', full_name='aapt.pb.Plural.Entry.item', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4528, + serialized_end=4652, +) + +_PLURAL = _descriptor.Descriptor( + name='Plural', + full_name='aapt.pb.Plural', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='entry', full_name='aapt.pb.Plural.entry', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_PLURAL_ENTRY, ], + enum_types=[ + _PLURAL_ARITY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4480, + serialized_end=4719, +) + + +_XMLNODE = _descriptor.Descriptor( + name='XmlNode', + full_name='aapt.pb.XmlNode', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='element', full_name='aapt.pb.XmlNode.element', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='text', full_name='aapt.pb.XmlNode.text', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.XmlNode.source', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='node', full_name='aapt.pb.XmlNode.node', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=4721, + serialized_end=4835, +) + + +_XMLELEMENT = _descriptor.Descriptor( + name='XmlElement', + full_name='aapt.pb.XmlElement', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='namespace_declaration', full_name='aapt.pb.XmlElement.namespace_declaration', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='namespace_uri', full_name='aapt.pb.XmlElement.namespace_uri', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.XmlElement.name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='attribute', full_name='aapt.pb.XmlElement.attribute', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='child', full_name='aapt.pb.XmlElement.child', index=4, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4838, + serialized_end=5016, +) + + +_XMLNAMESPACE = _descriptor.Descriptor( + name='XmlNamespace', + full_name='aapt.pb.XmlNamespace', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='prefix', full_name='aapt.pb.XmlNamespace.prefix', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='uri', full_name='aapt.pb.XmlNamespace.uri', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.XmlNamespace.source', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5018, + serialized_end=5102, +) + + +_XMLATTRIBUTE = _descriptor.Descriptor( + name='XmlAttribute', + full_name='aapt.pb.XmlAttribute', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='namespace_uri', full_name='aapt.pb.XmlAttribute.namespace_uri', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.XmlAttribute.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='aapt.pb.XmlAttribute.value', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.XmlAttribute.source', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_id', full_name='aapt.pb.XmlAttribute.resource_id', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='compiled_item', full_name='aapt.pb.XmlAttribute.compiled_item', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5105, + serialized_end=5271, +) + + +_MACROBODY = _descriptor.Descriptor( + name='MacroBody', + full_name='aapt.pb.MacroBody', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='raw_string', full_name='aapt.pb.MacroBody.raw_string', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='style_string', full_name='aapt.pb.MacroBody.style_string', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='untranslatable_sections', full_name='aapt.pb.MacroBody.untranslatable_sections', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='namespace_stack', full_name='aapt.pb.MacroBody.namespace_stack', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='source', full_name='aapt.pb.MacroBody.source', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5274, + serialized_end=5505, +) + + +_NAMESPACEALIAS = _descriptor.Descriptor( + name='NamespaceAlias', + full_name='aapt.pb.NamespaceAlias', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='prefix', full_name='aapt.pb.NamespaceAlias.prefix', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='package_name', full_name='aapt.pb.NamespaceAlias.package_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_private', full_name='aapt.pb.NamespaceAlias.is_private', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5507, + serialized_end=5581, +) + + +_STYLESTRING_SPAN = _descriptor.Descriptor( + name='Span', + full_name='aapt.pb.StyleString.Span', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='aapt.pb.StyleString.Span.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='start_index', full_name='aapt.pb.StyleString.Span.start_index', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_index', full_name='aapt.pb.StyleString.Span.end_index', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5654, + serialized_end=5714, +) + +_STYLESTRING = _descriptor.Descriptor( + name='StyleString', + full_name='aapt.pb.StyleString', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='str', full_name='aapt.pb.StyleString.str', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='spans', full_name='aapt.pb.StyleString.spans', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_STYLESTRING_SPAN, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5584, + serialized_end=5714, +) + + +_UNTRANSLATABLESECTION = _descriptor.Descriptor( + name='UntranslatableSection', + full_name='aapt.pb.UntranslatableSection', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='start_index', full_name='aapt.pb.UntranslatableSection.start_index', index=0, + number=1, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='end_index', full_name='aapt.pb.UntranslatableSection.end_index', index=1, + number=2, type=4, cpp_type=4, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=5716, + serialized_end=5779, +) + +_SOURCE.fields_by_name['position'].message_type = _SOURCEPOSITION +_RESOURCETABLE.fields_by_name['source_pool'].message_type = _STRINGPOOL +_RESOURCETABLE.fields_by_name['package'].message_type = _PACKAGE +_RESOURCETABLE.fields_by_name['overlayable'].message_type = _OVERLAYABLE +_RESOURCETABLE.fields_by_name['tool_fingerprint'].message_type = _TOOLFINGERPRINT +_PACKAGE.fields_by_name['package_id'].message_type = _PACKAGEID +_PACKAGE.fields_by_name['type'].message_type = _TYPE +_TYPE.fields_by_name['type_id'].message_type = _TYPEID +_TYPE.fields_by_name['entry'].message_type = _ENTRY +_VISIBILITY.fields_by_name['level'].enum_type = _VISIBILITY_LEVEL +_VISIBILITY.fields_by_name['source'].message_type = _SOURCE +_VISIBILITY_LEVEL.containing_type = _VISIBILITY +_ALLOWNEW.fields_by_name['source'].message_type = _SOURCE +_OVERLAYABLE.fields_by_name['source'].message_type = _SOURCE +_OVERLAYABLEITEM.fields_by_name['source'].message_type = _SOURCE +_OVERLAYABLEITEM.fields_by_name['policy'].enum_type = _OVERLAYABLEITEM_POLICY +_OVERLAYABLEITEM_POLICY.containing_type = _OVERLAYABLEITEM +_STAGEDID.fields_by_name['source'].message_type = _SOURCE +_ENTRY.fields_by_name['entry_id'].message_type = _ENTRYID +_ENTRY.fields_by_name['visibility'].message_type = _VISIBILITY +_ENTRY.fields_by_name['allow_new'].message_type = _ALLOWNEW +_ENTRY.fields_by_name['overlayable_item'].message_type = _OVERLAYABLEITEM +_ENTRY.fields_by_name['config_value'].message_type = _CONFIGVALUE +_ENTRY.fields_by_name['staged_id'].message_type = _STAGEDID +_CONFIGVALUE.fields_by_name['config'].message_type = frameworks_dot_base_dot_tools_dot_aapt2_dot_Configuration__pb2._CONFIGURATION +_CONFIGVALUE.fields_by_name['value'].message_type = _VALUE +_VALUE.fields_by_name['source'].message_type = _SOURCE +_VALUE.fields_by_name['item'].message_type = _ITEM +_VALUE.fields_by_name['compound_value'].message_type = _COMPOUNDVALUE +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['item']) +_VALUE.fields_by_name['item'].containing_oneof = _VALUE.oneofs_by_name['value'] +_VALUE.oneofs_by_name['value'].fields.append( + _VALUE.fields_by_name['compound_value']) +_VALUE.fields_by_name['compound_value'].containing_oneof = _VALUE.oneofs_by_name['value'] +_ITEM.fields_by_name['ref'].message_type = _REFERENCE +_ITEM.fields_by_name['str'].message_type = _STRING +_ITEM.fields_by_name['raw_str'].message_type = _RAWSTRING +_ITEM.fields_by_name['styled_str'].message_type = _STYLEDSTRING +_ITEM.fields_by_name['file'].message_type = _FILEREFERENCE +_ITEM.fields_by_name['id'].message_type = _ID +_ITEM.fields_by_name['prim'].message_type = _PRIMITIVE +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['ref']) +_ITEM.fields_by_name['ref'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['str']) +_ITEM.fields_by_name['str'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['raw_str']) +_ITEM.fields_by_name['raw_str'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['styled_str']) +_ITEM.fields_by_name['styled_str'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['file']) +_ITEM.fields_by_name['file'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['id']) +_ITEM.fields_by_name['id'].containing_oneof = _ITEM.oneofs_by_name['value'] +_ITEM.oneofs_by_name['value'].fields.append( + _ITEM.fields_by_name['prim']) +_ITEM.fields_by_name['prim'].containing_oneof = _ITEM.oneofs_by_name['value'] +_COMPOUNDVALUE.fields_by_name['attr'].message_type = _ATTRIBUTE +_COMPOUNDVALUE.fields_by_name['style'].message_type = _STYLE +_COMPOUNDVALUE.fields_by_name['styleable'].message_type = _STYLEABLE +_COMPOUNDVALUE.fields_by_name['array'].message_type = _ARRAY +_COMPOUNDVALUE.fields_by_name['plural'].message_type = _PLURAL +_COMPOUNDVALUE.fields_by_name['macro'].message_type = _MACROBODY +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['attr']) +_COMPOUNDVALUE.fields_by_name['attr'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['style']) +_COMPOUNDVALUE.fields_by_name['style'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['styleable']) +_COMPOUNDVALUE.fields_by_name['styleable'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['array']) +_COMPOUNDVALUE.fields_by_name['array'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['plural']) +_COMPOUNDVALUE.fields_by_name['plural'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_COMPOUNDVALUE.oneofs_by_name['value'].fields.append( + _COMPOUNDVALUE.fields_by_name['macro']) +_COMPOUNDVALUE.fields_by_name['macro'].containing_oneof = _COMPOUNDVALUE.oneofs_by_name['value'] +_REFERENCE.fields_by_name['type'].enum_type = _REFERENCE_TYPE +_REFERENCE.fields_by_name['is_dynamic'].message_type = _BOOLEAN +_REFERENCE_TYPE.containing_type = _REFERENCE +_STYLEDSTRING_SPAN.containing_type = _STYLEDSTRING +_STYLEDSTRING.fields_by_name['span'].message_type = _STYLEDSTRING_SPAN +_FILEREFERENCE.fields_by_name['type'].enum_type = _FILEREFERENCE_TYPE +_FILEREFERENCE_TYPE.containing_type = _FILEREFERENCE +_PRIMITIVE_NULLTYPE.containing_type = _PRIMITIVE +_PRIMITIVE_EMPTYTYPE.containing_type = _PRIMITIVE +_PRIMITIVE.fields_by_name['null_value'].message_type = _PRIMITIVE_NULLTYPE +_PRIMITIVE.fields_by_name['empty_value'].message_type = _PRIMITIVE_EMPTYTYPE +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['null_value']) +_PRIMITIVE.fields_by_name['null_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['empty_value']) +_PRIMITIVE.fields_by_name['empty_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['float_value']) +_PRIMITIVE.fields_by_name['float_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['dimension_value']) +_PRIMITIVE.fields_by_name['dimension_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['fraction_value']) +_PRIMITIVE.fields_by_name['fraction_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['int_decimal_value']) +_PRIMITIVE.fields_by_name['int_decimal_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['int_hexadecimal_value']) +_PRIMITIVE.fields_by_name['int_hexadecimal_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['boolean_value']) +_PRIMITIVE.fields_by_name['boolean_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['color_argb8_value']) +_PRIMITIVE.fields_by_name['color_argb8_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['color_rgb8_value']) +_PRIMITIVE.fields_by_name['color_rgb8_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['color_argb4_value']) +_PRIMITIVE.fields_by_name['color_argb4_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['color_rgb4_value']) +_PRIMITIVE.fields_by_name['color_rgb4_value'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['dimension_value_deprecated']) +_PRIMITIVE.fields_by_name['dimension_value_deprecated'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_PRIMITIVE.oneofs_by_name['oneof_value'].fields.append( + _PRIMITIVE.fields_by_name['fraction_value_deprecated']) +_PRIMITIVE.fields_by_name['fraction_value_deprecated'].containing_oneof = _PRIMITIVE.oneofs_by_name['oneof_value'] +_ATTRIBUTE_SYMBOL.fields_by_name['source'].message_type = _SOURCE +_ATTRIBUTE_SYMBOL.fields_by_name['name'].message_type = _REFERENCE +_ATTRIBUTE_SYMBOL.containing_type = _ATTRIBUTE +_ATTRIBUTE.fields_by_name['symbol'].message_type = _ATTRIBUTE_SYMBOL +_ATTRIBUTE_FORMATFLAGS.containing_type = _ATTRIBUTE +_STYLE_ENTRY.fields_by_name['source'].message_type = _SOURCE +_STYLE_ENTRY.fields_by_name['key'].message_type = _REFERENCE +_STYLE_ENTRY.fields_by_name['item'].message_type = _ITEM +_STYLE_ENTRY.containing_type = _STYLE +_STYLE.fields_by_name['parent'].message_type = _REFERENCE +_STYLE.fields_by_name['parent_source'].message_type = _SOURCE +_STYLE.fields_by_name['entry'].message_type = _STYLE_ENTRY +_STYLEABLE_ENTRY.fields_by_name['source'].message_type = _SOURCE +_STYLEABLE_ENTRY.fields_by_name['attr'].message_type = _REFERENCE +_STYLEABLE_ENTRY.containing_type = _STYLEABLE +_STYLEABLE.fields_by_name['entry'].message_type = _STYLEABLE_ENTRY +_ARRAY_ELEMENT.fields_by_name['source'].message_type = _SOURCE +_ARRAY_ELEMENT.fields_by_name['item'].message_type = _ITEM +_ARRAY_ELEMENT.containing_type = _ARRAY +_ARRAY.fields_by_name['element'].message_type = _ARRAY_ELEMENT +_PLURAL_ENTRY.fields_by_name['source'].message_type = _SOURCE +_PLURAL_ENTRY.fields_by_name['arity'].enum_type = _PLURAL_ARITY +_PLURAL_ENTRY.fields_by_name['item'].message_type = _ITEM +_PLURAL_ENTRY.containing_type = _PLURAL +_PLURAL.fields_by_name['entry'].message_type = _PLURAL_ENTRY +_PLURAL_ARITY.containing_type = _PLURAL +_XMLNODE.fields_by_name['element'].message_type = _XMLELEMENT +_XMLNODE.fields_by_name['source'].message_type = _SOURCEPOSITION +_XMLNODE.oneofs_by_name['node'].fields.append( + _XMLNODE.fields_by_name['element']) +_XMLNODE.fields_by_name['element'].containing_oneof = _XMLNODE.oneofs_by_name['node'] +_XMLNODE.oneofs_by_name['node'].fields.append( + _XMLNODE.fields_by_name['text']) +_XMLNODE.fields_by_name['text'].containing_oneof = _XMLNODE.oneofs_by_name['node'] +_XMLELEMENT.fields_by_name['namespace_declaration'].message_type = _XMLNAMESPACE +_XMLELEMENT.fields_by_name['attribute'].message_type = _XMLATTRIBUTE +_XMLELEMENT.fields_by_name['child'].message_type = _XMLNODE +_XMLNAMESPACE.fields_by_name['source'].message_type = _SOURCEPOSITION +_XMLATTRIBUTE.fields_by_name['source'].message_type = _SOURCEPOSITION +_XMLATTRIBUTE.fields_by_name['compiled_item'].message_type = _ITEM +_MACROBODY.fields_by_name['style_string'].message_type = _STYLESTRING +_MACROBODY.fields_by_name['untranslatable_sections'].message_type = _UNTRANSLATABLESECTION +_MACROBODY.fields_by_name['namespace_stack'].message_type = _NAMESPACEALIAS +_MACROBODY.fields_by_name['source'].message_type = _SOURCEPOSITION +_STYLESTRING_SPAN.containing_type = _STYLESTRING +_STYLESTRING.fields_by_name['spans'].message_type = _STYLESTRING_SPAN +DESCRIPTOR.message_types_by_name['StringPool'] = _STRINGPOOL +DESCRIPTOR.message_types_by_name['SourcePosition'] = _SOURCEPOSITION +DESCRIPTOR.message_types_by_name['Source'] = _SOURCE +DESCRIPTOR.message_types_by_name['ToolFingerprint'] = _TOOLFINGERPRINT +DESCRIPTOR.message_types_by_name['ResourceTable'] = _RESOURCETABLE +DESCRIPTOR.message_types_by_name['PackageId'] = _PACKAGEID +DESCRIPTOR.message_types_by_name['Package'] = _PACKAGE +DESCRIPTOR.message_types_by_name['TypeId'] = _TYPEID +DESCRIPTOR.message_types_by_name['Type'] = _TYPE +DESCRIPTOR.message_types_by_name['Visibility'] = _VISIBILITY +DESCRIPTOR.message_types_by_name['AllowNew'] = _ALLOWNEW +DESCRIPTOR.message_types_by_name['Overlayable'] = _OVERLAYABLE +DESCRIPTOR.message_types_by_name['OverlayableItem'] = _OVERLAYABLEITEM +DESCRIPTOR.message_types_by_name['StagedId'] = _STAGEDID +DESCRIPTOR.message_types_by_name['EntryId'] = _ENTRYID +DESCRIPTOR.message_types_by_name['Entry'] = _ENTRY +DESCRIPTOR.message_types_by_name['ConfigValue'] = _CONFIGVALUE +DESCRIPTOR.message_types_by_name['Value'] = _VALUE +DESCRIPTOR.message_types_by_name['Item'] = _ITEM +DESCRIPTOR.message_types_by_name['CompoundValue'] = _COMPOUNDVALUE +DESCRIPTOR.message_types_by_name['Boolean'] = _BOOLEAN +DESCRIPTOR.message_types_by_name['Reference'] = _REFERENCE +DESCRIPTOR.message_types_by_name['Id'] = _ID +DESCRIPTOR.message_types_by_name['String'] = _STRING +DESCRIPTOR.message_types_by_name['RawString'] = _RAWSTRING +DESCRIPTOR.message_types_by_name['StyledString'] = _STYLEDSTRING +DESCRIPTOR.message_types_by_name['FileReference'] = _FILEREFERENCE +DESCRIPTOR.message_types_by_name['Primitive'] = _PRIMITIVE +DESCRIPTOR.message_types_by_name['Attribute'] = _ATTRIBUTE +DESCRIPTOR.message_types_by_name['Style'] = _STYLE +DESCRIPTOR.message_types_by_name['Styleable'] = _STYLEABLE +DESCRIPTOR.message_types_by_name['Array'] = _ARRAY +DESCRIPTOR.message_types_by_name['Plural'] = _PLURAL +DESCRIPTOR.message_types_by_name['XmlNode'] = _XMLNODE +DESCRIPTOR.message_types_by_name['XmlElement'] = _XMLELEMENT +DESCRIPTOR.message_types_by_name['XmlNamespace'] = _XMLNAMESPACE +DESCRIPTOR.message_types_by_name['XmlAttribute'] = _XMLATTRIBUTE +DESCRIPTOR.message_types_by_name['MacroBody'] = _MACROBODY +DESCRIPTOR.message_types_by_name['NamespaceAlias'] = _NAMESPACEALIAS +DESCRIPTOR.message_types_by_name['StyleString'] = _STYLESTRING +DESCRIPTOR.message_types_by_name['UntranslatableSection'] = _UNTRANSLATABLESECTION +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +StringPool = _reflection.GeneratedProtocolMessageType('StringPool', (_message.Message,), { + 'DESCRIPTOR' : _STRINGPOOL, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StringPool) + }) +_sym_db.RegisterMessage(StringPool) + +SourcePosition = _reflection.GeneratedProtocolMessageType('SourcePosition', (_message.Message,), { + 'DESCRIPTOR' : _SOURCEPOSITION, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.SourcePosition) + }) +_sym_db.RegisterMessage(SourcePosition) + +Source = _reflection.GeneratedProtocolMessageType('Source', (_message.Message,), { + 'DESCRIPTOR' : _SOURCE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Source) + }) +_sym_db.RegisterMessage(Source) + +ToolFingerprint = _reflection.GeneratedProtocolMessageType('ToolFingerprint', (_message.Message,), { + 'DESCRIPTOR' : _TOOLFINGERPRINT, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.ToolFingerprint) + }) +_sym_db.RegisterMessage(ToolFingerprint) + +ResourceTable = _reflection.GeneratedProtocolMessageType('ResourceTable', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCETABLE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.ResourceTable) + }) +_sym_db.RegisterMessage(ResourceTable) + +PackageId = _reflection.GeneratedProtocolMessageType('PackageId', (_message.Message,), { + 'DESCRIPTOR' : _PACKAGEID, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.PackageId) + }) +_sym_db.RegisterMessage(PackageId) + +Package = _reflection.GeneratedProtocolMessageType('Package', (_message.Message,), { + 'DESCRIPTOR' : _PACKAGE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Package) + }) +_sym_db.RegisterMessage(Package) + +TypeId = _reflection.GeneratedProtocolMessageType('TypeId', (_message.Message,), { + 'DESCRIPTOR' : _TYPEID, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.TypeId) + }) +_sym_db.RegisterMessage(TypeId) + +Type = _reflection.GeneratedProtocolMessageType('Type', (_message.Message,), { + 'DESCRIPTOR' : _TYPE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Type) + }) +_sym_db.RegisterMessage(Type) + +Visibility = _reflection.GeneratedProtocolMessageType('Visibility', (_message.Message,), { + 'DESCRIPTOR' : _VISIBILITY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Visibility) + }) +_sym_db.RegisterMessage(Visibility) + +AllowNew = _reflection.GeneratedProtocolMessageType('AllowNew', (_message.Message,), { + 'DESCRIPTOR' : _ALLOWNEW, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.AllowNew) + }) +_sym_db.RegisterMessage(AllowNew) + +Overlayable = _reflection.GeneratedProtocolMessageType('Overlayable', (_message.Message,), { + 'DESCRIPTOR' : _OVERLAYABLE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Overlayable) + }) +_sym_db.RegisterMessage(Overlayable) + +OverlayableItem = _reflection.GeneratedProtocolMessageType('OverlayableItem', (_message.Message,), { + 'DESCRIPTOR' : _OVERLAYABLEITEM, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.OverlayableItem) + }) +_sym_db.RegisterMessage(OverlayableItem) + +StagedId = _reflection.GeneratedProtocolMessageType('StagedId', (_message.Message,), { + 'DESCRIPTOR' : _STAGEDID, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StagedId) + }) +_sym_db.RegisterMessage(StagedId) + +EntryId = _reflection.GeneratedProtocolMessageType('EntryId', (_message.Message,), { + 'DESCRIPTOR' : _ENTRYID, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.EntryId) + }) +_sym_db.RegisterMessage(EntryId) + +Entry = _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), { + 'DESCRIPTOR' : _ENTRY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Entry) + }) +_sym_db.RegisterMessage(Entry) + +ConfigValue = _reflection.GeneratedProtocolMessageType('ConfigValue', (_message.Message,), { + 'DESCRIPTOR' : _CONFIGVALUE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.ConfigValue) + }) +_sym_db.RegisterMessage(ConfigValue) + +Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), { + 'DESCRIPTOR' : _VALUE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Value) + }) +_sym_db.RegisterMessage(Value) + +Item = _reflection.GeneratedProtocolMessageType('Item', (_message.Message,), { + 'DESCRIPTOR' : _ITEM, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Item) + }) +_sym_db.RegisterMessage(Item) + +CompoundValue = _reflection.GeneratedProtocolMessageType('CompoundValue', (_message.Message,), { + 'DESCRIPTOR' : _COMPOUNDVALUE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.CompoundValue) + }) +_sym_db.RegisterMessage(CompoundValue) + +Boolean = _reflection.GeneratedProtocolMessageType('Boolean', (_message.Message,), { + 'DESCRIPTOR' : _BOOLEAN, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Boolean) + }) +_sym_db.RegisterMessage(Boolean) + +Reference = _reflection.GeneratedProtocolMessageType('Reference', (_message.Message,), { + 'DESCRIPTOR' : _REFERENCE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Reference) + }) +_sym_db.RegisterMessage(Reference) + +Id = _reflection.GeneratedProtocolMessageType('Id', (_message.Message,), { + 'DESCRIPTOR' : _ID, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Id) + }) +_sym_db.RegisterMessage(Id) + +String = _reflection.GeneratedProtocolMessageType('String', (_message.Message,), { + 'DESCRIPTOR' : _STRING, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.String) + }) +_sym_db.RegisterMessage(String) + +RawString = _reflection.GeneratedProtocolMessageType('RawString', (_message.Message,), { + 'DESCRIPTOR' : _RAWSTRING, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.RawString) + }) +_sym_db.RegisterMessage(RawString) + +StyledString = _reflection.GeneratedProtocolMessageType('StyledString', (_message.Message,), { + + 'Span' : _reflection.GeneratedProtocolMessageType('Span', (_message.Message,), { + 'DESCRIPTOR' : _STYLEDSTRING_SPAN, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StyledString.Span) + }) + , + 'DESCRIPTOR' : _STYLEDSTRING, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StyledString) + }) +_sym_db.RegisterMessage(StyledString) +_sym_db.RegisterMessage(StyledString.Span) + +FileReference = _reflection.GeneratedProtocolMessageType('FileReference', (_message.Message,), { + 'DESCRIPTOR' : _FILEREFERENCE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.FileReference) + }) +_sym_db.RegisterMessage(FileReference) + +Primitive = _reflection.GeneratedProtocolMessageType('Primitive', (_message.Message,), { + + 'NullType' : _reflection.GeneratedProtocolMessageType('NullType', (_message.Message,), { + 'DESCRIPTOR' : _PRIMITIVE_NULLTYPE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Primitive.NullType) + }) + , + + 'EmptyType' : _reflection.GeneratedProtocolMessageType('EmptyType', (_message.Message,), { + 'DESCRIPTOR' : _PRIMITIVE_EMPTYTYPE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Primitive.EmptyType) + }) + , + 'DESCRIPTOR' : _PRIMITIVE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Primitive) + }) +_sym_db.RegisterMessage(Primitive) +_sym_db.RegisterMessage(Primitive.NullType) +_sym_db.RegisterMessage(Primitive.EmptyType) + +Attribute = _reflection.GeneratedProtocolMessageType('Attribute', (_message.Message,), { + + 'Symbol' : _reflection.GeneratedProtocolMessageType('Symbol', (_message.Message,), { + 'DESCRIPTOR' : _ATTRIBUTE_SYMBOL, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Attribute.Symbol) + }) + , + 'DESCRIPTOR' : _ATTRIBUTE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Attribute) + }) +_sym_db.RegisterMessage(Attribute) +_sym_db.RegisterMessage(Attribute.Symbol) + +Style = _reflection.GeneratedProtocolMessageType('Style', (_message.Message,), { + + 'Entry' : _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), { + 'DESCRIPTOR' : _STYLE_ENTRY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Style.Entry) + }) + , + 'DESCRIPTOR' : _STYLE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Style) + }) +_sym_db.RegisterMessage(Style) +_sym_db.RegisterMessage(Style.Entry) + +Styleable = _reflection.GeneratedProtocolMessageType('Styleable', (_message.Message,), { + + 'Entry' : _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), { + 'DESCRIPTOR' : _STYLEABLE_ENTRY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Styleable.Entry) + }) + , + 'DESCRIPTOR' : _STYLEABLE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Styleable) + }) +_sym_db.RegisterMessage(Styleable) +_sym_db.RegisterMessage(Styleable.Entry) + +Array = _reflection.GeneratedProtocolMessageType('Array', (_message.Message,), { + + 'Element' : _reflection.GeneratedProtocolMessageType('Element', (_message.Message,), { + 'DESCRIPTOR' : _ARRAY_ELEMENT, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Array.Element) + }) + , + 'DESCRIPTOR' : _ARRAY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Array) + }) +_sym_db.RegisterMessage(Array) +_sym_db.RegisterMessage(Array.Element) + +Plural = _reflection.GeneratedProtocolMessageType('Plural', (_message.Message,), { + + 'Entry' : _reflection.GeneratedProtocolMessageType('Entry', (_message.Message,), { + 'DESCRIPTOR' : _PLURAL_ENTRY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Plural.Entry) + }) + , + 'DESCRIPTOR' : _PLURAL, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.Plural) + }) +_sym_db.RegisterMessage(Plural) +_sym_db.RegisterMessage(Plural.Entry) + +XmlNode = _reflection.GeneratedProtocolMessageType('XmlNode', (_message.Message,), { + 'DESCRIPTOR' : _XMLNODE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.XmlNode) + }) +_sym_db.RegisterMessage(XmlNode) + +XmlElement = _reflection.GeneratedProtocolMessageType('XmlElement', (_message.Message,), { + 'DESCRIPTOR' : _XMLELEMENT, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.XmlElement) + }) +_sym_db.RegisterMessage(XmlElement) + +XmlNamespace = _reflection.GeneratedProtocolMessageType('XmlNamespace', (_message.Message,), { + 'DESCRIPTOR' : _XMLNAMESPACE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.XmlNamespace) + }) +_sym_db.RegisterMessage(XmlNamespace) + +XmlAttribute = _reflection.GeneratedProtocolMessageType('XmlAttribute', (_message.Message,), { + 'DESCRIPTOR' : _XMLATTRIBUTE, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.XmlAttribute) + }) +_sym_db.RegisterMessage(XmlAttribute) + +MacroBody = _reflection.GeneratedProtocolMessageType('MacroBody', (_message.Message,), { + 'DESCRIPTOR' : _MACROBODY, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.MacroBody) + }) +_sym_db.RegisterMessage(MacroBody) + +NamespaceAlias = _reflection.GeneratedProtocolMessageType('NamespaceAlias', (_message.Message,), { + 'DESCRIPTOR' : _NAMESPACEALIAS, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.NamespaceAlias) + }) +_sym_db.RegisterMessage(NamespaceAlias) + +StyleString = _reflection.GeneratedProtocolMessageType('StyleString', (_message.Message,), { + + 'Span' : _reflection.GeneratedProtocolMessageType('Span', (_message.Message,), { + 'DESCRIPTOR' : _STYLESTRING_SPAN, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StyleString.Span) + }) + , + 'DESCRIPTOR' : _STYLESTRING, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.StyleString) + }) +_sym_db.RegisterMessage(StyleString) +_sym_db.RegisterMessage(StyleString.Span) + +UntranslatableSection = _reflection.GeneratedProtocolMessageType('UntranslatableSection', (_message.Message,), { + 'DESCRIPTOR' : _UNTRANSLATABLESECTION, + '__module__' : 'frameworks.base.tools.aapt2.Resources_pb2' + # @@protoc_insertion_point(class_scope:aapt.pb.UntranslatableSection) + }) +_sym_db.RegisterMessage(UntranslatableSection) + + +DESCRIPTOR._options = None +_PRIMITIVE.fields_by_name['dimension_value_deprecated']._options = None +_PRIMITIVE.fields_by_name['fraction_value_deprecated']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/direct/src/dist/_proto/__init__.py b/direct/src/dist/_proto/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/direct/src/dist/_proto/config_pb2.py b/direct/src/dist/_proto/config_pb2.py new file mode 100644 index 0000000000..dde4c7165c --- /dev/null +++ b/direct/src/dist/_proto/config_pb2.py @@ -0,0 +1,1045 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: config.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='config.proto', + package='android.bundle', + syntax='proto3', + serialized_options=b'\n\022com.android.bundle', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x0c\x63onfig.proto\x12\x0e\x61ndroid.bundle\"\x91\x04\n\x0c\x42undleConfig\x12.\n\nbundletool\x18\x01 \x01(\x0b\x32\x1a.android.bundle.Bundletool\x12\x34\n\roptimizations\x18\x02 \x01(\x0b\x32\x1d.android.bundle.Optimizations\x12\x30\n\x0b\x63ompression\x18\x03 \x01(\x0b\x32\x1b.android.bundle.Compression\x12\x39\n\x10master_resources\x18\x04 \x01(\x0b\x32\x1f.android.bundle.MasterResources\x12/\n\x0b\x61pex_config\x18\x05 \x01(\x0b\x32\x1a.android.bundle.ApexConfig\x12O\n\x1cunsigned_embedded_apk_config\x18\x06 \x03(\x0b\x32).android.bundle.UnsignedEmbeddedApkConfig\x12@\n\x14\x61sset_modules_config\x18\x07 \x01(\x0b\x32\".android.bundle.AssetModulesConfig\x12\x35\n\x04type\x18\x08 \x01(\x0e\x32\'.android.bundle.BundleConfig.BundleType\"3\n\nBundleType\x12\x0b\n\x07REGULAR\x10\x00\x12\x08\n\x04\x41PEX\x10\x01\x12\x0e\n\nASSET_ONLY\x10\x02\"#\n\nBundletool\x12\x0f\n\x07version\x18\x02 \x01(\tJ\x04\x08\x01\x10\x02\"\xe0\x01\n\x0b\x43ompression\x12\x19\n\x11uncompressed_glob\x18\x01 \x03(\t\x12i\n-install_time_asset_module_default_compression\x18\x02 \x01(\x0e\x32\x32.android.bundle.Compression.AssetModuleCompression\"K\n\x16\x41ssetModuleCompression\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x10\n\x0cUNCOMPRESSED\x10\x01\x12\x0e\n\nCOMPRESSED\x10\x02\"?\n\x0fMasterResources\x12\x14\n\x0cresource_ids\x18\x01 \x03(\x05\x12\x16\n\x0eresource_names\x18\x02 \x03(\t\"\x8f\x03\n\rOptimizations\x12\x33\n\rsplits_config\x18\x01 \x01(\x0b\x32\x1c.android.bundle.SplitsConfig\x12N\n\x1buncompress_native_libraries\x18\x02 \x01(\x0b\x32).android.bundle.UncompressNativeLibraries\x12@\n\x14uncompress_dex_files\x18\x03 \x01(\x0b\x32\".android.bundle.UncompressDexFiles\x12;\n\x11standalone_config\x18\x04 \x01(\x0b\x32 .android.bundle.StandaloneConfig\x12\x45\n\x16resource_optimizations\x18\x05 \x01(\x0b\x32%.android.bundle.ResourceOptimizations\x12\x33\n\rstore_archive\x18\x06 \x01(\x0b\x32\x1c.android.bundle.StoreArchive\"\x97\x01\n\x15ResourceOptimizations\x12M\n\x0fsparse_encoding\x18\x01 \x01(\x0e\x32\x34.android.bundle.ResourceOptimizations.SparseEncoding\"/\n\x0eSparseEncoding\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0c\n\x08\x45NFORCED\x10\x01\",\n\x19UncompressNativeLibraries\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"%\n\x12UncompressDexFiles\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"\x1f\n\x0cStoreArchive\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"G\n\x0cSplitsConfig\x12\x37\n\x0fsplit_dimension\x18\x01 \x03(\x0b\x32\x1e.android.bundle.SplitDimension\"\xfa\x01\n\x10StandaloneConfig\x12\x37\n\x0fsplit_dimension\x18\x01 \x03(\x0b\x32\x1e.android.bundle.SplitDimension\x12\x1e\n\x16strip_64_bit_libraries\x18\x02 \x01(\x08\x12Q\n\x14\x64\x65x_merging_strategy\x18\x03 \x01(\x0e\x32\x33.android.bundle.StandaloneConfig.DexMergingStrategy\":\n\x12\x44\x65xMergingStrategy\x12\x13\n\x0fMERGE_IF_NEEDED\x10\x00\x12\x0f\n\x0bNEVER_MERGE\x10\x01\"\x8c\x02\n\x0eSplitDimension\x12\x33\n\x05value\x18\x01 \x01(\x0e\x32$.android.bundle.SplitDimension.Value\x12\x0e\n\x06negate\x18\x02 \x01(\x08\x12\x39\n\x10suffix_stripping\x18\x03 \x01(\x0b\x32\x1f.android.bundle.SuffixStripping\"z\n\x05Value\x12\x15\n\x11UNSPECIFIED_VALUE\x10\x00\x12\x07\n\x03\x41\x42I\x10\x01\x12\x12\n\x0eSCREEN_DENSITY\x10\x02\x12\x0c\n\x08LANGUAGE\x10\x03\x12\x1e\n\x1aTEXTURE_COMPRESSION_FORMAT\x10\x04\x12\x0f\n\x0b\x44\x45VICE_TIER\x10\x06\":\n\x0fSuffixStripping\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\x12\x16\n\x0e\x64\x65\x66\x61ult_suffix\x18\x02 \x01(\t\"U\n\nApexConfig\x12G\n\x18\x61pex_embedded_apk_config\x18\x01 \x03(\x0b\x32%.android.bundle.ApexEmbeddedApkConfig\";\n\x15\x41pexEmbeddedApkConfig\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\")\n\x19UnsignedEmbeddedApkConfig\x12\x0c\n\x04path\x18\x01 \x01(\t\"D\n\x12\x41ssetModulesConfig\x12\x13\n\x0b\x61pp_version\x18\x01 \x03(\x03\x12\x19\n\x11\x61sset_version_tag\x18\x02 \x01(\tB\x14\n\x12\x63om.android.bundleb\x06proto3' +) + + + +_BUNDLECONFIG_BUNDLETYPE = _descriptor.EnumDescriptor( + name='BundleType', + full_name='android.bundle.BundleConfig.BundleType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='REGULAR', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='APEX', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ASSET_ONLY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=511, + serialized_end=562, +) +_sym_db.RegisterEnumDescriptor(_BUNDLECONFIG_BUNDLETYPE) + +_COMPRESSION_ASSETMODULECOMPRESSION = _descriptor.EnumDescriptor( + name='AssetModuleCompression', + full_name='android.bundle.Compression.AssetModuleCompression', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='UNCOMPRESSED', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='COMPRESSED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=751, + serialized_end=826, +) +_sym_db.RegisterEnumDescriptor(_COMPRESSION_ASSETMODULECOMPRESSION) + +_RESOURCEOPTIMIZATIONS_SPARSEENCODING = _descriptor.EnumDescriptor( + name='SparseEncoding', + full_name='android.bundle.ResourceOptimizations.SparseEncoding', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ENFORCED', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1400, + serialized_end=1447, +) +_sym_db.RegisterEnumDescriptor(_RESOURCEOPTIMIZATIONS_SPARSEENCODING) + +_STANDALONECONFIG_DEXMERGINGSTRATEGY = _descriptor.EnumDescriptor( + name='DexMergingStrategy', + full_name='android.bundle.StandaloneConfig.DexMergingStrategy', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='MERGE_IF_NEEDED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NEVER_MERGE', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1833, + serialized_end=1891, +) +_sym_db.RegisterEnumDescriptor(_STANDALONECONFIG_DEXMERGINGSTRATEGY) + +_SPLITDIMENSION_VALUE = _descriptor.EnumDescriptor( + name='Value', + full_name='android.bundle.SplitDimension.Value', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED_VALUE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ABI', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='SCREEN_DENSITY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LANGUAGE', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TEXTURE_COMPRESSION_FORMAT', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEVICE_TIER', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2040, + serialized_end=2162, +) +_sym_db.RegisterEnumDescriptor(_SPLITDIMENSION_VALUE) + + +_BUNDLECONFIG = _descriptor.Descriptor( + name='BundleConfig', + full_name='android.bundle.BundleConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='bundletool', full_name='android.bundle.BundleConfig.bundletool', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optimizations', full_name='android.bundle.BundleConfig.optimizations', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='compression', full_name='android.bundle.BundleConfig.compression', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='master_resources', full_name='android.bundle.BundleConfig.master_resources', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='apex_config', full_name='android.bundle.BundleConfig.apex_config', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unsigned_embedded_apk_config', full_name='android.bundle.BundleConfig.unsigned_embedded_apk_config', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_modules_config', full_name='android.bundle.BundleConfig.asset_modules_config', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type', full_name='android.bundle.BundleConfig.type', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _BUNDLECONFIG_BUNDLETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=33, + serialized_end=562, +) + + +_BUNDLETOOL = _descriptor.Descriptor( + name='Bundletool', + full_name='android.bundle.Bundletool', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='version', full_name='android.bundle.Bundletool.version', index=0, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=564, + serialized_end=599, +) + + +_COMPRESSION = _descriptor.Descriptor( + name='Compression', + full_name='android.bundle.Compression', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='uncompressed_glob', full_name='android.bundle.Compression.uncompressed_glob', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='install_time_asset_module_default_compression', full_name='android.bundle.Compression.install_time_asset_module_default_compression', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _COMPRESSION_ASSETMODULECOMPRESSION, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=602, + serialized_end=826, +) + + +_MASTERRESOURCES = _descriptor.Descriptor( + name='MasterResources', + full_name='android.bundle.MasterResources', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='resource_ids', full_name='android.bundle.MasterResources.resource_ids', index=0, + number=1, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_names', full_name='android.bundle.MasterResources.resource_names', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=828, + serialized_end=891, +) + + +_OPTIMIZATIONS = _descriptor.Descriptor( + name='Optimizations', + full_name='android.bundle.Optimizations', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='splits_config', full_name='android.bundle.Optimizations.splits_config', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='uncompress_native_libraries', full_name='android.bundle.Optimizations.uncompress_native_libraries', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='uncompress_dex_files', full_name='android.bundle.Optimizations.uncompress_dex_files', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='standalone_config', full_name='android.bundle.Optimizations.standalone_config', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resource_optimizations', full_name='android.bundle.Optimizations.resource_optimizations', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='store_archive', full_name='android.bundle.Optimizations.store_archive', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=894, + serialized_end=1293, +) + + +_RESOURCEOPTIMIZATIONS = _descriptor.Descriptor( + name='ResourceOptimizations', + full_name='android.bundle.ResourceOptimizations', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='sparse_encoding', full_name='android.bundle.ResourceOptimizations.sparse_encoding', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RESOURCEOPTIMIZATIONS_SPARSEENCODING, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1296, + serialized_end=1447, +) + + +_UNCOMPRESSNATIVELIBRARIES = _descriptor.Descriptor( + name='UncompressNativeLibraries', + full_name='android.bundle.UncompressNativeLibraries', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='enabled', full_name='android.bundle.UncompressNativeLibraries.enabled', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1449, + serialized_end=1493, +) + + +_UNCOMPRESSDEXFILES = _descriptor.Descriptor( + name='UncompressDexFiles', + full_name='android.bundle.UncompressDexFiles', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='enabled', full_name='android.bundle.UncompressDexFiles.enabled', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1495, + serialized_end=1532, +) + + +_STOREARCHIVE = _descriptor.Descriptor( + name='StoreArchive', + full_name='android.bundle.StoreArchive', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='enabled', full_name='android.bundle.StoreArchive.enabled', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1534, + serialized_end=1565, +) + + +_SPLITSCONFIG = _descriptor.Descriptor( + name='SplitsConfig', + full_name='android.bundle.SplitsConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='split_dimension', full_name='android.bundle.SplitsConfig.split_dimension', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1567, + serialized_end=1638, +) + + +_STANDALONECONFIG = _descriptor.Descriptor( + name='StandaloneConfig', + full_name='android.bundle.StandaloneConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='split_dimension', full_name='android.bundle.StandaloneConfig.split_dimension', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='strip_64_bit_libraries', full_name='android.bundle.StandaloneConfig.strip_64_bit_libraries', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='dex_merging_strategy', full_name='android.bundle.StandaloneConfig.dex_merging_strategy', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _STANDALONECONFIG_DEXMERGINGSTRATEGY, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1641, + serialized_end=1891, +) + + +_SPLITDIMENSION = _descriptor.Descriptor( + name='SplitDimension', + full_name='android.bundle.SplitDimension', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.SplitDimension.value', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='negate', full_name='android.bundle.SplitDimension.negate', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='suffix_stripping', full_name='android.bundle.SplitDimension.suffix_stripping', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SPLITDIMENSION_VALUE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1894, + serialized_end=2162, +) + + +_SUFFIXSTRIPPING = _descriptor.Descriptor( + name='SuffixStripping', + full_name='android.bundle.SuffixStripping', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='enabled', full_name='android.bundle.SuffixStripping.enabled', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='default_suffix', full_name='android.bundle.SuffixStripping.default_suffix', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2164, + serialized_end=2222, +) + + +_APEXCONFIG = _descriptor.Descriptor( + name='ApexConfig', + full_name='android.bundle.ApexConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='apex_embedded_apk_config', full_name='android.bundle.ApexConfig.apex_embedded_apk_config', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2224, + serialized_end=2309, +) + + +_APEXEMBEDDEDAPKCONFIG = _descriptor.Descriptor( + name='ApexEmbeddedApkConfig', + full_name='android.bundle.ApexEmbeddedApkConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='package_name', full_name='android.bundle.ApexEmbeddedApkConfig.package_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='path', full_name='android.bundle.ApexEmbeddedApkConfig.path', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2311, + serialized_end=2370, +) + + +_UNSIGNEDEMBEDDEDAPKCONFIG = _descriptor.Descriptor( + name='UnsignedEmbeddedApkConfig', + full_name='android.bundle.UnsignedEmbeddedApkConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path', full_name='android.bundle.UnsignedEmbeddedApkConfig.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2372, + serialized_end=2413, +) + + +_ASSETMODULESCONFIG = _descriptor.Descriptor( + name='AssetModulesConfig', + full_name='android.bundle.AssetModulesConfig', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='app_version', full_name='android.bundle.AssetModulesConfig.app_version', index=0, + number=1, type=3, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='asset_version_tag', full_name='android.bundle.AssetModulesConfig.asset_version_tag', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2415, + serialized_end=2483, +) + +_BUNDLECONFIG.fields_by_name['bundletool'].message_type = _BUNDLETOOL +_BUNDLECONFIG.fields_by_name['optimizations'].message_type = _OPTIMIZATIONS +_BUNDLECONFIG.fields_by_name['compression'].message_type = _COMPRESSION +_BUNDLECONFIG.fields_by_name['master_resources'].message_type = _MASTERRESOURCES +_BUNDLECONFIG.fields_by_name['apex_config'].message_type = _APEXCONFIG +_BUNDLECONFIG.fields_by_name['unsigned_embedded_apk_config'].message_type = _UNSIGNEDEMBEDDEDAPKCONFIG +_BUNDLECONFIG.fields_by_name['asset_modules_config'].message_type = _ASSETMODULESCONFIG +_BUNDLECONFIG.fields_by_name['type'].enum_type = _BUNDLECONFIG_BUNDLETYPE +_BUNDLECONFIG_BUNDLETYPE.containing_type = _BUNDLECONFIG +_COMPRESSION.fields_by_name['install_time_asset_module_default_compression'].enum_type = _COMPRESSION_ASSETMODULECOMPRESSION +_COMPRESSION_ASSETMODULECOMPRESSION.containing_type = _COMPRESSION +_OPTIMIZATIONS.fields_by_name['splits_config'].message_type = _SPLITSCONFIG +_OPTIMIZATIONS.fields_by_name['uncompress_native_libraries'].message_type = _UNCOMPRESSNATIVELIBRARIES +_OPTIMIZATIONS.fields_by_name['uncompress_dex_files'].message_type = _UNCOMPRESSDEXFILES +_OPTIMIZATIONS.fields_by_name['standalone_config'].message_type = _STANDALONECONFIG +_OPTIMIZATIONS.fields_by_name['resource_optimizations'].message_type = _RESOURCEOPTIMIZATIONS +_OPTIMIZATIONS.fields_by_name['store_archive'].message_type = _STOREARCHIVE +_RESOURCEOPTIMIZATIONS.fields_by_name['sparse_encoding'].enum_type = _RESOURCEOPTIMIZATIONS_SPARSEENCODING +_RESOURCEOPTIMIZATIONS_SPARSEENCODING.containing_type = _RESOURCEOPTIMIZATIONS +_SPLITSCONFIG.fields_by_name['split_dimension'].message_type = _SPLITDIMENSION +_STANDALONECONFIG.fields_by_name['split_dimension'].message_type = _SPLITDIMENSION +_STANDALONECONFIG.fields_by_name['dex_merging_strategy'].enum_type = _STANDALONECONFIG_DEXMERGINGSTRATEGY +_STANDALONECONFIG_DEXMERGINGSTRATEGY.containing_type = _STANDALONECONFIG +_SPLITDIMENSION.fields_by_name['value'].enum_type = _SPLITDIMENSION_VALUE +_SPLITDIMENSION.fields_by_name['suffix_stripping'].message_type = _SUFFIXSTRIPPING +_SPLITDIMENSION_VALUE.containing_type = _SPLITDIMENSION +_APEXCONFIG.fields_by_name['apex_embedded_apk_config'].message_type = _APEXEMBEDDEDAPKCONFIG +DESCRIPTOR.message_types_by_name['BundleConfig'] = _BUNDLECONFIG +DESCRIPTOR.message_types_by_name['Bundletool'] = _BUNDLETOOL +DESCRIPTOR.message_types_by_name['Compression'] = _COMPRESSION +DESCRIPTOR.message_types_by_name['MasterResources'] = _MASTERRESOURCES +DESCRIPTOR.message_types_by_name['Optimizations'] = _OPTIMIZATIONS +DESCRIPTOR.message_types_by_name['ResourceOptimizations'] = _RESOURCEOPTIMIZATIONS +DESCRIPTOR.message_types_by_name['UncompressNativeLibraries'] = _UNCOMPRESSNATIVELIBRARIES +DESCRIPTOR.message_types_by_name['UncompressDexFiles'] = _UNCOMPRESSDEXFILES +DESCRIPTOR.message_types_by_name['StoreArchive'] = _STOREARCHIVE +DESCRIPTOR.message_types_by_name['SplitsConfig'] = _SPLITSCONFIG +DESCRIPTOR.message_types_by_name['StandaloneConfig'] = _STANDALONECONFIG +DESCRIPTOR.message_types_by_name['SplitDimension'] = _SPLITDIMENSION +DESCRIPTOR.message_types_by_name['SuffixStripping'] = _SUFFIXSTRIPPING +DESCRIPTOR.message_types_by_name['ApexConfig'] = _APEXCONFIG +DESCRIPTOR.message_types_by_name['ApexEmbeddedApkConfig'] = _APEXEMBEDDEDAPKCONFIG +DESCRIPTOR.message_types_by_name['UnsignedEmbeddedApkConfig'] = _UNSIGNEDEMBEDDEDAPKCONFIG +DESCRIPTOR.message_types_by_name['AssetModulesConfig'] = _ASSETMODULESCONFIG +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +BundleConfig = _reflection.GeneratedProtocolMessageType('BundleConfig', (_message.Message,), { + 'DESCRIPTOR' : _BUNDLECONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.BundleConfig) + }) +_sym_db.RegisterMessage(BundleConfig) + +Bundletool = _reflection.GeneratedProtocolMessageType('Bundletool', (_message.Message,), { + 'DESCRIPTOR' : _BUNDLETOOL, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Bundletool) + }) +_sym_db.RegisterMessage(Bundletool) + +Compression = _reflection.GeneratedProtocolMessageType('Compression', (_message.Message,), { + 'DESCRIPTOR' : _COMPRESSION, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Compression) + }) +_sym_db.RegisterMessage(Compression) + +MasterResources = _reflection.GeneratedProtocolMessageType('MasterResources', (_message.Message,), { + 'DESCRIPTOR' : _MASTERRESOURCES, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.MasterResources) + }) +_sym_db.RegisterMessage(MasterResources) + +Optimizations = _reflection.GeneratedProtocolMessageType('Optimizations', (_message.Message,), { + 'DESCRIPTOR' : _OPTIMIZATIONS, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Optimizations) + }) +_sym_db.RegisterMessage(Optimizations) + +ResourceOptimizations = _reflection.GeneratedProtocolMessageType('ResourceOptimizations', (_message.Message,), { + 'DESCRIPTOR' : _RESOURCEOPTIMIZATIONS, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ResourceOptimizations) + }) +_sym_db.RegisterMessage(ResourceOptimizations) + +UncompressNativeLibraries = _reflection.GeneratedProtocolMessageType('UncompressNativeLibraries', (_message.Message,), { + 'DESCRIPTOR' : _UNCOMPRESSNATIVELIBRARIES, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.UncompressNativeLibraries) + }) +_sym_db.RegisterMessage(UncompressNativeLibraries) + +UncompressDexFiles = _reflection.GeneratedProtocolMessageType('UncompressDexFiles', (_message.Message,), { + 'DESCRIPTOR' : _UNCOMPRESSDEXFILES, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.UncompressDexFiles) + }) +_sym_db.RegisterMessage(UncompressDexFiles) + +StoreArchive = _reflection.GeneratedProtocolMessageType('StoreArchive', (_message.Message,), { + 'DESCRIPTOR' : _STOREARCHIVE, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.StoreArchive) + }) +_sym_db.RegisterMessage(StoreArchive) + +SplitsConfig = _reflection.GeneratedProtocolMessageType('SplitsConfig', (_message.Message,), { + 'DESCRIPTOR' : _SPLITSCONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SplitsConfig) + }) +_sym_db.RegisterMessage(SplitsConfig) + +StandaloneConfig = _reflection.GeneratedProtocolMessageType('StandaloneConfig', (_message.Message,), { + 'DESCRIPTOR' : _STANDALONECONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.StandaloneConfig) + }) +_sym_db.RegisterMessage(StandaloneConfig) + +SplitDimension = _reflection.GeneratedProtocolMessageType('SplitDimension', (_message.Message,), { + 'DESCRIPTOR' : _SPLITDIMENSION, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SplitDimension) + }) +_sym_db.RegisterMessage(SplitDimension) + +SuffixStripping = _reflection.GeneratedProtocolMessageType('SuffixStripping', (_message.Message,), { + 'DESCRIPTOR' : _SUFFIXSTRIPPING, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SuffixStripping) + }) +_sym_db.RegisterMessage(SuffixStripping) + +ApexConfig = _reflection.GeneratedProtocolMessageType('ApexConfig', (_message.Message,), { + 'DESCRIPTOR' : _APEXCONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ApexConfig) + }) +_sym_db.RegisterMessage(ApexConfig) + +ApexEmbeddedApkConfig = _reflection.GeneratedProtocolMessageType('ApexEmbeddedApkConfig', (_message.Message,), { + 'DESCRIPTOR' : _APEXEMBEDDEDAPKCONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ApexEmbeddedApkConfig) + }) +_sym_db.RegisterMessage(ApexEmbeddedApkConfig) + +UnsignedEmbeddedApkConfig = _reflection.GeneratedProtocolMessageType('UnsignedEmbeddedApkConfig', (_message.Message,), { + 'DESCRIPTOR' : _UNSIGNEDEMBEDDEDAPKCONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.UnsignedEmbeddedApkConfig) + }) +_sym_db.RegisterMessage(UnsignedEmbeddedApkConfig) + +AssetModulesConfig = _reflection.GeneratedProtocolMessageType('AssetModulesConfig', (_message.Message,), { + 'DESCRIPTOR' : _ASSETMODULESCONFIG, + '__module__' : 'config_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.AssetModulesConfig) + }) +_sym_db.RegisterMessage(AssetModulesConfig) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/direct/src/dist/_proto/files_pb2.py b/direct/src/dist/_proto/files_pb2.py new file mode 100644 index 0000000000..f4ac2a9275 --- /dev/null +++ b/direct/src/dist/_proto/files_pb2.py @@ -0,0 +1,307 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: files.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from . import targeting_pb2 as targeting__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='files.proto', + package='android.bundle', + syntax='proto3', + serialized_options=b'\n\022com.android.bundle', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x0b\x66iles.proto\x12\x0e\x61ndroid.bundle\x1a\x0ftargeting.proto\"D\n\x06\x41ssets\x12:\n\tdirectory\x18\x01 \x03(\x0b\x32\'.android.bundle.TargetedAssetsDirectory\"M\n\x0fNativeLibraries\x12:\n\tdirectory\x18\x01 \x03(\x0b\x32\'.android.bundle.TargetedNativeDirectory\"D\n\nApexImages\x12\x30\n\x05image\x18\x01 \x03(\x0b\x32!.android.bundle.TargetedApexImageJ\x04\x08\x02\x10\x03\"d\n\x17TargetedAssetsDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\x12;\n\ttargeting\x18\x02 \x01(\x0b\x32(.android.bundle.AssetsDirectoryTargeting\"d\n\x17TargetedNativeDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\x12;\n\ttargeting\x18\x02 \x01(\x0b\x32(.android.bundle.NativeDirectoryTargeting\"q\n\x11TargetedApexImage\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x17\n\x0f\x62uild_info_path\x18\x03 \x01(\t\x12\x35\n\ttargeting\x18\x02 \x01(\x0b\x32\".android.bundle.ApexImageTargetingB\x14\n\x12\x63om.android.bundleb\x06proto3' + , + dependencies=[targeting__pb2.DESCRIPTOR,]) + + + + +_ASSETS = _descriptor.Descriptor( + name='Assets', + full_name='android.bundle.Assets', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='directory', full_name='android.bundle.Assets.directory', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=48, + serialized_end=116, +) + + +_NATIVELIBRARIES = _descriptor.Descriptor( + name='NativeLibraries', + full_name='android.bundle.NativeLibraries', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='directory', full_name='android.bundle.NativeLibraries.directory', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=118, + serialized_end=195, +) + + +_APEXIMAGES = _descriptor.Descriptor( + name='ApexImages', + full_name='android.bundle.ApexImages', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='image', full_name='android.bundle.ApexImages.image', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=197, + serialized_end=265, +) + + +_TARGETEDASSETSDIRECTORY = _descriptor.Descriptor( + name='TargetedAssetsDirectory', + full_name='android.bundle.TargetedAssetsDirectory', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path', full_name='android.bundle.TargetedAssetsDirectory.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting', full_name='android.bundle.TargetedAssetsDirectory.targeting', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=267, + serialized_end=367, +) + + +_TARGETEDNATIVEDIRECTORY = _descriptor.Descriptor( + name='TargetedNativeDirectory', + full_name='android.bundle.TargetedNativeDirectory', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path', full_name='android.bundle.TargetedNativeDirectory.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting', full_name='android.bundle.TargetedNativeDirectory.targeting', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=369, + serialized_end=469, +) + + +_TARGETEDAPEXIMAGE = _descriptor.Descriptor( + name='TargetedApexImage', + full_name='android.bundle.TargetedApexImage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='path', full_name='android.bundle.TargetedApexImage.path', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='build_info_path', full_name='android.bundle.TargetedApexImage.build_info_path', index=1, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='targeting', full_name='android.bundle.TargetedApexImage.targeting', index=2, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=471, + serialized_end=584, +) + +_ASSETS.fields_by_name['directory'].message_type = _TARGETEDASSETSDIRECTORY +_NATIVELIBRARIES.fields_by_name['directory'].message_type = _TARGETEDNATIVEDIRECTORY +_APEXIMAGES.fields_by_name['image'].message_type = _TARGETEDAPEXIMAGE +_TARGETEDASSETSDIRECTORY.fields_by_name['targeting'].message_type = targeting__pb2._ASSETSDIRECTORYTARGETING +_TARGETEDNATIVEDIRECTORY.fields_by_name['targeting'].message_type = targeting__pb2._NATIVEDIRECTORYTARGETING +_TARGETEDAPEXIMAGE.fields_by_name['targeting'].message_type = targeting__pb2._APEXIMAGETARGETING +DESCRIPTOR.message_types_by_name['Assets'] = _ASSETS +DESCRIPTOR.message_types_by_name['NativeLibraries'] = _NATIVELIBRARIES +DESCRIPTOR.message_types_by_name['ApexImages'] = _APEXIMAGES +DESCRIPTOR.message_types_by_name['TargetedAssetsDirectory'] = _TARGETEDASSETSDIRECTORY +DESCRIPTOR.message_types_by_name['TargetedNativeDirectory'] = _TARGETEDNATIVEDIRECTORY +DESCRIPTOR.message_types_by_name['TargetedApexImage'] = _TARGETEDAPEXIMAGE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +Assets = _reflection.GeneratedProtocolMessageType('Assets', (_message.Message,), { + 'DESCRIPTOR' : _ASSETS, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Assets) + }) +_sym_db.RegisterMessage(Assets) + +NativeLibraries = _reflection.GeneratedProtocolMessageType('NativeLibraries', (_message.Message,), { + 'DESCRIPTOR' : _NATIVELIBRARIES, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.NativeLibraries) + }) +_sym_db.RegisterMessage(NativeLibraries) + +ApexImages = _reflection.GeneratedProtocolMessageType('ApexImages', (_message.Message,), { + 'DESCRIPTOR' : _APEXIMAGES, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ApexImages) + }) +_sym_db.RegisterMessage(ApexImages) + +TargetedAssetsDirectory = _reflection.GeneratedProtocolMessageType('TargetedAssetsDirectory', (_message.Message,), { + 'DESCRIPTOR' : _TARGETEDASSETSDIRECTORY, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.TargetedAssetsDirectory) + }) +_sym_db.RegisterMessage(TargetedAssetsDirectory) + +TargetedNativeDirectory = _reflection.GeneratedProtocolMessageType('TargetedNativeDirectory', (_message.Message,), { + 'DESCRIPTOR' : _TARGETEDNATIVEDIRECTORY, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.TargetedNativeDirectory) + }) +_sym_db.RegisterMessage(TargetedNativeDirectory) + +TargetedApexImage = _reflection.GeneratedProtocolMessageType('TargetedApexImage', (_message.Message,), { + 'DESCRIPTOR' : _TARGETEDAPEXIMAGE, + '__module__' : 'files_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.TargetedApexImage) + }) +_sym_db.RegisterMessage(TargetedApexImage) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/direct/src/dist/_proto/targeting_pb2.py b/direct/src/dist/_proto/targeting_pb2.py new file mode 100644 index 0000000000..b475f55af4 --- /dev/null +++ b/direct/src/dist/_proto/targeting_pb2.py @@ -0,0 +1,1470 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: targeting.proto +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='targeting.proto', + package='android.bundle', + syntax='proto3', + serialized_options=b'\n\022com.android.bundle', + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x0ftargeting.proto\x12\x0e\x61ndroid.bundle\x1a\x1egoogle/protobuf/wrappers.proto\"\xf6\x02\n\x10VariantTargeting\x12\x42\n\x15sdk_version_targeting\x18\x01 \x01(\x0b\x32#.android.bundle.SdkVersionTargeting\x12\x33\n\rabi_targeting\x18\x02 \x01(\x0b\x32\x1c.android.bundle.AbiTargeting\x12H\n\x18screen_density_targeting\x18\x03 \x01(\x0b\x32&.android.bundle.ScreenDensityTargeting\x12>\n\x13multi_abi_targeting\x18\x04 \x01(\x0b\x32!.android.bundle.MultiAbiTargeting\x12_\n$texture_compression_format_targeting\x18\x05 \x01(\x0b\x32\x31.android.bundle.TextureCompressionFormatTargeting\"\xbc\x04\n\x0c\x41pkTargeting\x12\x33\n\rabi_targeting\x18\x01 \x01(\x0b\x32\x1c.android.bundle.AbiTargeting\x12=\n\x12language_targeting\x18\x03 \x01(\x0b\x32!.android.bundle.LanguageTargeting\x12H\n\x18screen_density_targeting\x18\x04 \x01(\x0b\x32&.android.bundle.ScreenDensityTargeting\x12\x42\n\x15sdk_version_targeting\x18\x05 \x01(\x0b\x32#.android.bundle.SdkVersionTargeting\x12_\n$texture_compression_format_targeting\x18\x06 \x01(\x0b\x32\x31.android.bundle.TextureCompressionFormatTargeting\x12>\n\x13multi_abi_targeting\x18\x07 \x01(\x0b\x32!.android.bundle.MultiAbiTargeting\x12?\n\x13sanitizer_targeting\x18\x08 \x01(\x0b\x32\".android.bundle.SanitizerTargeting\x12\x42\n\x15\x64\x65vice_tier_targeting\x18\t \x01(\x0b\x32#.android.bundle.DeviceTierTargetingJ\x04\x08\x02\x10\x03\"\xbb\x02\n\x0fModuleTargeting\x12\x42\n\x15sdk_version_targeting\x18\x01 \x01(\x0b\x32#.android.bundle.SdkVersionTargeting\x12H\n\x18\x64\x65vice_feature_targeting\x18\x02 \x03(\x0b\x32&.android.bundle.DeviceFeatureTargeting\x12H\n\x18user_countries_targeting\x18\x03 \x01(\x0b\x32&.android.bundle.UserCountriesTargeting\x12J\n\x16\x64\x65vice_group_targeting\x18\x05 \x01(\x0b\x32*.android.bundle.DeviceGroupModuleTargetingJ\x04\x08\x04\x10\x05\"@\n\x16UserCountriesTargeting\x12\x15\n\rcountry_codes\x18\x01 \x03(\t\x12\x0f\n\x07\x65xclude\x18\x02 \x01(\x08\"\xfd\x01\n\rScreenDensity\x12\x43\n\rdensity_alias\x18\x01 \x01(\x0e\x32*.android.bundle.ScreenDensity.DensityAliasH\x00\x12\x15\n\x0b\x64\x65nsity_dpi\x18\x02 \x01(\x05H\x00\"\x7f\n\x0c\x44\x65nsityAlias\x12\x17\n\x13\x44\x45NSITY_UNSPECIFIED\x10\x00\x12\t\n\x05NODPI\x10\x01\x12\x08\n\x04LDPI\x10\x02\x12\x08\n\x04MDPI\x10\x03\x12\t\n\x05TVDPI\x10\x04\x12\x08\n\x04HDPI\x10\x05\x12\t\n\x05XHDPI\x10\x06\x12\n\n\x06XXHDPI\x10\x07\x12\x0b\n\x07XXXHDPI\x10\x08\x42\x0f\n\rdensity_oneof\"6\n\nSdkVersion\x12(\n\x03min\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\"\xb0\x02\n\x18TextureCompressionFormat\x12U\n\x05\x61lias\x18\x01 \x01(\x0e\x32\x46.android.bundle.TextureCompressionFormat.TextureCompressionFormatAlias\"\xbc\x01\n\x1dTextureCompressionFormatAlias\x12*\n&UNSPECIFIED_TEXTURE_COMPRESSION_FORMAT\x10\x00\x12\r\n\tETC1_RGB8\x10\x01\x12\x0c\n\x08PALETTED\x10\x02\x12\x0c\n\x08THREE_DC\x10\x03\x12\x07\n\x03\x41TC\x10\x04\x12\x08\n\x04LATC\x10\x05\x12\x08\n\x04\x44XT1\x10\x06\x12\x08\n\x04S3TC\x10\x07\x12\t\n\x05PVRTC\x10\x08\x12\x08\n\x04\x41STC\x10\t\x12\x08\n\x04\x45TC2\x10\n\"\xb9\x01\n\x03\x41\x62i\x12+\n\x05\x61lias\x18\x01 \x01(\x0e\x32\x1c.android.bundle.Abi.AbiAlias\"\x84\x01\n\x08\x41\x62iAlias\x12 \n\x1cUNSPECIFIED_CPU_ARCHITECTURE\x10\x00\x12\x0b\n\x07\x41RMEABI\x10\x01\x12\x0f\n\x0b\x41RMEABI_V7A\x10\x02\x12\r\n\tARM64_V8A\x10\x03\x12\x07\n\x03X86\x10\x04\x12\n\n\x06X86_64\x10\x05\x12\x08\n\x04MIPS\x10\x06\x12\n\n\x06MIPS64\x10\x07\",\n\x08MultiAbi\x12 \n\x03\x61\x62i\x18\x01 \x03(\x0b\x32\x13.android.bundle.Abi\"o\n\tSanitizer\x12\x37\n\x05\x61lias\x18\x01 \x01(\x0e\x32(.android.bundle.Sanitizer.SanitizerAlias\")\n\x0eSanitizerAlias\x12\x08\n\x04NONE\x10\x00\x12\r\n\tHWADDRESS\x10\x01\">\n\rDeviceFeature\x12\x14\n\x0c\x66\x65\x61ture_name\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61ture_version\x18\x02 \x01(\x05\"\x91\x02\n\x18\x41ssetsDirectoryTargeting\x12)\n\x03\x61\x62i\x18\x01 \x01(\x0b\x32\x1c.android.bundle.AbiTargeting\x12U\n\x1atexture_compression_format\x18\x03 \x01(\x0b\x32\x31.android.bundle.TextureCompressionFormatTargeting\x12\x33\n\x08language\x18\x04 \x01(\x0b\x32!.android.bundle.LanguageTargeting\x12\x38\n\x0b\x64\x65vice_tier\x18\x05 \x01(\x0b\x32#.android.bundle.DeviceTierTargetingJ\x04\x08\x02\x10\x03\"\xbe\x01\n\x18NativeDirectoryTargeting\x12 \n\x03\x61\x62i\x18\x01 \x01(\x0b\x32\x13.android.bundle.Abi\x12L\n\x1atexture_compression_format\x18\x03 \x01(\x0b\x32(.android.bundle.TextureCompressionFormat\x12,\n\tsanitizer\x18\x04 \x01(\x0b\x32\x19.android.bundle.SanitizerJ\x04\x08\x02\x10\x03\"J\n\x12\x41pexImageTargeting\x12\x34\n\tmulti_abi\x18\x01 \x01(\x0b\x32!.android.bundle.MultiAbiTargeting\"]\n\x0c\x41\x62iTargeting\x12\"\n\x05value\x18\x01 \x03(\x0b\x32\x13.android.bundle.Abi\x12)\n\x0c\x61lternatives\x18\x02 \x03(\x0b\x32\x13.android.bundle.Abi\"l\n\x11MultiAbiTargeting\x12\'\n\x05value\x18\x01 \x03(\x0b\x32\x18.android.bundle.MultiAbi\x12.\n\x0c\x61lternatives\x18\x02 \x03(\x0b\x32\x18.android.bundle.MultiAbi\"{\n\x16ScreenDensityTargeting\x12,\n\x05value\x18\x01 \x03(\x0b\x32\x1d.android.bundle.ScreenDensity\x12\x33\n\x0c\x61lternatives\x18\x02 \x03(\x0b\x32\x1d.android.bundle.ScreenDensity\"8\n\x11LanguageTargeting\x12\r\n\x05value\x18\x01 \x03(\t\x12\x14\n\x0c\x61lternatives\x18\x02 \x03(\t\"r\n\x13SdkVersionTargeting\x12)\n\x05value\x18\x01 \x03(\x0b\x32\x1a.android.bundle.SdkVersion\x12\x30\n\x0c\x61lternatives\x18\x02 \x03(\x0b\x32\x1a.android.bundle.SdkVersion\"\x9c\x01\n!TextureCompressionFormatTargeting\x12\x37\n\x05value\x18\x01 \x03(\x0b\x32(.android.bundle.TextureCompressionFormat\x12>\n\x0c\x61lternatives\x18\x02 \x03(\x0b\x32(.android.bundle.TextureCompressionFormat\">\n\x12SanitizerTargeting\x12(\n\x05value\x18\x01 \x03(\x0b\x32\x19.android.bundle.Sanitizer\"Q\n\x16\x44\x65viceFeatureTargeting\x12\x37\n\x10required_feature\x18\x01 \x01(\x0b\x32\x1d.android.bundle.DeviceFeature\"\x80\x01\n\x13\x44\x65viceTierTargeting\x12*\n\x05value\x18\x03 \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x31\n\x0c\x61lternatives\x18\x04 \x03(\x0b\x32\x1b.google.protobuf.Int32ValueJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03\"+\n\x1a\x44\x65viceGroupModuleTargeting\x12\r\n\x05value\x18\x01 \x03(\tB\x14\n\x12\x63om.android.bundleb\x06proto3' + , + dependencies=[google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,]) + + + +_SCREENDENSITY_DENSITYALIAS = _descriptor.EnumDescriptor( + name='DensityAlias', + full_name='android.bundle.ScreenDensity.DensityAlias', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='DENSITY_UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='NODPI', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LDPI', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MDPI', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TVDPI', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HDPI', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='XHDPI', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='XXHDPI', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='XXXHDPI', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1513, + serialized_end=1640, +) +_sym_db.RegisterEnumDescriptor(_SCREENDENSITY_DENSITYALIAS) + +_TEXTURECOMPRESSIONFORMAT_TEXTURECOMPRESSIONFORMATALIAS = _descriptor.EnumDescriptor( + name='TextureCompressionFormatAlias', + full_name='android.bundle.TextureCompressionFormat.TextureCompressionFormatAlias', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED_TEXTURE_COMPRESSION_FORMAT', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ETC1_RGB8', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PALETTED', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='THREE_DC', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ATC', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LATC', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DXT1', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='S3TC', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='PVRTC', index=8, number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ASTC', index=9, number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ETC2', index=10, number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1832, + serialized_end=2020, +) +_sym_db.RegisterEnumDescriptor(_TEXTURECOMPRESSIONFORMAT_TEXTURECOMPRESSIONFORMATALIAS) + +_ABI_ABIALIAS = _descriptor.EnumDescriptor( + name='AbiAlias', + full_name='android.bundle.Abi.AbiAlias', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED_CPU_ARCHITECTURE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ARMEABI', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ARMEABI_V7A', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='ARM64_V8A', index=3, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='X86', index=4, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='X86_64', index=5, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MIPS', index=6, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MIPS64', index=7, number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2076, + serialized_end=2208, +) +_sym_db.RegisterEnumDescriptor(_ABI_ABIALIAS) + +_SANITIZER_SANITIZERALIAS = _descriptor.EnumDescriptor( + name='SanitizerAlias', + full_name='android.bundle.Sanitizer.SanitizerAlias', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='HWADDRESS', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2326, + serialized_end=2367, +) +_sym_db.RegisterEnumDescriptor(_SANITIZER_SANITIZERALIAS) + + +_VARIANTTARGETING = _descriptor.Descriptor( + name='VariantTargeting', + full_name='android.bundle.VariantTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='sdk_version_targeting', full_name='android.bundle.VariantTargeting.sdk_version_targeting', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='abi_targeting', full_name='android.bundle.VariantTargeting.abi_targeting', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_density_targeting', full_name='android.bundle.VariantTargeting.screen_density_targeting', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='multi_abi_targeting', full_name='android.bundle.VariantTargeting.multi_abi_targeting', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='texture_compression_format_targeting', full_name='android.bundle.VariantTargeting.texture_compression_format_targeting', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=68, + serialized_end=442, +) + + +_APKTARGETING = _descriptor.Descriptor( + name='ApkTargeting', + full_name='android.bundle.ApkTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='abi_targeting', full_name='android.bundle.ApkTargeting.abi_targeting', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language_targeting', full_name='android.bundle.ApkTargeting.language_targeting', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='screen_density_targeting', full_name='android.bundle.ApkTargeting.screen_density_targeting', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sdk_version_targeting', full_name='android.bundle.ApkTargeting.sdk_version_targeting', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='texture_compression_format_targeting', full_name='android.bundle.ApkTargeting.texture_compression_format_targeting', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='multi_abi_targeting', full_name='android.bundle.ApkTargeting.multi_abi_targeting', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sanitizer_targeting', full_name='android.bundle.ApkTargeting.sanitizer_targeting', index=6, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_tier_targeting', full_name='android.bundle.ApkTargeting.device_tier_targeting', index=7, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=445, + serialized_end=1017, +) + + +_MODULETARGETING = _descriptor.Descriptor( + name='ModuleTargeting', + full_name='android.bundle.ModuleTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='sdk_version_targeting', full_name='android.bundle.ModuleTargeting.sdk_version_targeting', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_feature_targeting', full_name='android.bundle.ModuleTargeting.device_feature_targeting', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='user_countries_targeting', full_name='android.bundle.ModuleTargeting.user_countries_targeting', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_group_targeting', full_name='android.bundle.ModuleTargeting.device_group_targeting', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1020, + serialized_end=1335, +) + + +_USERCOUNTRIESTARGETING = _descriptor.Descriptor( + name='UserCountriesTargeting', + full_name='android.bundle.UserCountriesTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='country_codes', full_name='android.bundle.UserCountriesTargeting.country_codes', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='exclude', full_name='android.bundle.UserCountriesTargeting.exclude', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1337, + serialized_end=1401, +) + + +_SCREENDENSITY = _descriptor.Descriptor( + name='ScreenDensity', + full_name='android.bundle.ScreenDensity', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='density_alias', full_name='android.bundle.ScreenDensity.density_alias', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='density_dpi', full_name='android.bundle.ScreenDensity.density_dpi', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SCREENDENSITY_DENSITYALIAS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='density_oneof', full_name='android.bundle.ScreenDensity.density_oneof', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=1404, + serialized_end=1657, +) + + +_SDKVERSION = _descriptor.Descriptor( + name='SdkVersion', + full_name='android.bundle.SdkVersion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='min', full_name='android.bundle.SdkVersion.min', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1659, + serialized_end=1713, +) + + +_TEXTURECOMPRESSIONFORMAT = _descriptor.Descriptor( + name='TextureCompressionFormat', + full_name='android.bundle.TextureCompressionFormat', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='alias', full_name='android.bundle.TextureCompressionFormat.alias', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TEXTURECOMPRESSIONFORMAT_TEXTURECOMPRESSIONFORMATALIAS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1716, + serialized_end=2020, +) + + +_ABI = _descriptor.Descriptor( + name='Abi', + full_name='android.bundle.Abi', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='alias', full_name='android.bundle.Abi.alias', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ABI_ABIALIAS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2023, + serialized_end=2208, +) + + +_MULTIABI = _descriptor.Descriptor( + name='MultiAbi', + full_name='android.bundle.MultiAbi', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='abi', full_name='android.bundle.MultiAbi.abi', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2210, + serialized_end=2254, +) + + +_SANITIZER = _descriptor.Descriptor( + name='Sanitizer', + full_name='android.bundle.Sanitizer', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='alias', full_name='android.bundle.Sanitizer.alias', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SANITIZER_SANITIZERALIAS, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2256, + serialized_end=2367, +) + + +_DEVICEFEATURE = _descriptor.Descriptor( + name='DeviceFeature', + full_name='android.bundle.DeviceFeature', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='feature_name', full_name='android.bundle.DeviceFeature.feature_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='feature_version', full_name='android.bundle.DeviceFeature.feature_version', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2369, + serialized_end=2431, +) + + +_ASSETSDIRECTORYTARGETING = _descriptor.Descriptor( + name='AssetsDirectoryTargeting', + full_name='android.bundle.AssetsDirectoryTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='abi', full_name='android.bundle.AssetsDirectoryTargeting.abi', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='texture_compression_format', full_name='android.bundle.AssetsDirectoryTargeting.texture_compression_format', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='language', full_name='android.bundle.AssetsDirectoryTargeting.language', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='device_tier', full_name='android.bundle.AssetsDirectoryTargeting.device_tier', index=3, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2434, + serialized_end=2707, +) + + +_NATIVEDIRECTORYTARGETING = _descriptor.Descriptor( + name='NativeDirectoryTargeting', + full_name='android.bundle.NativeDirectoryTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='abi', full_name='android.bundle.NativeDirectoryTargeting.abi', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='texture_compression_format', full_name='android.bundle.NativeDirectoryTargeting.texture_compression_format', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='sanitizer', full_name='android.bundle.NativeDirectoryTargeting.sanitizer', index=2, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2710, + serialized_end=2900, +) + + +_APEXIMAGETARGETING = _descriptor.Descriptor( + name='ApexImageTargeting', + full_name='android.bundle.ApexImageTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='multi_abi', full_name='android.bundle.ApexImageTargeting.multi_abi', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2902, + serialized_end=2976, +) + + +_ABITARGETING = _descriptor.Descriptor( + name='AbiTargeting', + full_name='android.bundle.AbiTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.AbiTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.AbiTargeting.alternatives', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2978, + serialized_end=3071, +) + + +_MULTIABITARGETING = _descriptor.Descriptor( + name='MultiAbiTargeting', + full_name='android.bundle.MultiAbiTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.MultiAbiTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.MultiAbiTargeting.alternatives', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3073, + serialized_end=3181, +) + + +_SCREENDENSITYTARGETING = _descriptor.Descriptor( + name='ScreenDensityTargeting', + full_name='android.bundle.ScreenDensityTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.ScreenDensityTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.ScreenDensityTargeting.alternatives', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3183, + serialized_end=3306, +) + + +_LANGUAGETARGETING = _descriptor.Descriptor( + name='LanguageTargeting', + full_name='android.bundle.LanguageTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.LanguageTargeting.value', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.LanguageTargeting.alternatives', index=1, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3308, + serialized_end=3364, +) + + +_SDKVERSIONTARGETING = _descriptor.Descriptor( + name='SdkVersionTargeting', + full_name='android.bundle.SdkVersionTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.SdkVersionTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.SdkVersionTargeting.alternatives', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3366, + serialized_end=3480, +) + + +_TEXTURECOMPRESSIONFORMATTARGETING = _descriptor.Descriptor( + name='TextureCompressionFormatTargeting', + full_name='android.bundle.TextureCompressionFormatTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.TextureCompressionFormatTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.TextureCompressionFormatTargeting.alternatives', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3483, + serialized_end=3639, +) + + +_SANITIZERTARGETING = _descriptor.Descriptor( + name='SanitizerTargeting', + full_name='android.bundle.SanitizerTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.SanitizerTargeting.value', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3641, + serialized_end=3703, +) + + +_DEVICEFEATURETARGETING = _descriptor.Descriptor( + name='DeviceFeatureTargeting', + full_name='android.bundle.DeviceFeatureTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='required_feature', full_name='android.bundle.DeviceFeatureTargeting.required_feature', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3705, + serialized_end=3786, +) + + +_DEVICETIERTARGETING = _descriptor.Descriptor( + name='DeviceTierTargeting', + full_name='android.bundle.DeviceTierTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.DeviceTierTargeting.value', index=0, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='alternatives', full_name='android.bundle.DeviceTierTargeting.alternatives', index=1, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3789, + serialized_end=3917, +) + + +_DEVICEGROUPMODULETARGETING = _descriptor.Descriptor( + name='DeviceGroupModuleTargeting', + full_name='android.bundle.DeviceGroupModuleTargeting', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='android.bundle.DeviceGroupModuleTargeting.value', index=0, + number=1, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3919, + serialized_end=3962, +) + +_VARIANTTARGETING.fields_by_name['sdk_version_targeting'].message_type = _SDKVERSIONTARGETING +_VARIANTTARGETING.fields_by_name['abi_targeting'].message_type = _ABITARGETING +_VARIANTTARGETING.fields_by_name['screen_density_targeting'].message_type = _SCREENDENSITYTARGETING +_VARIANTTARGETING.fields_by_name['multi_abi_targeting'].message_type = _MULTIABITARGETING +_VARIANTTARGETING.fields_by_name['texture_compression_format_targeting'].message_type = _TEXTURECOMPRESSIONFORMATTARGETING +_APKTARGETING.fields_by_name['abi_targeting'].message_type = _ABITARGETING +_APKTARGETING.fields_by_name['language_targeting'].message_type = _LANGUAGETARGETING +_APKTARGETING.fields_by_name['screen_density_targeting'].message_type = _SCREENDENSITYTARGETING +_APKTARGETING.fields_by_name['sdk_version_targeting'].message_type = _SDKVERSIONTARGETING +_APKTARGETING.fields_by_name['texture_compression_format_targeting'].message_type = _TEXTURECOMPRESSIONFORMATTARGETING +_APKTARGETING.fields_by_name['multi_abi_targeting'].message_type = _MULTIABITARGETING +_APKTARGETING.fields_by_name['sanitizer_targeting'].message_type = _SANITIZERTARGETING +_APKTARGETING.fields_by_name['device_tier_targeting'].message_type = _DEVICETIERTARGETING +_MODULETARGETING.fields_by_name['sdk_version_targeting'].message_type = _SDKVERSIONTARGETING +_MODULETARGETING.fields_by_name['device_feature_targeting'].message_type = _DEVICEFEATURETARGETING +_MODULETARGETING.fields_by_name['user_countries_targeting'].message_type = _USERCOUNTRIESTARGETING +_MODULETARGETING.fields_by_name['device_group_targeting'].message_type = _DEVICEGROUPMODULETARGETING +_SCREENDENSITY.fields_by_name['density_alias'].enum_type = _SCREENDENSITY_DENSITYALIAS +_SCREENDENSITY_DENSITYALIAS.containing_type = _SCREENDENSITY +_SCREENDENSITY.oneofs_by_name['density_oneof'].fields.append( + _SCREENDENSITY.fields_by_name['density_alias']) +_SCREENDENSITY.fields_by_name['density_alias'].containing_oneof = _SCREENDENSITY.oneofs_by_name['density_oneof'] +_SCREENDENSITY.oneofs_by_name['density_oneof'].fields.append( + _SCREENDENSITY.fields_by_name['density_dpi']) +_SCREENDENSITY.fields_by_name['density_dpi'].containing_oneof = _SCREENDENSITY.oneofs_by_name['density_oneof'] +_SDKVERSION.fields_by_name['min'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_TEXTURECOMPRESSIONFORMAT.fields_by_name['alias'].enum_type = _TEXTURECOMPRESSIONFORMAT_TEXTURECOMPRESSIONFORMATALIAS +_TEXTURECOMPRESSIONFORMAT_TEXTURECOMPRESSIONFORMATALIAS.containing_type = _TEXTURECOMPRESSIONFORMAT +_ABI.fields_by_name['alias'].enum_type = _ABI_ABIALIAS +_ABI_ABIALIAS.containing_type = _ABI +_MULTIABI.fields_by_name['abi'].message_type = _ABI +_SANITIZER.fields_by_name['alias'].enum_type = _SANITIZER_SANITIZERALIAS +_SANITIZER_SANITIZERALIAS.containing_type = _SANITIZER +_ASSETSDIRECTORYTARGETING.fields_by_name['abi'].message_type = _ABITARGETING +_ASSETSDIRECTORYTARGETING.fields_by_name['texture_compression_format'].message_type = _TEXTURECOMPRESSIONFORMATTARGETING +_ASSETSDIRECTORYTARGETING.fields_by_name['language'].message_type = _LANGUAGETARGETING +_ASSETSDIRECTORYTARGETING.fields_by_name['device_tier'].message_type = _DEVICETIERTARGETING +_NATIVEDIRECTORYTARGETING.fields_by_name['abi'].message_type = _ABI +_NATIVEDIRECTORYTARGETING.fields_by_name['texture_compression_format'].message_type = _TEXTURECOMPRESSIONFORMAT +_NATIVEDIRECTORYTARGETING.fields_by_name['sanitizer'].message_type = _SANITIZER +_APEXIMAGETARGETING.fields_by_name['multi_abi'].message_type = _MULTIABITARGETING +_ABITARGETING.fields_by_name['value'].message_type = _ABI +_ABITARGETING.fields_by_name['alternatives'].message_type = _ABI +_MULTIABITARGETING.fields_by_name['value'].message_type = _MULTIABI +_MULTIABITARGETING.fields_by_name['alternatives'].message_type = _MULTIABI +_SCREENDENSITYTARGETING.fields_by_name['value'].message_type = _SCREENDENSITY +_SCREENDENSITYTARGETING.fields_by_name['alternatives'].message_type = _SCREENDENSITY +_SDKVERSIONTARGETING.fields_by_name['value'].message_type = _SDKVERSION +_SDKVERSIONTARGETING.fields_by_name['alternatives'].message_type = _SDKVERSION +_TEXTURECOMPRESSIONFORMATTARGETING.fields_by_name['value'].message_type = _TEXTURECOMPRESSIONFORMAT +_TEXTURECOMPRESSIONFORMATTARGETING.fields_by_name['alternatives'].message_type = _TEXTURECOMPRESSIONFORMAT +_SANITIZERTARGETING.fields_by_name['value'].message_type = _SANITIZER +_DEVICEFEATURETARGETING.fields_by_name['required_feature'].message_type = _DEVICEFEATURE +_DEVICETIERTARGETING.fields_by_name['value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +_DEVICETIERTARGETING.fields_by_name['alternatives'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE +DESCRIPTOR.message_types_by_name['VariantTargeting'] = _VARIANTTARGETING +DESCRIPTOR.message_types_by_name['ApkTargeting'] = _APKTARGETING +DESCRIPTOR.message_types_by_name['ModuleTargeting'] = _MODULETARGETING +DESCRIPTOR.message_types_by_name['UserCountriesTargeting'] = _USERCOUNTRIESTARGETING +DESCRIPTOR.message_types_by_name['ScreenDensity'] = _SCREENDENSITY +DESCRIPTOR.message_types_by_name['SdkVersion'] = _SDKVERSION +DESCRIPTOR.message_types_by_name['TextureCompressionFormat'] = _TEXTURECOMPRESSIONFORMAT +DESCRIPTOR.message_types_by_name['Abi'] = _ABI +DESCRIPTOR.message_types_by_name['MultiAbi'] = _MULTIABI +DESCRIPTOR.message_types_by_name['Sanitizer'] = _SANITIZER +DESCRIPTOR.message_types_by_name['DeviceFeature'] = _DEVICEFEATURE +DESCRIPTOR.message_types_by_name['AssetsDirectoryTargeting'] = _ASSETSDIRECTORYTARGETING +DESCRIPTOR.message_types_by_name['NativeDirectoryTargeting'] = _NATIVEDIRECTORYTARGETING +DESCRIPTOR.message_types_by_name['ApexImageTargeting'] = _APEXIMAGETARGETING +DESCRIPTOR.message_types_by_name['AbiTargeting'] = _ABITARGETING +DESCRIPTOR.message_types_by_name['MultiAbiTargeting'] = _MULTIABITARGETING +DESCRIPTOR.message_types_by_name['ScreenDensityTargeting'] = _SCREENDENSITYTARGETING +DESCRIPTOR.message_types_by_name['LanguageTargeting'] = _LANGUAGETARGETING +DESCRIPTOR.message_types_by_name['SdkVersionTargeting'] = _SDKVERSIONTARGETING +DESCRIPTOR.message_types_by_name['TextureCompressionFormatTargeting'] = _TEXTURECOMPRESSIONFORMATTARGETING +DESCRIPTOR.message_types_by_name['SanitizerTargeting'] = _SANITIZERTARGETING +DESCRIPTOR.message_types_by_name['DeviceFeatureTargeting'] = _DEVICEFEATURETARGETING +DESCRIPTOR.message_types_by_name['DeviceTierTargeting'] = _DEVICETIERTARGETING +DESCRIPTOR.message_types_by_name['DeviceGroupModuleTargeting'] = _DEVICEGROUPMODULETARGETING +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +VariantTargeting = _reflection.GeneratedProtocolMessageType('VariantTargeting', (_message.Message,), { + 'DESCRIPTOR' : _VARIANTTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.VariantTargeting) + }) +_sym_db.RegisterMessage(VariantTargeting) + +ApkTargeting = _reflection.GeneratedProtocolMessageType('ApkTargeting', (_message.Message,), { + 'DESCRIPTOR' : _APKTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ApkTargeting) + }) +_sym_db.RegisterMessage(ApkTargeting) + +ModuleTargeting = _reflection.GeneratedProtocolMessageType('ModuleTargeting', (_message.Message,), { + 'DESCRIPTOR' : _MODULETARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ModuleTargeting) + }) +_sym_db.RegisterMessage(ModuleTargeting) + +UserCountriesTargeting = _reflection.GeneratedProtocolMessageType('UserCountriesTargeting', (_message.Message,), { + 'DESCRIPTOR' : _USERCOUNTRIESTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.UserCountriesTargeting) + }) +_sym_db.RegisterMessage(UserCountriesTargeting) + +ScreenDensity = _reflection.GeneratedProtocolMessageType('ScreenDensity', (_message.Message,), { + 'DESCRIPTOR' : _SCREENDENSITY, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ScreenDensity) + }) +_sym_db.RegisterMessage(ScreenDensity) + +SdkVersion = _reflection.GeneratedProtocolMessageType('SdkVersion', (_message.Message,), { + 'DESCRIPTOR' : _SDKVERSION, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SdkVersion) + }) +_sym_db.RegisterMessage(SdkVersion) + +TextureCompressionFormat = _reflection.GeneratedProtocolMessageType('TextureCompressionFormat', (_message.Message,), { + 'DESCRIPTOR' : _TEXTURECOMPRESSIONFORMAT, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.TextureCompressionFormat) + }) +_sym_db.RegisterMessage(TextureCompressionFormat) + +Abi = _reflection.GeneratedProtocolMessageType('Abi', (_message.Message,), { + 'DESCRIPTOR' : _ABI, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Abi) + }) +_sym_db.RegisterMessage(Abi) + +MultiAbi = _reflection.GeneratedProtocolMessageType('MultiAbi', (_message.Message,), { + 'DESCRIPTOR' : _MULTIABI, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.MultiAbi) + }) +_sym_db.RegisterMessage(MultiAbi) + +Sanitizer = _reflection.GeneratedProtocolMessageType('Sanitizer', (_message.Message,), { + 'DESCRIPTOR' : _SANITIZER, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.Sanitizer) + }) +_sym_db.RegisterMessage(Sanitizer) + +DeviceFeature = _reflection.GeneratedProtocolMessageType('DeviceFeature', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEFEATURE, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.DeviceFeature) + }) +_sym_db.RegisterMessage(DeviceFeature) + +AssetsDirectoryTargeting = _reflection.GeneratedProtocolMessageType('AssetsDirectoryTargeting', (_message.Message,), { + 'DESCRIPTOR' : _ASSETSDIRECTORYTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.AssetsDirectoryTargeting) + }) +_sym_db.RegisterMessage(AssetsDirectoryTargeting) + +NativeDirectoryTargeting = _reflection.GeneratedProtocolMessageType('NativeDirectoryTargeting', (_message.Message,), { + 'DESCRIPTOR' : _NATIVEDIRECTORYTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.NativeDirectoryTargeting) + }) +_sym_db.RegisterMessage(NativeDirectoryTargeting) + +ApexImageTargeting = _reflection.GeneratedProtocolMessageType('ApexImageTargeting', (_message.Message,), { + 'DESCRIPTOR' : _APEXIMAGETARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ApexImageTargeting) + }) +_sym_db.RegisterMessage(ApexImageTargeting) + +AbiTargeting = _reflection.GeneratedProtocolMessageType('AbiTargeting', (_message.Message,), { + 'DESCRIPTOR' : _ABITARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.AbiTargeting) + }) +_sym_db.RegisterMessage(AbiTargeting) + +MultiAbiTargeting = _reflection.GeneratedProtocolMessageType('MultiAbiTargeting', (_message.Message,), { + 'DESCRIPTOR' : _MULTIABITARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.MultiAbiTargeting) + }) +_sym_db.RegisterMessage(MultiAbiTargeting) + +ScreenDensityTargeting = _reflection.GeneratedProtocolMessageType('ScreenDensityTargeting', (_message.Message,), { + 'DESCRIPTOR' : _SCREENDENSITYTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.ScreenDensityTargeting) + }) +_sym_db.RegisterMessage(ScreenDensityTargeting) + +LanguageTargeting = _reflection.GeneratedProtocolMessageType('LanguageTargeting', (_message.Message,), { + 'DESCRIPTOR' : _LANGUAGETARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.LanguageTargeting) + }) +_sym_db.RegisterMessage(LanguageTargeting) + +SdkVersionTargeting = _reflection.GeneratedProtocolMessageType('SdkVersionTargeting', (_message.Message,), { + 'DESCRIPTOR' : _SDKVERSIONTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SdkVersionTargeting) + }) +_sym_db.RegisterMessage(SdkVersionTargeting) + +TextureCompressionFormatTargeting = _reflection.GeneratedProtocolMessageType('TextureCompressionFormatTargeting', (_message.Message,), { + 'DESCRIPTOR' : _TEXTURECOMPRESSIONFORMATTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.TextureCompressionFormatTargeting) + }) +_sym_db.RegisterMessage(TextureCompressionFormatTargeting) + +SanitizerTargeting = _reflection.GeneratedProtocolMessageType('SanitizerTargeting', (_message.Message,), { + 'DESCRIPTOR' : _SANITIZERTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.SanitizerTargeting) + }) +_sym_db.RegisterMessage(SanitizerTargeting) + +DeviceFeatureTargeting = _reflection.GeneratedProtocolMessageType('DeviceFeatureTargeting', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEFEATURETARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.DeviceFeatureTargeting) + }) +_sym_db.RegisterMessage(DeviceFeatureTargeting) + +DeviceTierTargeting = _reflection.GeneratedProtocolMessageType('DeviceTierTargeting', (_message.Message,), { + 'DESCRIPTOR' : _DEVICETIERTARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.DeviceTierTargeting) + }) +_sym_db.RegisterMessage(DeviceTierTargeting) + +DeviceGroupModuleTargeting = _reflection.GeneratedProtocolMessageType('DeviceGroupModuleTargeting', (_message.Message,), { + 'DESCRIPTOR' : _DEVICEGROUPMODULETARGETING, + '__module__' : 'targeting_pb2' + # @@protoc_insertion_point(class_scope:android.bundle.DeviceGroupModuleTargeting) + }) +_sym_db.RegisterMessage(DeviceGroupModuleTargeting) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/direct/src/dist/commands.py b/direct/src/dist/commands.py index a4582cc81d..e866e6bb03 100644 --- a/direct/src/dist/commands.py +++ b/direct/src/dist/commands.py @@ -157,6 +157,50 @@ if os.path.isdir(tcl_dir): del os """ +SITE_PY_ANDROID = """ +import sys, os +from _frozen_importlib import _imp, FrozenImporter +from importlib import _bootstrap_external +from importlib.abc import Loader, MetaPathFinder +from importlib.machinery import ModuleSpec + + +sys.frozen = True +sys.platform = "android" + + +# Alter FrozenImporter to give a __file__ property to frozen modules. +_find_spec = FrozenImporter.find_spec + +def find_spec(fullname, path=None, target=None): + spec = _find_spec(fullname, path=path, target=target) + if spec: + spec.has_location = True + spec.origin = sys.executable + return spec + +def get_data(path): + with open(path, 'rb') as fp: + return fp.read() + +FrozenImporter.find_spec = find_spec +FrozenImporter.get_data = get_data + + +class AndroidExtensionFinder(MetaPathFinder): + @classmethod + def find_spec(cls, fullname, path=None, target=None): + soname = 'libpy.' + fullname + '.so' + path = os.path.join(sys._native_library_dir, soname) + + if os.path.exists(path): + loader = _bootstrap_external.ExtensionFileLoader(fullname, path) + return ModuleSpec(fullname, loader, origin=path) + + +sys.meta_path.append(AndroidExtensionFinder) +""" + class build_apps(setuptools.Command): description = 'build Panda3D applications' @@ -171,6 +215,12 @@ class build_apps(setuptools.Command): def initialize_options(self): self.build_base = os.path.join(os.getcwd(), 'build') + self.application_id = None + self.android_debuggable = False + self.android_version_code = 1 + self.android_min_sdk_version = 21 + self.android_max_sdk_version = None + self.android_target_sdk_version = 30 self.gui_apps = {} self.console_apps = {} self.macos_main_app = None @@ -266,6 +316,11 @@ class build_apps(setuptools.Command): '/usr/lib/libxar.1.dylib', '/usr/lib/libmenu.5.4.dylib', '/System/Library/**', + + # Android + 'libc.so', 'libm.so', 'liblog.so', 'libdl.so', 'libandroid.so', + 'libGLESv1_CM.so', 'libGLESv2.so', 'libjnigraphics.so', 'libEGL.so', + 'libOpenSLES.so', 'libandroid.so', 'libOpenMAXAL.so', ] self.package_data_dirs = {} @@ -508,6 +563,72 @@ class build_apps(setuptools.Command): with open(os.path.join(contentsdir, 'Info.plist'), 'wb') as f: plistlib.dump(plist, f) + def generate_android_manifest(self, path): + import xml.etree.ElementTree as ET + + name = self.distribution.get_name() + version = self.distribution.get_version() + classifiers = self.distribution.get_classifiers() + + is_game = False + for classifier in classifiers: + if classifier == 'Topic :: Games/Entertainment' or classifier.startswith('Topic :: Games/Entertainment ::'): + is_game = True + + manifest = ET.Element('manifest') + manifest.set('xmlns:android', 'http://schemas.android.com/apk/res/android') + manifest.set('package', self.application_id) + manifest.set('android:versionCode', str(int(self.android_version_code))) + manifest.set('android:versionName', version) + manifest.set('android:installLocation', 'auto') + + uses_sdk = ET.SubElement(manifest, 'uses-sdk') + uses_sdk.set('android:minSdkVersion', str(int(self.android_min_sdk_version))) + uses_sdk.set('android:targetSdkVersion', str(int(self.android_target_sdk_version))) + if self.android_max_sdk_version: + uses_sdk.set('android:maxSdkVersion', str(int(self.android_max_sdk_version))) + + if 'pandagles2' in self.plugins: + uses_feature = ET.SubElement(manifest, 'uses-feature') + uses_feature.set('android:glEsVersion', '0x00020000') + uses_feature.set('android:required', 'false' if 'pandagles' in self.plugins else 'true') + + if 'p3openal_audio' in self.plugins: + uses_feature = ET.SubElement(manifest, 'uses-feature') + uses_feature.set('android:name', 'android.hardware.audio.output') + uses_feature.set('android:required', 'false') + + uses_feature = ET.SubElement(manifest, 'uses-feature') + uses_feature.set('android:name', 'android.hardware.gamepad') + uses_feature.set('android:required', 'false') + + application = ET.SubElement(manifest, 'application') + application.set('android:label', name) + application.set('android:isGame', ('false', 'true')[is_game]) + application.set('android:debuggable', ('false', 'true')[self.android_debuggable]) + application.set('android:extractNativeLibs', 'true') + + for appname in self.gui_apps: + activity = ET.SubElement(application, 'activity') + activity.set('android:name', 'org.panda3d.android.PandaActivity') + activity.set('android:label', appname) + activity.set('android:theme', '@android:style/Theme.NoTitleBar') + activity.set('android:configChanges', 'orientation|keyboardHidden') + activity.set('android:launchMode', 'singleInstance') + + meta_data = ET.SubElement(activity, 'meta-data') + meta_data.set('android:name', 'android.app.lib_name') + meta_data.set('android:value', appname) + + intent_filter = ET.SubElement(activity, 'intent-filter') + ET.SubElement(intent_filter, 'action').set('android:name', 'android.intent.action.MAIN') + ET.SubElement(intent_filter, 'category').set('android:name', 'android.intent.category.LAUNCHER') + ET.SubElement(intent_filter, 'category').set('android:name', 'android.intent.category.LEANBACK_LAUNCHER') + + tree = ET.ElementTree(manifest) + with open(path, 'wb') as fh: + tree.write(fh, encoding='utf-8', xml_declaration=True) + def build_runtimes(self, platform, use_wheels): """ Builds the distributions for the given platform. """ @@ -607,6 +728,9 @@ class build_apps(setuptools.Command): value = value[:c].rstrip() if var == 'model-cache-dir' and value: + if platform.startswith('android'): + # Ignore on Android, where the cache dir is fixed. + continue value = value.replace('/panda3d', '/{}'.format(self.distribution.get_name())) if var == 'audio-library-name': @@ -683,33 +807,42 @@ class build_apps(setuptools.Command): return search_path - def create_runtime(appname, mainscript, use_console): + def create_runtime(appname, mainscript, target_dir, use_console): freezer = FreezeTool.Freezer( platform=platform, path=path, hiddenImports=self.hidden_imports ) freezer.addModule('__main__', filename=mainscript) - freezer.addModule('site', filename='site.py', text=SITE_PY) + if platform.startswith('android'): + freezer.addModule('site', filename='site.py', text=SITE_PY_ANDROID) + else: + freezer.addModule('site', filename='site.py', text=SITE_PY) for incmod in self.include_modules.get(appname, []) + self.include_modules.get('*', []): freezer.addModule(incmod) for exmod in self.exclude_modules.get(appname, []) + self.exclude_modules.get('*', []): freezer.excludeModule(exmod) freezer.done(addStartupModules=True) - target_path = os.path.join(builddir, appname) - stub_name = 'deploy-stub' + target_name = appname if platform.startswith('win') or 'macosx' in platform: if not use_console: stub_name = 'deploy-stubw' + elif platform.startswith('android'): + if not use_console: + stub_name = 'libdeploy-stubw.so' + target_name = 'lib' + target_name + '.so' if platform.startswith('win'): stub_name += '.exe' - target_path += '.exe' + target_name += '.exe' if use_wheels: - stub_file = p3dwhl.open('panda3d_tools/{0}'.format(stub_name)) + if stub_name.endswith('.so'): + stub_file = p3dwhl.open('deploy_libs/{0}'.format(stub_name)) + else: + stub_file = p3dwhl.open('panda3d_tools/{0}'.format(stub_name)) else: dtool_path = p3d.Filename(p3d.ExecutionEnvironment.get_dtool_name()).to_os_specific() stub_path = os.path.join(os.path.dirname(dtool_path), '..', 'bin', stub_name) @@ -731,6 +864,7 @@ class build_apps(setuptools.Command): if not self.log_filename or '%' not in self.log_filename: use_strftime = False + target_path = os.path.join(target_dir, target_name) freezer.generateRuntimeFromStub(target_path, stub_file, use_console, { 'prc_data': prcexport if self.embed_prc_data else None, 'default_prc_dir': self.default_prc_dir, @@ -750,10 +884,11 @@ class build_apps(setuptools.Command): os.unlink(temp_file.name) # Copy the dependencies. - search_path = [builddir] + search_path = [target_dir] if use_wheels: + search_path.append(os.path.join(p3dwhlfn, 'panda3d')) search_path.append(os.path.join(p3dwhlfn, 'deploy_libs')) - self.copy_dependencies(target_path, builddir, search_path, stub_name) + self.copy_dependencies(target_path, target_dir, search_path, stub_name) freezer_extras.update(freezer.extras) freezer_modules.update(freezer.getAllModuleNames()) @@ -765,11 +900,37 @@ class build_apps(setuptools.Command): if suffix[2] == imp.C_EXTENSION: ext_suffixes.add(suffix[0]) + # Where should we copy the various file types to? + lib_dir = builddir + data_dir = builddir + + if platform.startswith('android'): + data_dir = os.path.join(data_dir, 'assets') + if platform == 'android_arm64': + lib_dir = os.path.join(lib_dir, 'lib', 'arm64-v8a') + elif platform == 'android_armv7a': + lib_dir = os.path.join(lib_dir, 'lib', 'armeabi-v7a') + elif platform == 'android_arm': + lib_dir = os.path.join(lib_dir, 'lib', 'armeabi') + elif platform == 'androidmips': + lib_dir = os.path.join(lib_dir, 'lib', 'mips') + elif platform == 'android_mips64': + lib_dir = os.path.join(lib_dir, 'lib', 'mips64') + elif platform == 'android_x86': + lib_dir = os.path.join(lib_dir, 'lib', 'x86') + elif platform == 'android_x86_64': + lib_dir = os.path.join(lib_dir, 'lib', 'x86_64') + else: + self.announce('Unrecognized Android architecture {}'.format(platform.split('_', 1)[-1]), distutils.log.ERROR) + + os.makedirs(data_dir, exist_ok=True) + os.makedirs(lib_dir, exist_ok=True) + for appname, scriptname in self.gui_apps.items(): - create_runtime(appname, scriptname, False) + create_runtime(appname, scriptname, lib_dir, False) for appname, scriptname in self.console_apps.items(): - create_runtime(appname, scriptname, True) + create_runtime(appname, scriptname, lib_dir, True) # Copy extension modules whl_modules = [] @@ -805,7 +966,7 @@ class build_apps(setuptools.Command): plugname = lib.split('.', 1)[0] if plugname in plugin_list: source_path = os.path.join(p3dwhlfn, lib) - target_path = os.path.join(builddir, os.path.basename(lib)) + target_path = os.path.join(lib_dir, os.path.basename(lib)) search_path = [os.path.dirname(source_path)] self.copy_with_dependencies(source_path, target_path, search_path) @@ -846,8 +1007,13 @@ class build_apps(setuptools.Command): else: continue + if platform.startswith('android'): + # Python modules on Android need a special prefix to be loadable + # as a library. + basename = 'libpy.' + basename + # If this is a dynamic library, search for dependencies. - target_path = os.path.join(builddir, basename) + target_path = os.path.join(lib_dir, basename) search_path = get_search_path_for(source_path) self.copy_with_dependencies(source_path, target_path, search_path) @@ -858,15 +1024,20 @@ class build_apps(setuptools.Command): if os.path.isdir(tcl_dir) and 'tkinter' in freezer_modules: self.announce('Copying Tcl files', distutils.log.INFO) - os.makedirs(os.path.join(builddir, 'tcl')) + os.makedirs(os.path.join(data_dir, 'tcl')) for dir in os.listdir(tcl_dir): sub_dir = os.path.join(tcl_dir, dir) if os.path.isdir(sub_dir): - target_dir = os.path.join(builddir, 'tcl', dir) + target_dir = os.path.join(data_dir, 'tcl', dir) self.announce('copying {0} -> {1}'.format(sub_dir, target_dir)) shutil.copytree(sub_dir, target_dir) + # Copy classes.dex on Android + if use_wheels and platform.startswith('android'): + self.copy(os.path.join(p3dwhlfn, 'deploy_libs', 'classes.dex'), + os.path.join(builddir, 'classes.dex')) + # Extract any other data files from dependency packages. for module, datadesc in self.package_data_dirs.items(): if module not in freezer_modules: @@ -883,7 +1054,7 @@ class build_apps(setuptools.Command): source_dir = os.path.dirname(source_pattern) # Relocate the target dir to the build directory. target_dir = target_dir.replace('/', os.sep) - target_dir = os.path.join(builddir, target_dir) + target_dir = os.path.join(data_dir, target_dir) for wf in filenames: if wf.lower().startswith(source_dir.lower() + '/'): @@ -1008,10 +1179,14 @@ class build_apps(setuptools.Command): for fname in filelist: src = os.path.join(dirpath, fname) - dst = os.path.join(builddir, update_path(src)) + dst = os.path.join(data_dir, update_path(src)) copy_file(src, dst) + if 'android' in platform: + # Generate an AndroidManifest.xml + self.generate_android_manifest(os.path.join(builddir, 'AndroidManifest.xml')) + # Bundle into an .app on macOS if self.macos_main_app and 'macosx' in platform: self.bundle_macos_app(builddir) @@ -1333,6 +1508,13 @@ class bdist_apps(setuptools.Command): 'manylinux1_i686': ['gztar'], 'manylinux2010_x86_64': ['gztar'], 'manylinux2010_i686': ['gztar'], + 'android_arm64': ['aab'], + 'android_armv7a': ['aab'], + 'android_arm': ['aab'], + 'android_mips': ['aab'], + 'android_mips64': ['aab'], + 'android_x86': ['aab'], + 'android_x86_64': ['aab'], # Everything else defaults to ['zip'] } @@ -1342,6 +1524,7 @@ class bdist_apps(setuptools.Command): 'bztar': installers.create_bztar, 'xztar': installers.create_xztar, 'nsis': installers.create_nsis, + 'aab': installers.create_aab, } description = 'bundle built Panda3D applications into distributable forms' diff --git a/direct/src/dist/installers.py b/direct/src/dist/installers.py index d947d97237..15dcb2e267 100644 --- a/direct/src/dist/installers.py +++ b/direct/src/dist/installers.py @@ -196,3 +196,71 @@ def create_nsis(command, basename, build_dir): ) cmd.append(nsifile.to_os_specific()) subprocess.check_call(cmd) + + +def create_aab(command, basename, build_dir): + """Create an Android App Bundle. This is a newer format that replaces + Android's .apk format for uploads to the Play Store. Unlike .apk files, it + does not rely on a proprietary signing scheme or an undocumented binary XML + format (protobuf is used instead), so it is easier to create without + requiring external tools. If desired, it is possible to install bundletool + and use it to convert an .aab into an .apk. + """ + + from ._android import AndroidManifest, AbiAlias, BundleConfig, NativeLibraries, ResourceTable + + bundle_fn = p3d.Filename.from_os_specific(command.dist_dir) / (basename + '.aab') + build_dir_fn = p3d.Filename.from_os_specific(build_dir) + + # We use our own zip implementation, which can create the correct + # alignment needed by Android automatically. + bundle = p3d.ZipArchive() + if not bundle.open_write(bundle_fn): + command.announce.error( + f'\tUnable to open {bundle_fn} for writing', distutils.log.ERROR) + return + + config = BundleConfig() + config.bundletool.version = '1.1.0' + config.optimizations.splits_config.Clear() + config.optimizations.uncompress_native_libraries.enabled = False + bundle.add_subfile('BundleConfig.pb', p3d.StringStream(config.SerializeToString()), 9) + + resources = ResourceTable() + bundle.add_subfile('base/resources.pb', p3d.StringStream(resources.SerializeToString()), 9) + + native = NativeLibraries() + for abi in os.listdir(os.path.join(build_dir, 'lib')): + native_dir = native.directory.add() + native_dir.path = 'lib/' + abi + native_dir.targeting.abi.alias = getattr(AbiAlias, abi.upper().replace('-', '_')) + bundle.add_subfile('base/native.pb', p3d.StringStream(native.SerializeToString()), 9) + + # Convert the AndroidManifest.xml file to a protobuf-encoded version of it. + axml = AndroidManifest() + with open(os.path.join(build_dir, 'AndroidManifest.xml'), 'rb') as fh: + axml.parse_xml(fh.read()) + bundle.add_subfile('base/manifest/AndroidManifest.xml', p3d.StringStream(axml.dumps()), 9) + + # Add the classes.dex. + bundle.add_subfile(f'base/dex/classes.dex', build_dir_fn / 'classes.dex', 9) + + # Add libraries, compressed. + for abi in os.listdir(os.path.join(build_dir, 'lib')): + abi_dir = os.path.join(build_dir, 'lib', abi) + + for lib in os.listdir(abi_dir): + if lib.startswith('lib') and lib.endswith('.so'): + bundle.add_subfile(f'base/lib/{abi}/{lib}', build_dir_fn / 'lib' / abi / lib, 9) + + # Add assets, compressed. + assets_dir = os.path.join(build_dir, 'assets') + for dirpath, dirnames, filenames in os.walk(assets_dir): + rel_dirpath = os.path.relpath(dirpath, build_dir).replace('\\', '/') + dirnames.sort() + filenames.sort() + + for name in filenames: + fn = p3d.Filename.from_os_specific(dirpath) / name + if fn.is_regular_file(): + bundle.add_subfile(f'base/{rel_dirpath}/{name}', fn, 9) diff --git a/dtool/src/prc/configPageManager.cxx b/dtool/src/prc/configPageManager.cxx index c6672deddf..edf40a9555 100644 --- a/dtool/src/prc/configPageManager.cxx +++ b/dtool/src/prc/configPageManager.cxx @@ -97,6 +97,7 @@ reload_implicit_pages() { } _implicit_pages.clear(); +#ifndef ANDROID // If we are running inside a deployed application, see if it exposes // information about how the PRC data should be initialized. struct BlobInfo { @@ -459,6 +460,7 @@ reload_implicit_pages() { } } } +#endif // ANDROID if (!_loaded_implicit) { config_initialized(); @@ -498,7 +500,6 @@ reload_implicit_pages() { SetErrorMode(SEM_FAILCRITICALERRORS); } #endif - } /** diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 85fd3b0faa..41be88dd15 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -6036,10 +6036,11 @@ if PkgSkip("PYTHON") == 0: LibName('DEPLOYSTUB', "-Wl,-rpath,\\$ORIGIN") LibName('DEPLOYSTUB', "-Wl,-z,origin") LibName('DEPLOYSTUB', "-rdynamic") + PyTargetAdd('deploy-stub.exe', input='deploy-stub.obj') if GetTarget() == 'windows': PyTargetAdd('deploy-stub.exe', input='frozen_dllmain.obj') - PyTargetAdd('deploy-stub.exe', opts=['WINSHELL', 'DEPLOYSTUB', 'NOICON']) + PyTargetAdd('deploy-stub.exe', opts=['WINSHELL', 'DEPLOYSTUB', 'NOICON', 'ANDROID']) if GetTarget() == 'windows': PyTargetAdd('deploy-stubw.exe', input='deploy-stub.obj') @@ -6051,6 +6052,13 @@ if PkgSkip("PYTHON") == 0: PyTargetAdd('deploy-stubw.obj', opts=OPTS, input='deploy-stub.c') PyTargetAdd('deploy-stubw.exe', input='deploy-stubw.obj') PyTargetAdd('deploy-stubw.exe', opts=['MACOS_APP_BUNDLE', 'DEPLOYSTUB', 'NOICON']) + elif GetTarget() == 'android': + PyTargetAdd('deploy-stubw_android_main.obj', opts=OPTS, input='android_main.cxx') + PyTargetAdd('libdeploy-stubw.dll', input='android_native_app_glue.obj') + PyTargetAdd('libdeploy-stubw.dll', input='deploy-stubw_android_main.obj') + PyTargetAdd('libdeploy-stubw.dll', input=COMMON_PANDA_LIBS) + PyTargetAdd('libdeploy-stubw.dll', input='libp3android.dll') + PyTargetAdd('libdeploy-stubw.dll', opts=['DEPLOYSTUB', 'ANDROID']) # # Generate the models directory and samples directory diff --git a/makepanda/makewheel.py b/makepanda/makewheel.py index 90d9580970..65a68ec5e8 100644 --- a/makepanda/makewheel.py +++ b/makepanda/makewheel.py @@ -10,11 +10,12 @@ import hashlib import tempfile import subprocess import time +import struct from distutils.util import get_platform from distutils.sysconfig import get_config_var from optparse import OptionParser from base64 import urlsafe_b64encode -from makepandacore import LocateBinary, GetExtensionSuffix, SetVerbose, GetVerbose, GetMetadataValue +from makepandacore import LocateBinary, GetExtensionSuffix, SetVerbose, GetVerbose, GetMetadataValue, CrossCompiling, GetThirdpartyDir, SDK, GetStrip def get_abi_tag(): @@ -65,8 +66,11 @@ def is_fat_file(path): def get_python_ext_module_dir(): - import _ctypes - return os.path.dirname(_ctypes.__file__) + if CrossCompiling(): + return os.path.join(GetThirdpartyDir(), "python", "lib", SDK["PYTHONVERSION"], "lib-dynload") + else: + import _ctypes + return os.path.dirname(_ctypes.__file__) if sys.platform in ('win32', 'cygwin'): @@ -251,16 +255,72 @@ def parse_dependencies_unix(data): return filenames +def _scan_dependencies_elf(elf): + deps = [] + ident = elf.read(12) + + # Make sure we read in the correct endianness and integer size + byte_order = "<>"[ord(ident[1:2]) - 1] + elf_class = ord(ident[0:1]) - 1 # 0 = 32-bits, 1 = 64-bits + header_struct = byte_order + ("HHIIIIIHHHHHH", "HHIQQQIHHHHHH")[elf_class] + section_struct = byte_order + ("4xI8xIII8xI", "4xI16xQQI12xQ")[elf_class] + dynamic_struct = byte_order + ("iI", "qQ")[elf_class] + + type, machine, version, entry, phoff, shoff, flags, ehsize, phentsize, phnum, shentsize, shnum, shstrndx \ + = struct.unpack(header_struct, elf.read(struct.calcsize(header_struct))) + dynamic_sections = [] + string_tables = {} + + # Seek to the section header table and find the .dynamic section. + elf.seek(shoff) + for i in range(shnum): + type, offset, size, link, entsize = struct.unpack_from(section_struct, elf.read(shentsize)) + if type == 6 and link != 0: # DYNAMIC type, links to string table + dynamic_sections.append((offset, size, link, entsize)) + string_tables[link] = None + + # Read the relevant string tables. + for idx in string_tables.keys(): + elf.seek(shoff + idx * shentsize) + type, offset, size, link, entsize = struct.unpack_from(section_struct, elf.read(shentsize)) + if type != 3: continue + elf.seek(offset) + string_tables[idx] = elf.read(size) + + # Loop through the dynamic sections to get the NEEDED entries. + needed = [] + for offset, size, link, entsize in dynamic_sections: + elf.seek(offset) + data = elf.read(entsize) + tag, val = struct.unpack_from(dynamic_struct, data) + + # Read tags until we find a NULL tag. + while tag != 0: + if tag == 1: # A NEEDED entry. Read it from the string table. + string = string_tables[link][val : string_tables[link].find(b'\0', val)] + needed.append(string.decode('utf-8')) + + data = elf.read(entsize) + tag, val = struct.unpack_from(dynamic_struct, data) + + elf.close() + return needed + + def scan_dependencies(pathname): """ Checks the named file for DLL dependencies, and adds any appropriate dependencies found into pluginDependencies and dependentFiles. """ + with open(pathname, 'rb') as fh: + if fh.read(4) == b'\x7FELF': + return _scan_dependencies_elf(fh) + if sys.platform == "darwin": command = ['otool', '-XL', pathname] elif sys.platform in ("win32", "cygwin"): command = ['dumpbin', '/dependents', pathname] else: - command = ['ldd', pathname] + sys.exit("Don't know how to determine dependencies from %s" % (pathname)) process = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True) output, unused_err = process.communicate() @@ -322,18 +382,24 @@ class WheelFile(object): self.dep_paths[dep] = None - if dep in self.ignore_deps or dep.lower().startswith("python") or os.path.basename(dep).startswith("libpython"): - # Don't include the Python library, or any other explicit ignore. + if dep in self.ignore_deps: if GetVerbose(): print("Ignoring {0} (explicitly ignored)".format(dep)) return - if sys.platform == "darwin" and dep.endswith(".so"): - # Temporary hack for 1.9, which had link deps on modules. - return + if not self.platform.startswith("android"): + if dep.lower().startswith("python") or os.path.basename(dep).startswith("libpython"): + if GetVerbose(): + print("Ignoring {0} (explicitly ignored)".format(dep)) + return - if sys.platform == "darwin" and dep.startswith("/System/"): - return + if self.platform.startswith("macosx"): + if dep.endswith(".so"): + # Temporary hack for 1.9, which had link deps on modules. + return + + if dep.startswith("/System/"): + return if dep.startswith('/'): source_path = dep @@ -386,7 +452,7 @@ class WheelFile(object): temp = tempfile.NamedTemporaryFile(suffix=suffix, prefix='whl', delete=False) # On macOS, if no fat wheel was requested, extract the right architecture. - if sys.platform == "darwin" and is_fat_file(source_path) \ + if self.platform.startswith("macosx") and is_fat_file(source_path) \ and not self.platform.endswith("_intel") \ and "_fat" not in self.platform \ and "_universal" not in self.platform: @@ -404,7 +470,7 @@ class WheelFile(object): os.chmod(temp.name, os.stat(temp.name).st_mode | 0o711) # Now add dependencies. On macOS, fix @loader_path references. - if sys.platform == "darwin": + if self.platform.startswith("macosx"): if source_path.endswith('deploy-stubw'): deps_path = '@executable_path/../Frameworks' else: @@ -457,12 +523,32 @@ class WheelFile(object): # On other unixes, we just add dependencies normally. for dep in deps: # Only include dependencies with relative path, for now. - if '/' not in dep: - target_dep = os.path.dirname(target_path) + '/' + dep - self.consider_add_dependency(target_dep, dep) + if '/' in dep: + continue - subprocess.call(["strip", "-s", temp.name]) - subprocess.call(["patchelf", "--force-rpath", "--set-rpath", "$ORIGIN", temp.name]) + if self.platform.startswith('android') and '.so.' in dep: + # Change .so.1.2 suffix to .so, to allow loading in .apk + new_dep = dep.rpartition('.so.')[0] + '.so' + subprocess.call(["patchelf", "--replace-needed", dep, new_dep, temp.name]) + target_dep = os.path.dirname(target_path) + '/' + new_dep + else: + target_dep = os.path.dirname(target_path) + '/' + dep + + self.consider_add_dependency(target_dep, dep) + + subprocess.call([GetStrip(), "-s", temp.name]) + + if self.platform.startswith('android'): + # We must link explicitly with Python, because the usual + # -rdynamic trick doesn't work from a shared library loaded + # through ANativeActivity. + if suffix == '.so' and not os.path.basename(source_path).startswith('lib'): + pylib_name = "libpython" + get_config_var('LDVERSION') + ".so" + subprocess.call(["patchelf", "--add-needed", pylib_name, temp.name]) + else: + # On other systems, we use the rpath to force it to locate + # dependencies in the same directory. + subprocess.call(["patchelf", "--force-rpath", "--set-rpath", "$ORIGIN", temp.name]) source_path = temp.name @@ -550,7 +636,7 @@ def makewheel(version, output_dir, platform=None): raise Exception("patchelf is required when building a Linux wheel.") if sys.version_info < (3, 6): - raise Exception("Python 3.6 is required to produce a wheel.") + raise Exception("Python 3.6 or higher is required to produce a wheel.") if platform is None: # Determine the platform from the build. @@ -571,6 +657,11 @@ def makewheel(version, output_dir, platform=None): platform = platform.replace('-', '_').replace('.', '_') + is_windows = platform == 'win32' \ + or platform.startswith('win_') \ + or platform.startswith('cygwin_') + is_macosx = platform.startswith('macosx_') + # Global filepaths panda3d_dir = join(output_dir, "panda3d") pandac_dir = join(output_dir, "pandac") @@ -578,7 +669,7 @@ def makewheel(version, output_dir, platform=None): models_dir = join(output_dir, "models") etc_dir = join(output_dir, "etc") bin_dir = join(output_dir, "bin") - if sys.platform == "win32": + if is_windows: libs_dir = join(output_dir, "bin") else: libs_dir = join(output_dir, "lib") @@ -613,7 +704,7 @@ def makewheel(version, output_dir, platform=None): whl = WheelFile('panda3d', version, platform) whl.lib_path = [libs_dir] - if sys.platform == "win32": + if is_windows: whl.lib_path.append(ext_mod_dir) if platform.startswith("manylinux"): @@ -629,10 +720,10 @@ def makewheel(version, output_dir, platform=None): whl.ignore_deps.update(MANYLINUX_LIBS) # Add libpython for deployment. - if sys.platform in ('win32', 'cygwin'): + if is_windows: pylib_name = 'python{0}{1}.dll'.format(*sys.version_info) pylib_path = os.path.join(get_config_var('BINDIR'), pylib_name) - elif sys.platform == 'darwin': + elif is_macosx: pylib_name = 'libpython{0}.{1}.dylib'.format(*sys.version_info) pylib_path = os.path.join(get_config_var('LIBDIR'), pylib_name) else: @@ -679,6 +770,9 @@ if __debug__: if file.endswith('.pyd') and platform.startswith('cygwin'): # Rename it to .dll for cygwin Python to be able to load it. target_path = 'panda3d/' + os.path.splitext(file)[0] + '.dll' + elif file.endswith(ext_suffix) and platform.startswith('android'): + # Strip the extension suffix on Android. + target_path = 'panda3d/' + file[:-len(ext_suffix)] + '.so' else: target_path = 'panda3d/' + file @@ -686,7 +780,7 @@ if __debug__: # And copy the extension modules from the Python installation into the # deploy_libs directory, for use by deploy-ng. - ext_suffix = '.pyd' if sys.platform in ('win32', 'cygwin') else '.so' + ext_suffix = '.pyd' if is_windows else '.so' for file in sorted(os.listdir(ext_mod_dir)): if file.endswith(ext_suffix): @@ -703,9 +797,9 @@ if __debug__: # Add plug-ins. for lib in PLUGIN_LIBS: plugin_name = 'lib' + lib - if sys.platform in ('win32', 'cygwin'): + if is_windows: plugin_name += '.dll' - elif sys.platform == 'darwin': + elif is_macosx: plugin_name += '.dylib' else: plugin_name += '.so' @@ -713,6 +807,15 @@ if __debug__: if os.path.isfile(plugin_path): whl.write_file('panda3d/' + plugin_name, plugin_path) + if platform.startswith('android'): + deploy_stub_path = os.path.join(libs_dir, 'libdeploy-stubw.so') + if os.path.isfile(deploy_stub_path): + whl.write_file('deploy_libs/libdeploy-stubw.so', deploy_stub_path) + + classes_dex_path = os.path.join(output_dir, 'classes.dex') + if os.path.isfile(classes_dex_path): + whl.write_file('deploy_libs/classes.dex', classes_dex_path) + # Add the .data directory, containing additional files. data_dir = 'panda3d-{0}.data'.format(version) #whl.write_directory(data_dir + '/data/etc', etc_dir) diff --git a/panda/src/android/PandaActivity.java b/panda/src/android/PandaActivity.java index 36a8c97521..d9b390373f 100644 --- a/panda/src/android/PandaActivity.java +++ b/panda/src/android/PandaActivity.java @@ -15,10 +15,13 @@ package org.panda3d.android; import android.app.NativeActivity; import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageManager; import android.net.Uri; import android.widget.Toast; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import dalvik.system.BaseDexClassLoader; import org.panda3d.android.NativeIStream; import org.panda3d.android.NativeOStream; @@ -74,6 +77,26 @@ public class PandaActivity extends NativeActivity { return Thread.currentThread().getName(); } + /** + * Returns the path to the main native library. + */ + public String getNativeLibraryPath() { + String libname = "main"; + try { + ActivityInfo ai = getPackageManager().getActivityInfo( + getIntent().getComponent(), PackageManager.GET_META_DATA); + if (ai.metaData != null) { + String ln = ai.metaData.getString(META_DATA_LIB_NAME); + if (ln != null) libname = ln; + } + } catch (PackageManager.NameNotFoundException e) { + throw new RuntimeException("Error getting activity info", e); + } + + BaseDexClassLoader classLoader = (BaseDexClassLoader) getClassLoader(); + return classLoader.findLibrary(libname); + } + public String getIntentDataPath() { Intent intent = getIntent(); Uri data = intent.getData(); @@ -96,6 +119,9 @@ public class PandaActivity extends NativeActivity { return getCacheDir().toString(); } + /** + * Shows a pop-up notification. + */ public void showToast(final String text, final int duration) { final PandaActivity activity = this; runOnUiThread(new Runnable() { @@ -107,14 +133,10 @@ public class PandaActivity extends NativeActivity { } static { - //System.loadLibrary("gnustl_shared"); - //System.loadLibrary("p3dtool"); - //System.loadLibrary("p3dtoolconfig"); - //System.loadLibrary("pandaexpress"); - //System.loadLibrary("panda"); - //System.loadLibrary("p3android"); - //System.loadLibrary("p3framework"); - System.loadLibrary("pandaegg"); - System.loadLibrary("pandagles"); + // Load this explicitly to initialize the JVM with the thread system. + System.loadLibrary("panda"); + + // Contains our JNI calls. + System.loadLibrary("p3android"); } } diff --git a/panda/src/pipeline/threadPosixImpl.cxx b/panda/src/pipeline/threadPosixImpl.cxx index 18e76cb8d2..f791d2be43 100644 --- a/panda/src/pipeline/threadPosixImpl.cxx +++ b/panda/src/pipeline/threadPosixImpl.cxx @@ -193,6 +193,8 @@ get_unique_id() const { */ bool ThreadPosixImpl:: attach_java_vm() { + assert(java_vm != nullptr); + JNIEnv *env; std::string thread_name = _parent_obj->get_name(); JavaVMAttachArgs args; @@ -219,6 +221,8 @@ bind_java_thread() { Thread *thread = Thread::get_current_thread(); nassertv(thread != nullptr); + assert(java_vm != nullptr); + // Get the JNIEnv for this Java thread, and store it on the corresponding // Panda thread object. JNIEnv *env; diff --git a/pandatool/src/deploy-stub/android_main.cxx b/pandatool/src/deploy-stub/android_main.cxx new file mode 100644 index 0000000000..3adcfa4a8f --- /dev/null +++ b/pandatool/src/deploy-stub/android_main.cxx @@ -0,0 +1,361 @@ +/** + * PANDA 3D SOFTWARE + * Copyright (c) Carnegie Mellon University. All rights reserved. + * + * All use of this software is subject to the terms of the revised BSD + * license. You should have received a copy of this license along + * with this source code in a file named "LICENSE." + * + * @file android_main.cxx + * @author rdb + * @date 2021-12-06 + */ + +#include "config_android.h" +#include "config_putil.h" +#include "virtualFileMountAndroidAsset.h" +#include "virtualFileSystem.h" +#include "filename.h" +#include "thread.h" +#include "urlSpec.h" + +#include "android_native_app_glue.h" + +#include "Python.h" +#include "structmember.h" + +#include +#include + +#include + +// Leave room for future expansion. +#define MAX_NUM_POINTERS 24 + +// Define an exposed symbol where we store the offset to the module data. +extern "C" { + __attribute__((__visibility__("default"), used)) + volatile struct { + uint64_t blob_offset; + uint64_t blob_size; + uint16_t version; + uint16_t num_pointers; + uint16_t codepage; + uint16_t flags; + uint64_t reserved; + void *pointers[MAX_NUM_POINTERS]; + + // The reason we initialize it to -1 is because otherwise, smart linkers may + // end up putting it in the .bss section for zero-initialized data. + } blobinfo = {(uint64_t)-1}; +} + +/** + * Maps the binary blob at the given memory address to memory, and returns the + * pointer to the beginning of it. + */ +static void *map_blob(const char *path, off_t offset, size_t size) { + FILE *runtime = fopen(path, "rb"); + assert(runtime != NULL); + + void *blob = (void *)mmap(0, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fileno(runtime), offset); + assert(blob != MAP_FAILED); + + fclose(runtime); + return blob; +} + +/** + * The inverse of map_blob. + */ +static void unmap_blob(void *blob) { + if (blob) { + munmap(blob, blobinfo.blob_size); + } +} + +/** + * This function is called by native_app_glue to initialize the program. + * + * Note that this does not run in the main thread, but in a thread created + * specifically for this activity by android_native_app_glue. + * + * Unlike the regular deploy-stub, we need to interface directly with the + * Panda3D libraries here, since we can't pass the pointers from Java to Panda + * through the Python interpreter easily. + */ +void android_main(struct android_app *app) { + panda_android_app = app; + + // Attach the app thread to the Java VM. + JNIEnv *env; + ANativeActivity *activity = app->activity; + int attach_status = activity->vm->AttachCurrentThread(&env, nullptr); + if (attach_status < 0 || env == nullptr) { + android_cat.error() << "Failed to attach thread to JVM!\n"; + return; + } + + // Pipe stdout/stderr to the Android log stream, for convenience. + int pfd[2]; + setvbuf(stdout, 0, _IOLBF, 0); + setvbuf(stderr, 0, _IOLBF, 0); + + pipe(pfd); + dup2(pfd[1], 1); + dup2(pfd[1], 2); + + std::thread t([=] { + ssize_t size; + char buf[4096] = {0}; + char *bufstart = buf; + char *const bufend = buf + sizeof(buf) - 1; + + while ((size = read(pfd[0], bufstart, bufend - bufstart)) > 0) { + bufstart[size] = 0; + bufstart += size; + + while (char *nl = (char *)memchr(buf, '\n', strnlen(buf, bufend - buf))) { + *nl = 0; + __android_log_write(ANDROID_LOG_VERBOSE, "Python", buf); + + // Move everything after the newline to the beginning of the buffer. + memmove(buf, nl + 1, bufend - (nl + 1)); + bufstart -= (nl + 1) - buf; + } + } + }); + + jclass activity_class = env->GetObjectClass(activity->clazz); + + // Get the current Java thread name. This just helps with debugging. + jmethodID methodID = env->GetStaticMethodID(activity_class, "getCurrentThreadName", "()Ljava/lang/String;"); + jstring jthread_name = (jstring) env->CallStaticObjectMethod(activity_class, methodID); + + std::string thread_name; + if (jthread_name != nullptr) { + const char *c_str = env->GetStringUTFChars(jthread_name, nullptr); + thread_name.assign(c_str); + env->ReleaseStringUTFChars(jthread_name, c_str); + } + + // Before we make any Panda calls, we must make the thread known to Panda. + // This will also cause the JNIEnv pointer to be stored on the thread. + // Note that we must keep a reference to this thread around. + PT(Thread) current_thread = Thread::bind_thread(thread_name, "android_app"); + + android_cat.info() + << "New native activity started on " << *current_thread << "\n"; + + // Fetch the data directory. + jmethodID get_appinfo = env->GetMethodID(activity_class, "getApplicationInfo", "()Landroid/content/pm/ApplicationInfo;"); + + jobject appinfo = env->CallObjectMethod(activity->clazz, get_appinfo); + jclass appinfo_class = env->GetObjectClass(appinfo); + + // Fetch the path to the data directory. + jfieldID datadir_field = env->GetFieldID(appinfo_class, "dataDir", "Ljava/lang/String;"); + jstring datadir = (jstring) env->GetObjectField(appinfo, datadir_field); + const char *data_path = env->GetStringUTFChars(datadir, nullptr); + + if (data_path != nullptr) { + Filename::_internal_data_dir = data_path; + android_cat.info() << "Path to data: " << data_path << "\n"; + + env->ReleaseStringUTFChars(datadir, data_path); + } + + // Get the cache directory. Set the model-path to this location. + methodID = env->GetMethodID(activity_class, "getCacheDirString", "()Ljava/lang/String;"); + jstring jcache_dir = (jstring) env->CallObjectMethod(activity->clazz, methodID); + + if (jcache_dir != nullptr) { + const char *cache_dir; + cache_dir = env->GetStringUTFChars(jcache_dir, nullptr); + android_cat.info() << "Path to cache: " << cache_dir << "\n"; + + ConfigVariableFilename model_cache_dir("model-cache-dir", Filename()); + model_cache_dir.set_value(cache_dir); + env->ReleaseStringUTFChars(jcache_dir, cache_dir); + } + + // Get the path to the APK. + methodID = env->GetMethodID(activity_class, "getPackageCodePath", "()Ljava/lang/String;"); + jstring code_path = (jstring) env->CallObjectMethod(activity->clazz, methodID); + + const char *apk_path; + apk_path = env->GetStringUTFChars(code_path, nullptr); + android_cat.info() << "Path to APK: " << apk_path << "\n"; + + // Get the path to the native library. + methodID = env->GetMethodID(activity_class, "getNativeLibraryPath", "()Ljava/lang/String;"); + jstring lib_path_jstr = (jstring) env->CallObjectMethod(activity->clazz, methodID); + + const char *lib_path; + lib_path = env->GetStringUTFChars(lib_path_jstr, nullptr); + android_cat.info() << "Path to native library: " << lib_path << "\n"; + ExecutionEnvironment::set_binary_name(lib_path); + + // Map the blob to memory + void *blob = map_blob(lib_path, (off_t)blobinfo.blob_offset, (size_t)blobinfo.blob_size); + env->ReleaseStringUTFChars(lib_path_jstr, lib_path); + assert(blob != NULL); + + assert(blobinfo.num_pointers <= MAX_NUM_POINTERS); + for (uint32_t i = 0; i < blobinfo.num_pointers; ++i) { + // Only offset if the pointer is non-NULL. Except for the first + // pointer, which may never be NULL and usually (but not always) + // points to the beginning of the blob. + if (i == 0 || blobinfo.pointers[i] != nullptr) { + blobinfo.pointers[i] = (void *)((uintptr_t)blobinfo.pointers[i] + (uintptr_t)blob); + } + } + + // Now load the configuration files. + ConfigPage *page = nullptr; + ConfigPageManager *cp_mgr; + const char *prc_data = (char *)blobinfo.pointers[1]; + if (prc_data != nullptr) { + cp_mgr = ConfigPageManager::get_global_ptr(); + std::istringstream in(prc_data); + page = cp_mgr->make_explicit_page("builtin"); + page->read_prc(in); + } + + // Mount the assets directory. + Filename apk_fn(apk_path); + PT(VirtualFileMountAndroidAsset) asset_mount; + asset_mount = new VirtualFileMountAndroidAsset(app->activity->assetManager, apk_fn); + VirtualFileSystem *vfs = VirtualFileSystem::get_global_ptr(); + + //Filename asset_dir(apk_fn.get_dirname(), "assets"); + Filename asset_dir("/android_asset"); + vfs->mount(asset_mount, asset_dir, 0); + + // Release the apk_path. + env->ReleaseStringUTFChars(code_path, apk_path); + + // Now add the asset directory to the model-path. + //TODO: prevent it from adding the directory multiple times. + get_model_path().append_directory(asset_dir); + + // Offset the pointers in the module table using the base mmap address. + struct _frozen *moddef = (struct _frozen *)blobinfo.pointers[0]; + while (moddef->name) { + moddef->name = (char *)((uintptr_t)moddef->name + (uintptr_t)blob); + if (moddef->code != nullptr) { + moddef->code = (unsigned char *)((uintptr_t)moddef->code + (uintptr_t)blob); + } + //__android_log_print(ANDROID_LOG_DEBUG, "Panda3D", "MOD: %s %p %d\n", moddef->name, (void*)moddef->code, moddef->size); + moddef++; + } + + PyImport_FrozenModules = (struct _frozen *)blobinfo.pointers[0]; + + PyPreConfig preconfig; + PyPreConfig_InitIsolatedConfig(&preconfig); + preconfig.utf8_mode = 1; + PyStatus status = Py_PreInitialize(&preconfig); + if (PyStatus_Exception(status)) { + Py_ExitStatusException(status); + return; + } + + PyConfig config; + PyConfig_InitIsolatedConfig(&config); + config.pathconfig_warnings = 0; /* Suppress errors from getpath.c */ + config.buffered_stdio = 0; + config.configure_c_stdio = 0; + config.write_bytecode = 0; + + status = Py_InitializeFromConfig(&config); + PyConfig_Clear(&config); + if (PyStatus_Exception(status)) { + Py_ExitStatusException(status); + return; + } + + // Fetch the path to the library directory. + jfieldID libdir_field = env->GetFieldID(appinfo_class, "nativeLibraryDir", "Ljava/lang/String;"); + jstring libdir_jstr = (jstring) env->GetObjectField(appinfo, libdir_field); + const char *libdir = env->GetStringUTFChars(libdir_jstr, nullptr); + + if (libdir != nullptr) { + // This is used by the import hook to locate the module libraries. + PyObject *py_native_dir = PyUnicode_FromString(libdir); + PySys_SetObject("_native_library_dir", py_native_dir); + Py_DECREF(py_native_dir); + + if (ExecutionEnvironment::get_dtool_name().empty()) { + std::string dtool_name = std::string(libdir) + "/libp3dtool.so"; + ExecutionEnvironment::set_dtool_name(dtool_name); + android_cat.info() << "Path to dtool: " << dtool_name << "\n"; + } + + env->ReleaseStringUTFChars(libdir_jstr, libdir); + } + + while (!app->destroyRequested) { + // Call the main module. This will not return until the app is done. + android_cat.info() << "Importing __main__\n"; + + int n = PyImport_ImportFrozenModule("__main__"); + if (n == 0) { + Py_FatalError("__main__ not frozen"); + break; + } + if (n < 0) { + PyErr_Print(); + } + + fsync(1); + fsync(2); + sched_yield(); + + if (app->destroyRequested) { + // The app closed responding to a destroy request. + break; + } + + // Ask Android to clean up the activity. + android_cat.info() << "Exited from __main__, finishing activity\n"; + ANativeActivity_finish(activity); + + // We still need to keep an event loop going until Android gives us leave + // to end the process. + int looper_id; + int events; + struct android_poll_source *source; + while ((looper_id = ALooper_pollAll(-1, nullptr, &events, (void**)&source)) >= 0) { + // Process this event, but intercept application command events. + if (looper_id == LOOPER_ID_MAIN) { + int8_t cmd = android_app_read_cmd(app); + android_app_pre_exec_cmd(app, cmd); + android_app_post_exec_cmd(app, cmd); + + // I don't think we can get a resume command after we call finish(), + // but let's handle it just in case. + if (cmd == APP_CMD_RESUME || cmd == APP_CMD_DESTROY) { + break; + } + } else if (source != nullptr) { + source->process(app, source); + } + } + } + + Py_Finalize(); + + android_cat.info() << "Destroy requested, exiting from android_main\n"; + + vfs->unmount(asset_mount); + + if (page != nullptr) { + cp_mgr->delete_explicit_page(page); + } + + unmap_blob(blob); + + // Detach the thread before exiting. + activity->vm->DetachCurrentThread(); +}