Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5cc16753 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Convert fs_config_generator.py to python 3" am: e9d0a7f5 am: 65e78e47

parents 98646600 65e78e47
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
@@ -43,14 +43,6 @@ cc_binary_host {
python_binary_host {
    name: "fs_config_generator",
    srcs: ["fs_config_generator.py"],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

python_test_host {
@@ -60,14 +52,6 @@ python_test_host {
        "test_fs_config_generator.py",
        "fs_config_generator.py",
    ],
    version: {
        py2: {
            enabled: true,
        },
        py3: {
            enabled: false,
        },
    },
}

target_fs_config_gen_filegroup {
+29 −29
Original line number Diff line number Diff line
#!/usr/bin/env python2
#!/usr/bin/env python3
"""Generates config files for Android file system properties.

This script is used for generating configuration files for configuring
@@ -11,7 +11,7 @@ Further documentation can be found in the README.
"""

import argparse
import ConfigParser
import configparser
import ctypes
import re
import sys
@@ -463,7 +463,7 @@ class AIDHeaderParser(object):
        # No core AIDs should be within any oem range.
        for aid in self._aid_value_to_name:
            for ranges in self._ranges.values():
                if Utils.in_any_range(aid, ranges):
                if Utils.in_any_range(int(aid, 0), ranges):
                    name = self._aid_value_to_name[aid]
                    raise ValueError(
                        'AID "%s" value: %u within reserved OEM Range: "%s"' %
@@ -569,7 +569,7 @@ class FSConfigFileParser(object):
        # override previous
        # sections.

        config = ConfigParser.ConfigParser()
        config = configparser.ConfigParser()
        config.read(file_name)

        for section in config.sections():
@@ -613,7 +613,7 @@ class FSConfigFileParser(object):

        ranges = None

        partitions = self._ranges.keys()
        partitions = list(self._ranges.keys())
        partitions.sort(key=len, reverse=True)
        for partition in partitions:
            if aid.friendly.startswith(partition):
@@ -1073,7 +1073,7 @@ class FSConfigGen(BaseGenerator):
        user_binary = bytearray(ctypes.c_uint16(int(user, 0)))
        group_binary = bytearray(ctypes.c_uint16(int(group, 0)))
        caps_binary = bytearray(ctypes.c_uint64(caps_value))
        path_binary = ctypes.create_string_buffer(path,
        path_binary = ctypes.create_string_buffer(path.encode(),
                                                  path_length_aligned_64).raw

        out_file.write(length_binary)
@@ -1169,21 +1169,21 @@ class AIDArrayGen(BaseGenerator):
        hdr = AIDHeaderParser(args['hdrfile'])
        max_name_length = max(len(aid.friendly) + 1 for aid in hdr.aids)

        print AIDArrayGen._GENERATED
        print
        print AIDArrayGen._INCLUDE
        print
        print AIDArrayGen._STRUCT_FS_CONFIG % max_name_length
        print
        print AIDArrayGen._OPEN_ID_ARRAY
        print(AIDArrayGen._GENERATED)
        print()
        print(AIDArrayGen._INCLUDE)
        print()
        print(AIDArrayGen._STRUCT_FS_CONFIG % max_name_length)
        print()
        print(AIDArrayGen._OPEN_ID_ARRAY)

        for aid in hdr.aids:
            print AIDArrayGen._ID_ENTRY % (aid.friendly, aid.identifier)
            print(AIDArrayGen._ID_ENTRY % (aid.friendly, aid.identifier))

        print AIDArrayGen._CLOSE_FILE_STRUCT
        print
        print AIDArrayGen._COUNT
        print
        print(AIDArrayGen._CLOSE_FILE_STRUCT)
        print()
        print(AIDArrayGen._COUNT)
        print()


@generator('oemaid')
@@ -1225,15 +1225,15 @@ class OEMAidGen(BaseGenerator):

        parser = FSConfigFileParser(args['fsconfig'], hdr_parser.ranges)

        print OEMAidGen._GENERATED
        print(OEMAidGen._GENERATED)

        print OEMAidGen._FILE_IFNDEF_DEFINE
        print(OEMAidGen._FILE_IFNDEF_DEFINE)

        for aid in parser.aids:
            self._print_aid(aid)
            print
            print()

        print OEMAidGen._FILE_ENDIF
        print(OEMAidGen._FILE_ENDIF)

    def _print_aid(self, aid):
        """Prints a valid #define AID identifier to stdout.
@@ -1245,10 +1245,10 @@ class OEMAidGen(BaseGenerator):
        # print the source file location of the AID
        found_file = aid.found
        if found_file != self._old_file:
            print OEMAidGen._FILE_COMMENT % found_file
            print(OEMAidGen._FILE_COMMENT % found_file)
            self._old_file = found_file

        print OEMAidGen._GENERIC_DEFINE % (aid.identifier, aid.value)
        print(OEMAidGen._GENERIC_DEFINE % (aid.identifier, aid.value))


@generator('passwd')
@@ -1292,7 +1292,7 @@ class PasswdGen(BaseGenerator):
            return

        aids_by_partition = {}
        partitions = hdr_parser.ranges.keys()
        partitions = list(hdr_parser.ranges.keys())
        partitions.sort(key=len, reverse=True)

        for aid in aids:
@@ -1331,7 +1331,7 @@ class PasswdGen(BaseGenerator):
        except ValueError as exception:
            sys.exit(exception)

        print "%s::%s:%s::/:%s" % (logon, uid, uid, aid.login_shell)
        print("%s::%s:%s::/:%s" % (logon, uid, uid, aid.login_shell))


@generator('group')
@@ -1356,7 +1356,7 @@ class GroupGen(PasswdGen):
        except ValueError as exception:
            sys.exit(exception)

        print "%s::%s:" % (logon, uid)
        print("%s::%s:" % (logon, uid))


@generator('print')
@@ -1379,7 +1379,7 @@ class PrintGen(BaseGenerator):
        aids.sort(key=lambda item: int(item.normalized_value))

        for aid in aids:
            print '%s %s' % (aid.identifier, aid.normalized_value)
            print('%s %s' % (aid.identifier, aid.normalized_value))


def main():
@@ -1393,7 +1393,7 @@ def main():
    gens = generator.get()

    # for each gen, instantiate and add them as an option
    for name, gen in gens.iteritems():
    for name, gen in gens.items():

        generator_option_parser = subparser.add_parser(name, help=gen.__doc__)
        generator_option_parser.set_defaults(which=name)
+14 −14
Original line number Diff line number Diff line
#!/usr/bin/env python
#!/usr/bin/env python3
"""Unit test suite for the fs_config_genertor.py tool."""

import tempfile
@@ -64,7 +64,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_good(self):
        """Test AID Header Parser good input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_FOO 1000
@@ -91,7 +91,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_good_unordered(self):
        """Test AID Header Parser good unordered input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_FOO 1000
@@ -118,7 +118,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_aid(self):
        """Test AID Header Parser bad aid input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_FOO "bad"
@@ -131,7 +131,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_oem_range(self):
        """Test AID Header Parser bad oem range input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_OEM_RESERVED_START 2900
@@ -145,7 +145,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_oem_range_no_end(self):
        """Test AID Header Parser bad oem range (no end) input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_OEM_RESERVED_START 2900
@@ -158,7 +158,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_oem_range_no_start(self):
        """Test AID Header Parser bad oem range (no start) input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_OEM_RESERVED_END 2900
@@ -171,7 +171,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_oem_range_duplicated(self):
        """Test AID Header Parser bad oem range (no start) input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_OEM_RESERVED_START 2000
@@ -187,7 +187,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_oem_range_mismatch_start_end(self):
        """Test AID Header Parser bad oem range mismatched input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_OEM_RESERVED_START 2900
@@ -201,7 +201,7 @@ class Tests(unittest.TestCase):
    def test_aid_header_parser_bad_duplicate_ranges(self):
        """Test AID Header Parser exits cleanly on duplicate AIDs"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_FOO 100
@@ -222,7 +222,7 @@ class Tests(unittest.TestCase):
          - https://android-review.googlesource.com/#/c/313169
        """

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                #define AID_APP              10000 /* TODO: switch users over to AID_APP_START */
@@ -257,7 +257,7 @@ class Tests(unittest.TestCase):
    def test_fs_config_file_parser_good(self):
        """Test FSConfig Parser good input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                [/system/bin/file]
@@ -305,7 +305,7 @@ class Tests(unittest.TestCase):
    def test_fs_config_file_parser_bad(self):
        """Test FSConfig Parser bad input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                [/system/bin/file]
@@ -319,7 +319,7 @@ class Tests(unittest.TestCase):
    def test_fs_config_file_parser_bad_aid_range(self):
        """Test FSConfig Parser bad aid range value input file"""

        with tempfile.NamedTemporaryFile() as temp_file:
        with tempfile.NamedTemporaryFile(mode='w') as temp_file:
            temp_file.write(
                textwrap.dedent("""
                [AID_OEM1]