diff --git a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/PhoneNumberMatch.java b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/PhoneNumberMatch.java
index 5503bd2..ab63f6d 100644
--- a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/PhoneNumberMatch.java
+++ b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/PhoneNumberMatch.java
@@ -81,25 +81,25 @@
   }
 
   /** Returns the phone number matched by the receiver. */
-  @android.compat.annotation.UnsupportedAppUsage
+  @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
   public PhoneNumber number() {
     return number;
   }
 
   /** Returns the start index of the matched phone number within the searched text. */
-  @android.compat.annotation.UnsupportedAppUsage
+  @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
   public int start() {
     return start;
   }
 
   /** Returns the exclusive end index of the matched phone number within the searched text. */
-  @android.compat.annotation.UnsupportedAppUsage
+  @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
   public int end() {
     return start + rawString.length();
   }
 
   /** Returns the raw string matched as a phone number in the searched text. */
-  @android.compat.annotation.UnsupportedAppUsage
+  @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
   public String rawString() {
     return rawString;
   }
diff --git a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonemetadata.java b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonemetadata.java
index 3527ae1..966ed39 100644
--- a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonemetadata.java
+++ b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonemetadata.java
@@ -87,7 +87,7 @@
     private boolean hasPattern;
     private String pattern_ = "";
     public boolean hasPattern() { return hasPattern; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getPattern() { return pattern_; }
     public NumberFormat setPattern(String value) {
       hasPattern = true;
@@ -99,7 +99,7 @@
     private boolean hasFormat;
     private String format_ = "";
     public boolean hasFormat() { return hasFormat; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getFormat() { return format_; }
     public NumberFormat setFormat(String value) {
       hasFormat = true;
@@ -112,9 +112,9 @@
     public java.util.List<String> leadingDigitPatterns() {
       return leadingDigitsPattern_;
     }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public int leadingDigitsPatternSize() { return leadingDigitsPattern_.size(); }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getLeadingDigitsPattern(int index) {
       return leadingDigitsPattern_.get(index);
     }
@@ -130,7 +130,7 @@
     private boolean hasNationalPrefixFormattingRule;
     private String nationalPrefixFormattingRule_ = "";
     public boolean hasNationalPrefixFormattingRule() { return hasNationalPrefixFormattingRule; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getNationalPrefixFormattingRule() { return nationalPrefixFormattingRule_; }
     public NumberFormat setNationalPrefixFormattingRule(String value) {
       hasNationalPrefixFormattingRule = true;
@@ -161,7 +161,7 @@
     private String domesticCarrierCodeFormattingRule_ = "";
     public boolean hasDomesticCarrierCodeFormattingRule() {
       return hasDomesticCarrierCodeFormattingRule; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getDomesticCarrierCodeFormattingRule() {
       return domesticCarrierCodeFormattingRule_; }
     public NumberFormat setDomesticCarrierCodeFormattingRule(String value) {
@@ -250,7 +250,7 @@
     private boolean hasNationalNumberPattern;
     private String nationalNumberPattern_ = "";
     public boolean hasNationalNumberPattern() { return hasNationalNumberPattern; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getNationalNumberPattern() { return nationalNumberPattern_; }
     public PhoneNumberDesc setNationalNumberPattern(String value) {
       hasNationalNumberPattern = true;
@@ -393,7 +393,7 @@
     private boolean hasGeneralDesc;
     private PhoneNumberDesc generalDesc_ = null;
     public boolean hasGeneralDesc() { return hasGeneralDesc; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public PhoneNumberDesc getGeneralDesc() { return generalDesc_; }
     public PhoneMetadata setGeneralDesc(PhoneNumberDesc value) {
       if (value == null) {
@@ -643,7 +643,7 @@
     private boolean hasCountryCode;
     private int countryCode_ = 0;
     public boolean hasCountryCode() { return hasCountryCode; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public int getCountryCode() { return countryCode_; }
     public PhoneMetadata setCountryCode(int value) {
       hasCountryCode = true;
@@ -681,7 +681,7 @@
     // optional string national_prefix = 12;
     private boolean hasNationalPrefix;
     private String nationalPrefix_ = "";
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public boolean hasNationalPrefix() { return hasNationalPrefix; }
     public String getNationalPrefix() { return nationalPrefix_; }
     public PhoneMetadata setNationalPrefix(String value) {
@@ -698,9 +698,9 @@
     // optional string preferred_extn_prefix = 13;
     private boolean hasPreferredExtnPrefix;
     private String preferredExtnPrefix_ = "";
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public boolean hasPreferredExtnPrefix() { return hasPreferredExtnPrefix; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getPreferredExtnPrefix() { return preferredExtnPrefix_; }
     public PhoneMetadata setPreferredExtnPrefix(String value) {
       hasPreferredExtnPrefix = true;
@@ -717,7 +717,7 @@
     private boolean hasNationalPrefixForParsing;
     private String nationalPrefixForParsing_ = "";
     public boolean hasNationalPrefixForParsing() { return hasNationalPrefixForParsing; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getNationalPrefixForParsing() { return nationalPrefixForParsing_; }
     public PhoneMetadata setNationalPrefixForParsing(String value) {
       hasNationalPrefixForParsing = true;
@@ -729,7 +729,7 @@
     private boolean hasNationalPrefixTransformRule;
     private String nationalPrefixTransformRule_ = "";
     public boolean hasNationalPrefixTransformRule() { return hasNationalPrefixTransformRule; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getNationalPrefixTransformRule() { return nationalPrefixTransformRule_; }
     public PhoneMetadata setNationalPrefixTransformRule(String value) {
       hasNationalPrefixTransformRule = true;
@@ -760,7 +760,7 @@
 
     // repeated NumberFormat number_format = 19;
     private java.util.List<NumberFormat> numberFormat_ = new java.util.ArrayList<NumberFormat>();
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public java.util.List<NumberFormat> numberFormats() {
       return numberFormat_;
     }
@@ -779,7 +779,7 @@
     // repeated NumberFormat intl_number_format = 20;
     private java.util.List<NumberFormat> intlNumberFormat_ =
         new java.util.ArrayList<NumberFormat>();
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public java.util.List<NumberFormat> intlNumberFormats() {
       return intlNumberFormat_;
     }
@@ -1154,7 +1154,7 @@
    */
   public static class PhoneMetadataCollection implements Externalizable {
     private static final long serialVersionUID = 1;
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public PhoneMetadataCollection() {}
 
     /**
@@ -1175,7 +1175,7 @@
     // repeated PhoneMetadata metadata = 1;
     private java.util.List<PhoneMetadata> metadata_ = new java.util.ArrayList<PhoneMetadata>();
 
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public java.util.List<PhoneMetadata> getMetadataList() {
       return metadata_;
     }
diff --git a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonenumber.java b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonenumber.java
index ccd46a0..2e69ffa 100644
--- a/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonenumber.java
+++ b/repackaged/libphonenumber/src/com/android/i18n/phonenumbers/Phonenumber.java
@@ -67,7 +67,7 @@
       countryCode_ = value;
       return this;
     }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public PhoneNumber clearCountryCode() {
       hasCountryCode = false;
       countryCode_ = 0;
@@ -94,9 +94,9 @@
     // optional string extension = 3;
     private boolean hasExtension;
     private java.lang.String extension_ = "";
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public boolean hasExtension() { return hasExtension; }
-    @android.compat.annotation.UnsupportedAppUsage
+    @android.compat.annotation.UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
     public String getExtension() { return extension_; }
     public PhoneNumber setExtension(String value) {
       if (value == null) {
diff --git a/srcgen/unsupported-app-usage.json b/srcgen/unsupported-app-usage.json
index 823f4e1..7560994 100644
--- a/srcgen/unsupported-app-usage.json
+++ b/srcgen/unsupported-app-usage.json
@@ -23,58 +23,94 @@
     "@location": "method:com.android.i18n.phonenumbers.NumberParseException#getErrorType()"
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getDomesticCarrierCodeFormattingRule()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getDomesticCarrierCodeFormattingRule()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getFormat()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getFormat()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getLeadingDigitsPattern(int)"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getLeadingDigitsPattern(int)",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getNationalPrefixFormattingRule()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getNationalPrefixFormattingRule()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getPattern()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#getPattern()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#leadingDigitsPatternSize()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$NumberFormat#leadingDigitsPatternSize()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getCountryCode()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getCountryCode()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getGeneralDesc()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getGeneralDesc()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getNationalPrefixForParsing()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getNationalPrefixForParsing()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getNationalPrefixTransformRule()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getNationalPrefixTransformRule()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getPreferredExtnPrefix()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#getPreferredExtnPrefix()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#hasNationalPrefix()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#hasNationalPrefix()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#hasPreferredExtnPrefix()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#hasPreferredExtnPrefix()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#intlNumberFormats()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#intlNumberFormats()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#numberFormats()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadata#numberFormats()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadataCollection#PhoneMetadataCollection()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadataCollection#PhoneMetadataCollection()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadataCollection#getMetadataList()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneMetadataCollection#getMetadataList()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneNumberDesc#getNationalNumberPattern()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonemetadata$PhoneNumberDesc#getNationalNumberPattern()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
     "@location": "enumConstant:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber$CountryCodeSource#FROM_DEFAULT_COUNTRY"
@@ -93,7 +129,9 @@
     "implicitMember": "values()[Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;"
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#clearCountryCode()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#clearCountryCode()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
     "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#getCountryCode()"
@@ -102,7 +140,9 @@
     "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#getCountryCodeSource()"
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#getExtension()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#getExtension()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
     "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#getNationalNumber()"
@@ -111,19 +151,29 @@
     "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#hasCountryCode()"
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#hasExtension()"
+    "@location": "method:com.android.i18n.phonenumbers.Phonenumber$PhoneNumber#hasExtension()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#end()"
+    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#end()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#number()"
+    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#number()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#rawString()"
+    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#rawString()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
-    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#start()"
+    "@location": "method:com.android.i18n.phonenumbers.PhoneNumberMatch#start()",
+    "maxTargetSdk": 30,
+    "trackingBug": 170729553
   },
   {
     "@location": "enumConstant:com.android.i18n.phonenumbers.PhoneNumberUtil$Leniency#POSSIBLE"
@@ -245,4 +295,4 @@
   {
     "@location": "method:com.android.i18n.phonenumbers.PhoneNumberUtil#isValidNumber(PhoneNumber)"
   }
-]
\ No newline at end of file
+]
