Add serialization methods to whitelist not light greylist
Checked the contents of the hiddenapi lists before and after the change and the methods were definitely moved from light greylist to the whitelist. Flashed the device and checked the log and did not see anything out of the ordinary. Test: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py Change-Id: I9b4b2426251e99495f65ae02a3c2c32ce6966625
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user