Преглед изворни кода

Allow obfuscated classes on bootclasspath

Previously, the signature_trie python library would reject classes
which started with a lower case character which in turn caused the
verify_overlaps tool to fail. That meant that it was impossible to
add obfuscated classes (which commonly used lower case characters
for their name) from being used on the bootclasspath.

This change removes that restriction and the accompanying test.

Bug: 265833521
Test: TH and partner testing
Change-Id: I70710484e427f64d79fb30301f3413f3b67b27e7
Paul Duffin пре 1 година
родитељ
комит
0f386bc12b
2 измењених фајлова са 0 додато и 12 уклоњено
  1. 0 4
      scripts/hiddenapi/signature_trie.py
  2. 0 8
      scripts/hiddenapi/signature_trie_test.py

+ 0 - 4
scripts/hiddenapi/signature_trie.py

@@ -150,10 +150,6 @@ class InteriorNode(Node):
                                 f"wildcard '{last_element}' and "
                                 f"member signature '{member[0]}'")
             wildcard = [last_element]
-        elif last_element.islower():
-            raise Exception(f"Invalid signature '{signature}': last element "
-                            f"'{last_element}' is lower case but should be an "
-                            f"upper case class name or wildcard")
         else:
             packages = elements[0:-1]
             # Split the class name into outer / inner classes

+ 0 - 8
scripts/hiddenapi/signature_trie_test.py

@@ -117,14 +117,6 @@ class TestSignatureToElements(unittest.TestCase):
         self.assertEqual(elements, self.signature_to_elements(signature))
         self.assertEqual(signature, self.elements_to_signature(elements))
 
-    def test_invalid_no_class_or_wildcard(self):
-        signature = "java/lang"
-        with self.assertRaises(Exception) as context:
-            self.signature_to_elements(signature)
-        self.assertIn(
-            "last element 'lang' is lower case but should be an "
-            "upper case class name or wildcard", str(context.exception))
-
     def test_non_standard_class_name(self):
         elements = [
             ("package", "javax"),