Jeongik Cha | 4d8477e | 2024-10-30 13:27:51 +0900 | [diff] [blame] | 1 | ##---------------Begin: proguard configuration for Gson ---------- |
| 2 | # Gson uses generic type information stored in a class file when working with fields. Proguard |
| 3 | # removes such information by default, so configure it to keep all of it. |
| 4 | -keepattributes Signature |
| 5 | |
| 6 | # For using GSON @Expose annotation |
| 7 | -keepattributes *Annotation* |
| 8 | |
| 9 | # Gson specific classes |
| 10 | -dontwarn sun.misc.** |
| 11 | #-keep class com.google.gson.stream.** { *; } |
| 12 | |
| 13 | # Application classes that will be serialized/deserialized over Gson |
Seungjae Yoo | 675f133 | 2024-11-20 19:29:05 +0900 | [diff] [blame] | 14 | -keep class com.android.virtualization.terminal.ConfigJson { <fields>; } |
| 15 | -keep class com.android.virtualization.terminal.ConfigJson$* { <fields>; } |
Jeongik Cha | 4d8477e | 2024-10-30 13:27:51 +0900 | [diff] [blame] | 16 | |
| 17 | # Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory, |
| 18 | # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) |
Christoffer Adamsen | 1353773 | 2025-01-06 17:22:22 +0100 | [diff] [blame^] | 19 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 20 | -keep class * extends com.google.gson.TypeAdapter { |
| 21 | void <init>(); |
| 22 | } |
| 23 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 24 | -keep class * implements com.google.gson.TypeAdapterFactory { |
| 25 | void <init>(); |
| 26 | } |
| 27 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 28 | -keep class * implements com.google.gson.JsonSerializer { |
| 29 | void <init>(); |
| 30 | } |
| 31 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 32 | -keep class * implements com.google.gson.JsonDeserializer { |
| 33 | void <init>(); |
| 34 | } |
Jeongik Cha | 4d8477e | 2024-10-30 13:27:51 +0900 | [diff] [blame] | 35 | |
| 36 | # Prevent R8 from leaving Data object members always null |
| 37 | -keepclassmembers,allowobfuscation class * { |
| 38 | @com.google.gson.annotations.SerializedName <fields>; |
Jeongik Cha | 4a8ee3a | 2024-09-20 18:06:29 +0900 | [diff] [blame] | 39 | } |
Jeongik Cha | 4d8477e | 2024-10-30 13:27:51 +0900 | [diff] [blame] | 40 | |
| 41 | # Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher. |
Christoffer Adamsen | 1353773 | 2025-01-06 17:22:22 +0100 | [diff] [blame^] | 42 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 43 | -keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken { |
| 44 | void <init>(); |
| 45 | } |
| 46 | # TODO(b/373579455): Evaluate if <init> needs to be kept. |
| 47 | -keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken { |
| 48 | void <init>(); |
| 49 | } |
Jeongik Cha | 4d8477e | 2024-10-30 13:27:51 +0900 | [diff] [blame] | 50 | |
Jiyong Park | 6a2a4dc | 2024-11-05 07:33:00 +0900 | [diff] [blame] | 51 | ##---------------End: proguard configuration for Gson ---------- |