diff options
author | David Brazdil <dbrazdil@google.com> | 2018-03-26 16:02:23 +0100 |
---|---|---|
committer | David Brazdil <dbrazdil@google.com> | 2018-03-27 16:54:53 +0000 |
commit | 357170b1803ddd8ed57c75f46b8c6d226c464309 (patch) | |
tree | 46d085e4e1899ed6e803fe255f5fdbd42f03a4f8 /Android.mk | |
parent | d21b33d8cadeb3d618e31031939f9d26ab1f6c17 (diff) |
Add serialization methods to hidden API light greylist
This patch adds a build-time rule that adds all members with signatures:
readObject(Ljava/io/ObjectInputStream;)V
readObjectNoData()V
readResolve()Ljava/lang/Object;
serialVersionUID:J
serialPersistentFields:[Ljava/io/ObjectStreamField
writeObject(Ljava/io/ObjectOutputStream;)V
writeReplace()Ljava/lang/Object;
to the hidden API light greylist. This is needed so that apps can retain
the ability to write their own serializers.
Bug: 64382372
Bug: 73255398
Test: make
Change-Id: I0103f47044e957bbff0a39230ff53562f3feddac
Diffstat (limited to 'Android.mk')
-rw-r--r-- | Android.mk | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/Android.mk b/Android.mk index e2f88e8990bd..b630c3f3aa8e 100644 --- a/Android.mk +++ b/Android.mk @@ -869,11 +869,27 @@ include $(BUILD_STATIC_JAVA_LIBRARY) $(eval $(call copy-one-file,frameworks/base/config/hiddenapi-blacklist.txt,\ $(INTERNAL_PLATFORM_HIDDENAPI_BLACKLIST))) +# Automatically add all methods which match the following signatures. +# These need to be greylisted in order to allow applications to write their +# own serializers. +$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST): REGEX_SERIALIZATION := \ + "readObject\(Ljava/io/ObjectInputStream;\)V" \ + "readObjectNoData\(\)V" \ + "readResolve\(\)Ljava/lang/Object;" \ + "serialVersionUID:J" \ + "serialPersistentFields:\[Ljava/io/ObjectStreamField;" \ + "writeObject\(Ljava/io/ObjectOutputStream;\)V" \ + "writeReplace\(\)Ljava/lang/Object;" +$(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST): PRIVATE_API := $(INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE) # Temporarily merge light greylist from two files. Vendor list will become dark # grey once we remove the UI toast. $(INTERNAL_PLATFORM_HIDDENAPI_LIGHT_GREYLIST): frameworks/base/config/hiddenapi-light-greylist.txt \ - frameworks/base/config/hiddenapi-vendor-list.txt - sort $^ > $@ + frameworks/base/config/hiddenapi-vendor-list.txt \ + $(INTERNAL_PLATFORM_PRIVATE_DEX_API_FILE) + sort frameworks/base/config/hiddenapi-light-greylist.txt \ + frameworks/base/config/hiddenapi-vendor-list.txt \ + <(grep -E "\->("$(subst $(space),"|",$(REGEX_SERIALIZATION))")$$" $(PRIVATE_API)) \ + > $@ # Generate dark greylist as private API minus (blacklist plus light greylist). |