From 42ce7943e1f213953d9ddfbeee1308d95554509c Mon Sep 17 00:00:00 2001 From: Lee Campbell Date: Fri, 19 Jan 2018 15:08:36 -0800 Subject: Add support for "persist" option Add support for supporting a "persist" option. When true this option witll set bit 0 of the partition table entry flags to 1. This indicates to the bootloader that it should not be deleted during fastboot operations. TEST: Added unittests BUG: 72233168 Change-Id: I7ef9ca2795c81bfa68a803334dc1e1e30e66c7ac --- README | 4 ++ bpt_unittest.py | 20 ++++++ bpttool | 14 +++- test/expected_json_alignment.bpt | 7 ++ test/expected_json_base.bpt | 7 ++ test/expected_json_disk_guid.bpt | 7 ++ test/expected_json_partitions_offset_begin.bpt | 7 ++ test/expected_json_persist.bpt | 81 ++++++++++++++++++++++ test/expected_json_size.bpt | 7 ++ test/expected_json_stacked_change_ab_size.bpt | 7 ++ test/expected_json_stacked_change_flags.bpt | 7 ++ test/expected_json_stacked_disable_ab.bpt | 5 ++ test/expected_json_stacked_ignore.bpt | 6 ++ test/expected_json_stacked_new_partition.bpt | 8 +++ .../expected_json_stacked_new_partition_on_top.bpt | 8 +++ test/expected_json_stacked_override_settings.bpt | 7 ++ test/expected_json_stacked_positions.bpt | 10 +++ test/expected_json_stacked_size.bpt | 7 ++ test/expected_json_suffixes.bpt | 7 ++ test/persist.bpt | 40 +++++++++++ 20 files changed, 265 insertions(+), 1 deletion(-) create mode 100644 test/expected_json_persist.bpt create mode 100644 test/persist.bpt diff --git a/README b/README index eed9542..67c0b43 100644 --- a/README +++ b/README @@ -113,6 +113,10 @@ well-known key/value pairs: flags: A 64-bit integer (decimal or hexadecimal representations are accepted) for GPT flags. Default value is 0. + persist: If 'true', the parition will be marked persistant. This will + set bit 0 of flags to 1. This will OR with the value of + 'flags'. + ignore: If 'true', the partition will not be included in the final output. diff --git a/bpt_unittest.py b/bpt_unittest.py index f42b43a..814e122 100755 --- a/bpt_unittest.py +++ b/bpt_unittest.py @@ -322,6 +322,12 @@ class MakeTableTest(unittest.TestCase): disk_size=bpttool.ParseSize('10 GiB'), disk_guid='01234567-89ab-cdef-0123-00000000002a') + def testPersist(self): + """Checks that persist flags are generated""" + self._MakeTable(['test/persist.bpt'], + 'test/expected_json_persist.bpt', + disk_size=bpttool.ParseSize('10 GiB')) + def testSuffixes(self): """Checks that A/B-suffixes can be changed on the command-line.""" self._MakeTable(['test/base.bpt'], @@ -459,6 +465,20 @@ class QueryPartitionTest(unittest.TestCase): 'userdata', 'flags', False), '0x0420000000000000') + def testQueryPersistTrue(self): + """Checks query for persist.""" + self.assertEqual( + self.bpt.query_partition( + open('test/persist.bpt'), + 'true_persist', 'persist', False), 'True') + + def testQueryPersistFalse(self): + """Checks query for persist.""" + self.assertEqual( + self.bpt.query_partition( + open('test/persist.bpt'), + 'false_persist', 'persist', False), 'False') + def testQuerySizeCollapse(self): """Checks query for size when collapsing A/B partitions.""" self.assertEqual( diff --git a/bpttool b/bpttool index 53b4578..ae4bc8e 100755 --- a/bpttool +++ b/bpttool @@ -44,6 +44,7 @@ JSON_KEYWORD_PARTITIONS_GROW = 'grow' JSON_KEYWORD_PARTITIONS_GUID = 'guid' JSON_KEYWORD_PARTITIONS_TYPE_GUID = 'type_guid' JSON_KEYWORD_PARTITIONS_FLAGS = 'flags' +JSON_KEYWORD_PARTITIONS_PERSIST = 'persist' JSON_KEYWORD_PARTITIONS_IGNORE = 'ignore' JSON_KEYWORD_PARTITIONS_AB = 'ab' JSON_KEYWORD_PARTITIONS_AB_EXPANDED = 'ab_expanded' @@ -56,7 +57,8 @@ QUERY_PARTITION_TYPES = ['size', 'offset', 'guid', 'type_guid', - 'flags'] + 'flags', + 'persist'] BPT_VERSION_MAJOR = 1 BPT_VERSION_MINOR = 0 @@ -231,6 +233,8 @@ class Partition(object): type_guid: Type GUID (RFC 4122 compliant) as a string or a known type from the |KNOWN_TYPE_GUIDS| map. flags: GUID flags. + persist: If true, sets bit 0 of flags indicating that this partition should + not be deleted by the bootloader. ab: If True, the partition is an A/B partition. ab_expanded: If True, the A/B partitions have been generated. ignore: If True, the partition should not be included in the final output. @@ -246,6 +250,7 @@ class Partition(object): self.guid = None self.type_guid = None self.flags = 0 + self.persist = False self.ab = False self.ab_expanded = False self.ignore = False @@ -287,6 +292,11 @@ class Partition(object): value = pobj.get(JSON_KEYWORD_PARTITIONS_FLAGS) if value is not None: self.flags = ParseNumber(value) + value = pobj.get(JSON_KEYWORD_PARTITIONS_PERSIST) + if value is not None: + self.persist = value + if value: + self.flags = self.flags | 0x1 value = pobj.get(JSON_KEYWORD_PARTITIONS_POSITION) if value is not None: self.position = ParseNumber(value) @@ -508,6 +518,7 @@ class Bpt(object): ' "' + JSON_KEYWORD_PARTITIONS_GUID + '": "{}",\n' ' "' + JSON_KEYWORD_PARTITIONS_TYPE_GUID + '": "{}",\n' ' "' + JSON_KEYWORD_PARTITIONS_FLAGS + '": "{:#018x}",\n' + ' "' + JSON_KEYWORD_PARTITIONS_PERSIST + '": {},\n' ' "' + JSON_KEYWORD_PARTITIONS_IGNORE + '": {},\n' ' "' + JSON_KEYWORD_PARTITIONS_AB + '": {},\n' ' "' + JSON_KEYWORD_PARTITIONS_AB_EXPANDED + '": {},\n' @@ -519,6 +530,7 @@ class Bpt(object): p.guid, p.type_guid, p.flags, + 'true' if p.persist else 'false', 'true' if p.ignore else 'false', 'true' if p.ab else 'false', 'true' if p.ab_expanded else 'false', diff --git a/test/expected_json_alignment.bpt b/test/expected_json_alignment.bpt index 1996359..f34b9ed 100644 --- a/test/expected_json_alignment.bpt +++ b/test/expected_json_alignment.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_base.bpt b/test/expected_json_base.bpt index 189684a..2a135f1 100644 --- a/test/expected_json_base.bpt +++ b/test/expected_json_base.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_disk_guid.bpt b/test/expected_json_disk_guid.bpt index 82265e7..9246ebf 100644 --- a/test/expected_json_disk_guid.bpt +++ b/test/expected_json_disk_guid.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_partitions_offset_begin.bpt b/test/expected_json_partitions_offset_begin.bpt index bb66b19..4964dab 100644 --- a/test/expected_json_partitions_offset_begin.bpt +++ b/test/expected_json_partitions_offset_begin.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_persist.bpt b/test/expected_json_persist.bpt new file mode 100644 index 0000000..0d3b263 --- /dev/null +++ b/test/expected_json_persist.bpt @@ -0,0 +1,81 @@ +{ + "settings": { + "ab_suffixes": ["_a", "_b"], + "partitions_offset_begin": 0, + "disk_size": 10737418240, + "disk_alignment": 4096, + "disk_guid": "01234567-89ab-cdef-0123-000000000000" + }, + "partitions": [ + { + "label": "no_persist", + "offset": 20480, + "size": 134217728, + "grow": false, + "guid": "01234567-89ab-cdef-0123-000000000001", + "type_guid": "bb499290-b57e-49f6-bf41-190386693794", + "flags": "0x0000000000000000", + "persist": false, + "ignore": false, + "ab": false, + "ab_expanded": false, + "position": 1 + }, + { + "label": "false_persist", + "offset": 134238208, + "size": 134217728, + "grow": false, + "guid": "01234567-89ab-cdef-0123-000000000002", + "type_guid": "bb499290-b57e-49f6-bf41-190386693794", + "flags": "0x0000000000000000", + "persist": false, + "ignore": false, + "ab": false, + "ab_expanded": false, + "position": 2 + }, + { + "label": "true_persist", + "offset": 268455936, + "size": 134217728, + "grow": false, + "guid": "01234567-89ab-cdef-0123-000000000003", + "type_guid": "bb499290-b57e-49f6-bf41-190386693794", + "flags": "0x0000000000000001", + "persist": true, + "ignore": false, + "ab": false, + "ab_expanded": false, + "position": 3 + }, + { + "label": "false_persist_with_flags", + "offset": 402673664, + "size": 134217728, + "grow": false, + "guid": "01234567-89ab-cdef-0123-000000000004", + "type_guid": "bb499290-b57e-49f6-bf41-190386693794", + "flags": "0x0000000000000010", + "persist": false, + "ignore": false, + "ab": false, + "ab_expanded": false, + "position": 4 + }, + { + "label": "true_persist_with_flags", + "offset": 536891392, + "size": 134217728, + "grow": false, + "guid": "01234567-89ab-cdef-0123-000000000005", + "type_guid": "bb499290-b57e-49f6-bf41-190386693794", + "flags": "0x0000000000000011", + "persist": true, + "ignore": false, + "ab": false, + "ab_expanded": false, + "position": 5 + } + ] +} diff --git a/test/expected_json_size.bpt b/test/expected_json_size.bpt index b72452f..d31ab10 100644 --- a/test/expected_json_size.bpt +++ b/test/expected_json_size.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_change_ab_size.bpt b/test/expected_json_stacked_change_ab_size.bpt index be02d8f..0d16099 100644 --- a/test/expected_json_stacked_change_ab_size.bpt +++ b/test/expected_json_stacked_change_ab_size.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_change_flags.bpt b/test/expected_json_stacked_change_flags.bpt index 0ae8461..094e4bb 100644 --- a/test/expected_json_stacked_change_flags.bpt +++ b/test/expected_json_stacked_change_flags.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0420000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_disable_ab.bpt b/test/expected_json_stacked_disable_ab.bpt index e980b36..0558206 100644 --- a/test/expected_json_stacked_disable_ab.bpt +++ b/test/expected_json_stacked_disable_ab.bpt @@ -1,6 +1,7 @@ { "settings": { "ab_suffixes": ["_a", "_b"], + "partitions_offset_begin": 0, "disk_size": 10737418240, "disk_alignment": 4096, "disk_guid": "01234567-89ab-cdef-0123-000000000000" @@ -14,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -27,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -40,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -53,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_ignore.bpt b/test/expected_json_stacked_ignore.bpt index 858162a..9fac092 100644 --- a/test/expected_json_stacked_ignore.bpt +++ b/test/expected_json_stacked_ignore.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, diff --git a/test/expected_json_stacked_new_partition.bpt b/test/expected_json_stacked_new_partition.bpt index 0ca2443..5553c60 100644 --- a/test/expected_json_stacked_new_partition.bpt +++ b/test/expected_json_stacked_new_partition.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -106,6 +113,7 @@ "guid": "01234567-89ab-cdef-0123-000000000008", "type_guid": "ebd0a0a2-b9e5-4433-87c0-68b6b72699c7", "flags": "0x8000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_new_partition_on_top.bpt b/test/expected_json_stacked_new_partition_on_top.bpt index 79c3fdc..cd1d18e 100644 --- a/test/expected_json_stacked_new_partition_on_top.bpt +++ b/test/expected_json_stacked_new_partition_on_top.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -106,6 +113,7 @@ "guid": "01234567-89ab-cdef-0123-000000000008", "type_guid": "0fc63daf-8483-4772-8e79-3d69d8477de4", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_override_settings.bpt b/test/expected_json_stacked_override_settings.bpt index d1c7b7d..ab40651 100644 --- a/test/expected_json_stacked_override_settings.bpt +++ b/test/expected_json_stacked_override_settings.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_positions.bpt b/test/expected_json_stacked_positions.bpt index 0c11be3..8469bec 100644 --- a/test/expected_json_stacked_positions.bpt +++ b/test/expected_json_stacked_positions.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "314f99d5-b2bf-4883-8d03-e2f2ce507d6a", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "314f99d5-b2bf-4883-8d03-e2f2ce507d6a", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "314f99d5-b2bf-4883-8d03-e2f2ce507d6a", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -106,6 +113,7 @@ "guid": "01234567-89ab-cdef-0123-000000000008", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -119,6 +127,7 @@ "guid": "01234567-89ab-cdef-0123-000000000009", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -132,6 +141,7 @@ "guid": "01234567-89ab-cdef-0123-00000000000a", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_stacked_size.bpt b/test/expected_json_stacked_size.bpt index eb089da..43837cc 100644 --- a/test/expected_json_stacked_size.bpt +++ b/test/expected_json_stacked_size.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/expected_json_suffixes.bpt b/test/expected_json_suffixes.bpt index 1e15d5c..ec50d5d 100644 --- a/test/expected_json_suffixes.bpt +++ b/test/expected_json_suffixes.bpt @@ -15,6 +15,7 @@ "guid": "01234567-89ab-cdef-0123-000000000001", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -28,6 +29,7 @@ "guid": "01234567-89ab-cdef-0123-000000000002", "type_guid": "bb499290-b57e-49f6-bf41-190386693794", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -41,6 +43,7 @@ "guid": "01234567-89ab-cdef-0123-000000000003", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -54,6 +57,7 @@ "guid": "01234567-89ab-cdef-0123-000000000004", "type_guid": "0f2778c4-5cc1-4300-8670-6c88b7e57ed6", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -67,6 +71,7 @@ "guid": "01234567-89ab-cdef-0123-000000000005", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -80,6 +85,7 @@ "guid": "01234567-89ab-cdef-0123-000000000006", "type_guid": "e99d84d7-2c1b-44cf-8c58-effae2dc2558", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": true, "ab_expanded": true, @@ -93,6 +99,7 @@ "guid": "01234567-89ab-cdef-0123-000000000007", "type_guid": "0bb7e6ed-4424-49c0-9372-7fbab465ab4c", "flags": "0x0000000000000000", + "persist": false, "ignore": false, "ab": false, "ab_expanded": false, diff --git a/test/persist.bpt b/test/persist.bpt new file mode 100644 index 0000000..06f39d4 --- /dev/null +++ b/test/persist.bpt @@ -0,0 +1,40 @@ +{ + "partitions": [ + { + "label": "no_persist", + "size": "128 MiB", + "position": 1, + "type_guid": "brillo_boot" + }, + { + "label": "false_persist", + "size": "128 MiB", + "position": 2, + "persist": false, + "type_guid": "brillo_boot" + }, + { + "label": "true_persist", + "size": "128 MiB", + "position": 3, + "persist": true, + "type_guid": "brillo_boot" + }, + { + "label": "false_persist_with_flags", + "size": "128 MiB", + "flags": "0x10", + "persist": false, + "position": 4, + "type_guid": "brillo_boot" + }, + { + "label": "true_persist_with_flags", + "size": "128 MiB", + "flags": "0x10", + "persist": true, + "position": 5, + "type_guid": "brillo_boot" + } + ] +} -- cgit v1.2.3