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

Commit f7190b65 authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Add serialization methods to whitelist not light greylist"

parents 0753bca0 e9622a3d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -212,8 +212,8 @@ def main(argv):
    move_from_files(args.input_greylists, uncategorized, light_greylist)
    move_from_files(args.input_blacklists, uncategorized, blacklist)

    # Iterate over all uncategorized members and move serialization API to light greylist.
    move_serialization(uncategorized, light_greylist)
    # Iterate over all uncategorized members and move serialization API to whitelist.
    move_serialization(uncategorized, whitelist)

    # Extract package names of members from whitelist and light greylist, which
    # are assumed to have been finalized at this point. Assign all uncategorized
+18 −0
Original line number Diff line number Diff line
@@ -85,5 +85,23 @@ class TestHiddenapiListGeneration(unittest.TestCase):
        self.assertEqual(
            dst, set([ "Lfoo/bar/ClassA;->abc()J", "Lfoo/bar/ClassA;->def()J" ]))

    def test_move_serialization(self):
        # All the entries should be moved apart from the last one
        src = set([ "Lfoo/bar/ClassA;->readObject(Ljava/io/ObjectInputStream;)V",
                    "Lfoo/bar/ClassA;->readObjectNoData()V",
                    "Lfoo/bar/ClassA;->readResolve()Ljava/lang/Object;",
                    "Lfoo/bar/ClassA;->serialVersionUID:J",
                    "Lfoo/bar/ClassA;->serialPersistentFields:[Ljava/io/ObjectStreamField;",
                    "Lfoo/bar/ClassA;->writeObject(Ljava/io/ObjectOutputStream;)V",
                    "Lfoo/bar/ClassA;->writeReplace()Ljava/lang/Object;",
                    # Should not be moved as signature does not match
                    "Lfoo/bar/ClassA;->readObject(Ljava/io/ObjectInputStream;)I"])
        expectedToMove = len(src) - 1
        dst = set()
        packages = set([ "Lfoo/bar/" ])
        move_serialization(src, dst)
        self.assertEqual(len(src), 1)
        self.assertEqual(len(dst), expectedToMove)

if __name__ == '__main__':
    unittest.main()