diff options
author | 2025-01-09 13:20:42 -0800 | |
---|---|---|
committer | 2025-01-14 10:26:57 -0800 | |
commit | 6434c0301d320233bdc7da77eb800f5e87de07f3 (patch) | |
tree | 49f78664c09070e6bfe38d0da1be4b896994e49d /ravenwood/texts | |
parent | 816c7b4c30dc1da4ee74610fbef934aee3c216fe (diff) |
[ravenwood] Add a tool to convert text policy to annotations
- Add a new command "ravenhelper", which performs different functions
depending on the first argument ("subcommand") just like the git command.
- For now, it has one subcommand "pta" -- policy-to-annotation, which
reads the policy file and add corresponding annotations to the java
source files.
- This will also add classes to ravenwood-annotation-allowed-classes.txt
as needed.
- Use the f/b/r/scripts/pta-framework.sh script to run it.
- For safety and easier testing/debugging, the command actually won't
directly update any files. Instead, it'll generate a shell script which
does so, using sed(1).
Here's an example script: https://paste.googleplex.com/6561708886458368?raw
Bug: 388607679
Flag: EXEMPT host test change only
Test: ./frameworks/base/ravenwood/scripts/pta-framework.sh, and
manually check /tmp/pta.sh
Change-Id: I5dcf078ca47eb373bcaf435ef133335f44bce6b3
Diffstat (limited to 'ravenwood/texts')
-rw-r--r-- | ravenwood/texts/ravenwood-common-policies.txt | 7 | ||||
-rw-r--r-- | ravenwood/texts/ravenwood-framework-policies.txt | 73 | ||||
-rw-r--r-- | ravenwood/texts/ravenwood-services-policies.txt | 21 |
3 files changed, 55 insertions, 46 deletions
diff --git a/ravenwood/texts/ravenwood-common-policies.txt b/ravenwood/texts/ravenwood-common-policies.txt index 83c31512eb70..fd4ea6cf40c2 100644 --- a/ravenwood/texts/ravenwood-common-policies.txt +++ b/ravenwood/texts/ravenwood-common-policies.txt @@ -1,5 +1,8 @@ # Ravenwood "policy" that should apply to all code. +# The "no-pta" marker is used to exclude the lines from "ravenhelper pta", +# which tries to convert policies to annotations. + # Keep all AIDL interfaces class :aidl keepclass @@ -13,8 +16,8 @@ class :sysprops keepclass class :r keepclass # Support APIs not available in standard JRE -class java.io.FileDescriptor keep +class java.io.FileDescriptor # no-pta method getInt$ @com.android.ravenwood.RavenwoodJdkPatch.getInt$ method setInt$ @com.android.ravenwood.RavenwoodJdkPatch.setInt$ -class java.util.LinkedHashMap keep +class java.util.LinkedHashMap # no-pta method eldest @com.android.ravenwood.RavenwoodJdkPatch.eldest diff --git a/ravenwood/texts/ravenwood-framework-policies.txt b/ravenwood/texts/ravenwood-framework-policies.txt index 26b6fe3d82ad..4033782c607e 100644 --- a/ravenwood/texts/ravenwood-framework-policies.txt +++ b/ravenwood/texts/ravenwood-framework-policies.txt @@ -1,62 +1,65 @@ # Ravenwood "policy" file for framework-minus-apex. +# The "no-pta" marker is used to exclude the lines from "ravenhelper pta", +# which tries to convert policies to annotations. + # To avoid VerifyError on nano proto files (b/324063814), we rename nano proto classes. # Note: The "rename" directive must use slashes (/) as a package name separator. rename com/.*/nano/ devicenano/ rename android/.*/nano/ devicenano/ # StatsD auto-generated -class com.android.internal.util.FrameworkStatsLog keepclass +class com.android.internal.util.FrameworkStatsLog keepclass # no-pta # Exported to Mainline modules; cannot use annotations -class com.android.internal.util.FastXmlSerializer keepclass -class com.android.internal.util.FileRotator keepclass -class com.android.internal.util.HexDump keepclass -class com.android.internal.util.IndentingPrintWriter keepclass -class com.android.internal.util.LocalLog keepclass -class com.android.internal.util.MessageUtils keepclass -class com.android.internal.util.TokenBucket keepclass -class android.os.HandlerExecutor keepclass -class android.util.BackupUtils keepclass -class android.util.IndentingPrintWriter keepclass -class android.util.LocalLog keepclass -class android.util.Pair keepclass -class android.util.Rational keepclass +class com.android.internal.util.FastXmlSerializer keepclass # no-pta +class com.android.internal.util.FileRotator keepclass # no-pta +class com.android.internal.util.HexDump keepclass # no-pta +class com.android.internal.util.IndentingPrintWriter keepclass # no-pta +class com.android.internal.util.LocalLog keepclass # no-pta +class com.android.internal.util.MessageUtils keepclass # no-pta +class com.android.internal.util.TokenBucket keepclass # no-pta +class android.os.HandlerExecutor keepclass # no-pta +class android.util.BackupUtils keepclass # no-pta +class android.util.IndentingPrintWriter keepclass # no-pta +class android.util.LocalLog keepclass # no-pta +class android.util.Pair keepclass # no-pta +class android.util.Rational keepclass # no-pta # From modules-utils; cannot use annotations -class com.android.internal.util.Preconditions keepclass -class com.android.internal.logging.InstanceId keepclass -class com.android.internal.logging.InstanceIdSequence keepclass -class com.android.internal.logging.UiEvent keepclass -class com.android.internal.logging.UiEventLogger keepclass +class com.android.internal.util.Preconditions keepclass # no-pta +class com.android.internal.logging.InstanceId keepclass # no-pta +class com.android.internal.logging.InstanceIdSequence keepclass # no-pta +class com.android.internal.logging.UiEvent keepclass # no-pta +class com.android.internal.logging.UiEventLogger keepclass # no-pta # From modules-utils; cannot use annotations -class com.android.modules.utils.BinaryXmlPullParser keepclass -class com.android.modules.utils.BinaryXmlSerializer keepclass -class com.android.modules.utils.FastDataInput keepclass -class com.android.modules.utils.FastDataOutput keepclass -class com.android.modules.utils.ModifiedUtf8 keepclass -class com.android.modules.utils.TypedXmlPullParser keepclass -class com.android.modules.utils.TypedXmlSerializer keepclass +class com.android.modules.utils.BinaryXmlPullParser keepclass # no-pta +class com.android.modules.utils.BinaryXmlSerializer keepclass # no-pta +class com.android.modules.utils.FastDataInput keepclass # no-pta +class com.android.modules.utils.FastDataOutput keepclass # no-pta +class com.android.modules.utils.ModifiedUtf8 keepclass # no-pta +class com.android.modules.utils.TypedXmlPullParser keepclass # no-pta +class com.android.modules.utils.TypedXmlSerializer keepclass # no-pta # Uri -class android.net.Uri keepclass -class android.net.UriCodec keepclass +class android.net.Uri keepclass # no-pta +class android.net.UriCodec keepclass # no-pta # Telephony -class android.telephony.PinResult keepclass +class android.telephony.PinResult keepclass # no-pta # Just enough to support mocking, no further functionality -class android.content.BroadcastReceiver keep +class android.content.BroadcastReceiver keep # no-pta method <init> ()V keep -class android.content.Context keep +class android.content.Context keep # no-pta method <init> ()V keep - method getSystemService (Ljava/lang/Class;)Ljava/lang/Object; keep -class android.content.pm.PackageManager + method getSystemService (Ljava/lang/Class;)Ljava/lang/Object; keep # no-pta +class android.content.pm.PackageManager # no-pta method <init> ()V keep -class android.text.ClipboardManager keep +class android.text.ClipboardManager keep # no-pta method <init> ()V keep # Just enough to allow ResourcesManager to run -class android.hardware.display.DisplayManagerGlobal keep +class android.hardware.display.DisplayManagerGlobal keep # no-pta method getInstance ()Landroid/hardware/display/DisplayManagerGlobal; ignore diff --git a/ravenwood/texts/ravenwood-services-policies.txt b/ravenwood/texts/ravenwood-services-policies.txt index 530e5c8f5986..e3be9afdba5c 100644 --- a/ravenwood/texts/ravenwood-services-policies.txt +++ b/ravenwood/texts/ravenwood-services-policies.txt @@ -1,12 +1,15 @@ # Ravenwood "policy" file for services.core. +# The "no-pta" marker is used to exclude the lines from "ravenhelper pta", +# which tries to convert policies to annotations. + # Auto-generated from XSD -class com.android.server.compat.config.Change keepclass -class com.android.server.compat.config.Config keepclass -class com.android.server.compat.config.XmlParser keepclass -class com.android.server.compat.overrides.ChangeOverrides keepclass -class com.android.server.compat.overrides.OverrideValue keepclass -class com.android.server.compat.overrides.Overrides keepclass -class com.android.server.compat.overrides.RawOverrideValue keepclass -class com.android.server.compat.overrides.XmlParser keepclass -class com.android.server.compat.overrides.XmlWriter keepclass
\ No newline at end of file +class com.android.server.compat.config.Change keepclass # no-pta +class com.android.server.compat.config.Config keepclass # no-pta +class com.android.server.compat.config.XmlParser keepclass # no-pta +class com.android.server.compat.overrides.ChangeOverrides keepclass # no-pta +class com.android.server.compat.overrides.OverrideValue keepclass # no-pta +class com.android.server.compat.overrides.Overrides keepclass # no-pta +class com.android.server.compat.overrides.RawOverrideValue keepclass # no-pta +class com.android.server.compat.overrides.XmlParser keepclass # no-pta +class com.android.server.compat.overrides.XmlWriter keepclass # no-pta
\ No newline at end of file |