1*795d594fSAndroid Build Coastguard WorkerSaving Field object (ID: 0) public static java.lang.Class art.Transform1975.CUR_CLASS for later 2*795d594fSAndroid Build Coastguard WorkerSaving Field object (ID: 1) public static byte[] art.Transform1975.REDEFINED_DEX_BYTES for later 3*795d594fSAndroid Build Coastguard WorkerSaving MethodHandle object (ID: 2) MethodHandle()Class for later 4*795d594fSAndroid Build Coastguard WorkerSaving MethodHandle object (ID: 3) MethodHandle()byte[] for later 5*795d594fSAndroid Build Coastguard WorkerSaving writable MethodHandle (ID: 4) MethodHandle(Class)void for later 6*795d594fSAndroid Build Coastguard WorkerReading fields before redefinition 7*795d594fSAndroid Build Coastguard WorkerReading with reflection. 8*795d594fSAndroid Build Coastguard Workerpublic static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 9*795d594fSAndroid Build Coastguard Workerpublic static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 10*795d594fSAndroid Build Coastguard WorkerReading normally in same class. 11*795d594fSAndroid Build Coastguard WorkerORIGINAL VALUE CUR_CLASS: class art.Transform1975 12*795d594fSAndroid Build Coastguard WorkerORIGINAL VALUE REDEFINED_DEX_BYTES: ZGV4CjAzNQDNGFvYlmyIt+u4bnNv+OyNVekBxlrJi6EgBwAAcAAAAHhWNBIAAAAAAAAAAFwGAAAmAAAAcAAAAAwAAAAIAQAABwAAADgBAAAEAAAAjAEAAAwAAACsAQAAAQAAAAwCAAD0BAAALAIAAGYDAABrAwAAdQMAAH0DAACIAwAAmQMAAKsDAACuAwAAsgMAAMcDAADmAwAA/QMAABAEAAAjBAAANwQAAEsEAABmBAAAegQAAJYEAACqBAAAwQQAANkEAAD6BAAABgUAABsFAAAvBQAAMgUAADYFAAA6BQAAQgUAAE8FAABfBQAAawUAAHAFAAB5BQAAhQUAAI8FAACWBQAACAAAAAkAAAAKAAAACwAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABkAAAAbAAAABgAAAAUAAAAAAAAABwAAAAUAAABQAwAABwAAAAYAAABYAwAABwAAAAYAAABgAwAABgAAAAgAAAAAAAAAGQAAAAoAAAAAAAAAGgAAAAoAAABgAwAAAAADAAMAAAAAAAUAFgAAAAAACwAXAAAABwACACAAAAAAAAUAAQAAAAAABQACAAAAAAAFAB0AAAAAAAUAIgAAAAIABgAhAAAABAAFAAIAAAAGAAUAAgAAAAYAAgAcAAAABgADABwAAAAGAAAAIwAAAAgAAQAeAAAACQAEAB8AAAAAAAAAAQAAAAQAAAAAAAAAGAAAAEQGAAAYBgAAAAAAAAAAAAAAAAAAMgMAAAEAAAAOAAAAAQABAAEAAAA2AwAABAAAAHAQBQAAAA4AAgAAAAIAAAA6AwAADAAAAGIAAwAaAQQAbiAEABAAGgAFAGkAAQAOAAQAAAACAAAAQAMAAFEAAABiAAMAYgEAACICBgBwEAYAAgAaAxMAbiAIADIAbiAHABIAbhAJAAIADAFuIAQAEABiAAMAcQALAAAADAFiAgIAbiAKACEADAEiAgYAcBAGAAIAGgMVAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAAYgADAGIBAQAiAgYAcBAGAAIAGgMUAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAADgAEAA4AAwAOAAkADnhLAA0ADgEYDwEgDwEYDwAAAAABAAAACwAAAAEAAAAEAAAAAQAAAAUAAyo+OwAIPGNsaW5pdD4ABjxpbml0PgAJQ1VSX0NMQVNTAA9Eb2luZyBzb21ldGhpbmcAEEkgZGlkIHNvbWV0aGluZyEAAUwAAkxMABNMYXJ0L1RyYW5zZm9ybTE5NzU7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJlOwAVTGphdmEvaW8vUHJpbnRTdHJlYW07ABFMamF2YS9sYW5nL0NsYXNzOwARTGphdmEvbGFuZy9DbGFzczwAEkxqYXZhL2xhbmcvT2JqZWN0OwASTGphdmEvbGFuZy9TdHJpbmc7ABlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7ABJMamF2YS9sYW5nL1N5c3RlbTsAGkxqYXZhL3V0aWwvQmFzZTY0JEVuY29kZXI7ABJMamF2YS91dGlsL0Jhc2U2NDsAFU5FVyBWQUxVRSBDVVJfQ0xBU1M6IAAWTkVXIFZBTFVFIE5FV19TVFJJTkc6IAAfTkVXIFZBTFVFIFJFREVGSU5FRF9ERVhfQllURVM6IAAKTkVXX1NUUklORwATUkVERUZJTkVEX0RFWF9CWVRFUwASVHJhbnNmb3JtMTk3NS5qYXZhAAFWAAJWTAACW0IABmFwcGVuZAALZG9Tb21ldGhpbmcADmVuY29kZVRvU3RyaW5nAApnZXRFbmNvZGVyAANvdXQAB3ByaW50bG4ACnJlYWRGaWVsZHMACHRvU3RyaW5nAAV2YWx1ZQB2fn5EOHsiY29tcGlsYXRpb24tbW9kZSI6ImRlYnVnIiwibWluLWFwaSI6MSwic2hhLTEiOiJhODM1MmYyNTQ4ODUzNjJjY2Q4ZDkwOWQzNTI5YzYwMDk0ZGQ4OTZlIiwidmVyc2lvbiI6IjEuNi4yMC1kZXYifQACAQEkHAIXDBcAAwAEAAAJAQkBCQCIgASsBAGBgATABAEJ2AQBCYAFAAAAAAAAAQAAAA4GAAA4BgAAAQAAAAAAAAAAAAAAAAAAADwGAAAQAAAAAAAAAAEAAAAAAAAAAQAAACYAAABwAAAAAgAAAAwAAAAIAQAAAwAAAAcAAAA4AQAABAAAAAQAAACMAQAABQAAAAwAAACsAQAABgAAAAEAAAAMAgAAASAAAAQAAAAsAgAAAyAAAAQAAAAyAwAAARAAAAMAAABQAwAAAiAAACYAAABmAwAABCAAAAEAAAAOBgAAACAAAAEAAAAYBgAAAxAAAAIAAAA4BgAABiAAAAEAAABEBgAAABAAAAEAAABcBgAA 13*795d594fSAndroid Build Coastguard WorkerReading with native. 14*795d594fSAndroid Build Coastguard WorkerField public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 15*795d594fSAndroid Build Coastguard WorkerField public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 16*795d594fSAndroid Build Coastguard WorkerReading normally in other class. 17*795d594fSAndroid Build Coastguard WorkerRead CUR_CLASS field: (ID: 5) class art.Transform1975 18*795d594fSAndroid Build Coastguard WorkerRead REDEFINED_DEX_BYTES field: (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 19*795d594fSAndroid Build Coastguard WorkerReading using method handles. 20*795d594fSAndroid Build Coastguard Worker(ID: 7) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 21*795d594fSAndroid Build Coastguard Worker(ID: 8) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 22*795d594fSAndroid Build Coastguard WorkerDoing modification maybe 23*795d594fSAndroid Build Coastguard WorkerNot doing anything 24*795d594fSAndroid Build Coastguard WorkerReading with reflection after possible modification. 25*795d594fSAndroid Build Coastguard Workerpublic static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 26*795d594fSAndroid Build Coastguard Workerpublic static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 27*795d594fSAndroid Build Coastguard WorkerReading normally in same class after possible modification. 28*795d594fSAndroid Build Coastguard WorkerORIGINAL VALUE CUR_CLASS: class art.Transform1975 29*795d594fSAndroid Build Coastguard WorkerORIGINAL VALUE REDEFINED_DEX_BYTES: ZGV4CjAzNQDNGFvYlmyIt+u4bnNv+OyNVekBxlrJi6EgBwAAcAAAAHhWNBIAAAAAAAAAAFwGAAAmAAAAcAAAAAwAAAAIAQAABwAAADgBAAAEAAAAjAEAAAwAAACsAQAAAQAAAAwCAAD0BAAALAIAAGYDAABrAwAAdQMAAH0DAACIAwAAmQMAAKsDAACuAwAAsgMAAMcDAADmAwAA/QMAABAEAAAjBAAANwQAAEsEAABmBAAAegQAAJYEAACqBAAAwQQAANkEAAD6BAAABgUAABsFAAAvBQAAMgUAADYFAAA6BQAAQgUAAE8FAABfBQAAawUAAHAFAAB5BQAAhQUAAI8FAACWBQAACAAAAAkAAAAKAAAACwAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABkAAAAbAAAABgAAAAUAAAAAAAAABwAAAAUAAABQAwAABwAAAAYAAABYAwAABwAAAAYAAABgAwAABgAAAAgAAAAAAAAAGQAAAAoAAAAAAAAAGgAAAAoAAABgAwAAAAADAAMAAAAAAAUAFgAAAAAACwAXAAAABwACACAAAAAAAAUAAQAAAAAABQACAAAAAAAFAB0AAAAAAAUAIgAAAAIABgAhAAAABAAFAAIAAAAGAAUAAgAAAAYAAgAcAAAABgADABwAAAAGAAAAIwAAAAgAAQAeAAAACQAEAB8AAAAAAAAAAQAAAAQAAAAAAAAAGAAAAEQGAAAYBgAAAAAAAAAAAAAAAAAAMgMAAAEAAAAOAAAAAQABAAEAAAA2AwAABAAAAHAQBQAAAA4AAgAAAAIAAAA6AwAADAAAAGIAAwAaAQQAbiAEABAAGgAFAGkAAQAOAAQAAAACAAAAQAMAAFEAAABiAAMAYgEAACICBgBwEAYAAgAaAxMAbiAIADIAbiAHABIAbhAJAAIADAFuIAQAEABiAAMAcQALAAAADAFiAgIAbiAKACEADAEiAgYAcBAGAAIAGgMVAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAAYgADAGIBAQAiAgYAcBAGAAIAGgMUAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAADgAEAA4AAwAOAAkADnhLAA0ADgEYDwEgDwEYDwAAAAABAAAACwAAAAEAAAAEAAAAAQAAAAUAAyo+OwAIPGNsaW5pdD4ABjxpbml0PgAJQ1VSX0NMQVNTAA9Eb2luZyBzb21ldGhpbmcAEEkgZGlkIHNvbWV0aGluZyEAAUwAAkxMABNMYXJ0L1RyYW5zZm9ybTE5NzU7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJlOwAVTGphdmEvaW8vUHJpbnRTdHJlYW07ABFMamF2YS9sYW5nL0NsYXNzOwARTGphdmEvbGFuZy9DbGFzczwAEkxqYXZhL2xhbmcvT2JqZWN0OwASTGphdmEvbGFuZy9TdHJpbmc7ABlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7ABJMamF2YS9sYW5nL1N5c3RlbTsAGkxqYXZhL3V0aWwvQmFzZTY0JEVuY29kZXI7ABJMamF2YS91dGlsL0Jhc2U2NDsAFU5FVyBWQUxVRSBDVVJfQ0xBU1M6IAAWTkVXIFZBTFVFIE5FV19TVFJJTkc6IAAfTkVXIFZBTFVFIFJFREVGSU5FRF9ERVhfQllURVM6IAAKTkVXX1NUUklORwATUkVERUZJTkVEX0RFWF9CWVRFUwASVHJhbnNmb3JtMTk3NS5qYXZhAAFWAAJWTAACW0IABmFwcGVuZAALZG9Tb21ldGhpbmcADmVuY29kZVRvU3RyaW5nAApnZXRFbmNvZGVyAANvdXQAB3ByaW50bG4ACnJlYWRGaWVsZHMACHRvU3RyaW5nAAV2YWx1ZQB2fn5EOHsiY29tcGlsYXRpb24tbW9kZSI6ImRlYnVnIiwibWluLWFwaSI6MSwic2hhLTEiOiJhODM1MmYyNTQ4ODUzNjJjY2Q4ZDkwOWQzNTI5YzYwMDk0ZGQ4OTZlIiwidmVyc2lvbiI6IjEuNi4yMC1kZXYifQACAQEkHAIXDBcAAwAEAAAJAQkBCQCIgASsBAGBgATABAEJ2AQBCYAFAAAAAAAAAQAAAA4GAAA4BgAAAQAAAAAAAAAAAAAAAAAAADwGAAAQAAAAAAAAAAEAAAAAAAAAAQAAACYAAABwAAAAAgAAAAwAAAAIAQAAAwAAAAcAAAA4AQAABAAAAAQAAACMAQAABQAAAAwAAACsAQAABgAAAAEAAAAMAgAAASAAAAQAAAAsAgAAAyAAAAQAAAAyAwAAARAAAAMAAABQAwAAAiAAACYAAABmAwAABCAAAAEAAAAOBgAAACAAAAEAAAAYBgAAAxAAAAIAAAA4BgAABiAAAAEAAABEBgAAABAAAAEAAABcBgAA 30*795d594fSAndroid Build Coastguard WorkerReading with native after possible modification. 31*795d594fSAndroid Build Coastguard WorkerField public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 32*795d594fSAndroid Build Coastguard WorkerField public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 33*795d594fSAndroid Build Coastguard WorkerReading normally in other class after possible modification. 34*795d594fSAndroid Build Coastguard WorkerRead CUR_CLASS field: (ID: 5) class art.Transform1975 35*795d594fSAndroid Build Coastguard WorkerRead REDEFINED_DEX_BYTES field: (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 36*795d594fSAndroid Build Coastguard WorkerReading using method handles. 37*795d594fSAndroid Build Coastguard Worker(ID: 9) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 38*795d594fSAndroid Build Coastguard Worker(ID: 10) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 39*795d594fSAndroid Build Coastguard WorkerReading fields after redefinition 40*795d594fSAndroid Build Coastguard WorkerReading with reflection. 41*795d594fSAndroid Build Coastguard Workerpublic static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 42*795d594fSAndroid Build Coastguard Workerpublic static java.lang.String art.Transform1975.NEW_STRING = (ID: 11) <NULL> 43*795d594fSAndroid Build Coastguard Workerpublic static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 44*795d594fSAndroid Build Coastguard WorkerReading normally in same class. 45*795d594fSAndroid Build Coastguard WorkerNEW VALUE CUR_CLASS: class art.Transform1975 46*795d594fSAndroid Build Coastguard WorkerNEW VALUE REDEFINED_DEX_BYTES: ZGV4CjAzNQDNGFvYlmyIt+u4bnNv+OyNVekBxlrJi6EgBwAAcAAAAHhWNBIAAAAAAAAAAFwGAAAmAAAAcAAAAAwAAAAIAQAABwAAADgBAAAEAAAAjAEAAAwAAACsAQAAAQAAAAwCAAD0BAAALAIAAGYDAABrAwAAdQMAAH0DAACIAwAAmQMAAKsDAACuAwAAsgMAAMcDAADmAwAA/QMAABAEAAAjBAAANwQAAEsEAABmBAAAegQAAJYEAACqBAAAwQQAANkEAAD6BAAABgUAABsFAAAvBQAAMgUAADYFAAA6BQAAQgUAAE8FAABfBQAAawUAAHAFAAB5BQAAhQUAAI8FAACWBQAACAAAAAkAAAAKAAAACwAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABkAAAAbAAAABgAAAAUAAAAAAAAABwAAAAUAAABQAwAABwAAAAYAAABYAwAABwAAAAYAAABgAwAABgAAAAgAAAAAAAAAGQAAAAoAAAAAAAAAGgAAAAoAAABgAwAAAAADAAMAAAAAAAUAFgAAAAAACwAXAAAABwACACAAAAAAAAUAAQAAAAAABQACAAAAAAAFAB0AAAAAAAUAIgAAAAIABgAhAAAABAAFAAIAAAAGAAUAAgAAAAYAAgAcAAAABgADABwAAAAGAAAAIwAAAAgAAQAeAAAACQAEAB8AAAAAAAAAAQAAAAQAAAAAAAAAGAAAAEQGAAAYBgAAAAAAAAAAAAAAAAAAMgMAAAEAAAAOAAAAAQABAAEAAAA2AwAABAAAAHAQBQAAAA4AAgAAAAIAAAA6AwAADAAAAGIAAwAaAQQAbiAEABAAGgAFAGkAAQAOAAQAAAACAAAAQAMAAFEAAABiAAMAYgEAACICBgBwEAYAAgAaAxMAbiAIADIAbiAHABIAbhAJAAIADAFuIAQAEABiAAMAcQALAAAADAFiAgIAbiAKACEADAEiAgYAcBAGAAIAGgMVAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAAYgADAGIBAQAiAgYAcBAGAAIAGgMUAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAADgAEAA4AAwAOAAkADnhLAA0ADgEYDwEgDwEYDwAAAAABAAAACwAAAAEAAAAEAAAAAQAAAAUAAyo+OwAIPGNsaW5pdD4ABjxpbml0PgAJQ1VSX0NMQVNTAA9Eb2luZyBzb21ldGhpbmcAEEkgZGlkIHNvbWV0aGluZyEAAUwAAkxMABNMYXJ0L1RyYW5zZm9ybTE5NzU7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJlOwAVTGphdmEvaW8vUHJpbnRTdHJlYW07ABFMamF2YS9sYW5nL0NsYXNzOwARTGphdmEvbGFuZy9DbGFzczwAEkxqYXZhL2xhbmcvT2JqZWN0OwASTGphdmEvbGFuZy9TdHJpbmc7ABlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7ABJMamF2YS9sYW5nL1N5c3RlbTsAGkxqYXZhL3V0aWwvQmFzZTY0JEVuY29kZXI7ABJMamF2YS91dGlsL0Jhc2U2NDsAFU5FVyBWQUxVRSBDVVJfQ0xBU1M6IAAWTkVXIFZBTFVFIE5FV19TVFJJTkc6IAAfTkVXIFZBTFVFIFJFREVGSU5FRF9ERVhfQllURVM6IAAKTkVXX1NUUklORwATUkVERUZJTkVEX0RFWF9CWVRFUwASVHJhbnNmb3JtMTk3NS5qYXZhAAFWAAJWTAACW0IABmFwcGVuZAALZG9Tb21ldGhpbmcADmVuY29kZVRvU3RyaW5nAApnZXRFbmNvZGVyAANvdXQAB3ByaW50bG4ACnJlYWRGaWVsZHMACHRvU3RyaW5nAAV2YWx1ZQB2fn5EOHsiY29tcGlsYXRpb24tbW9kZSI6ImRlYnVnIiwibWluLWFwaSI6MSwic2hhLTEiOiJhODM1MmYyNTQ4ODUzNjJjY2Q4ZDkwOWQzNTI5YzYwMDk0ZGQ4OTZlIiwidmVyc2lvbiI6IjEuNi4yMC1kZXYifQACAQEkHAIXDBcAAwAEAAAJAQkBCQCIgASsBAGBgATABAEJ2AQBCYAFAAAAAAAAAQAAAA4GAAA4BgAAAQAAAAAAAAAAAAAAAAAAADwGAAAQAAAAAAAAAAEAAAAAAAAAAQAAACYAAABwAAAAAgAAAAwAAAAIAQAAAwAAAAcAAAA4AQAABAAAAAQAAACMAQAABQAAAAwAAACsAQAABgAAAAEAAAAMAgAAASAAAAQAAAAsAgAAAyAAAAQAAAAyAwAAARAAAAMAAABQAwAAAiAAACYAAABmAwAABCAAAAEAAAAOBgAAACAAAAEAAAAYBgAAAxAAAAIAAAA4BgAABiAAAAEAAABEBgAAABAAAAEAAABcBgAA 47*795d594fSAndroid Build Coastguard WorkerNEW VALUE NEW_STRING: null 48*795d594fSAndroid Build Coastguard WorkerReading with native. 49*795d594fSAndroid Build Coastguard WorkerField public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 50*795d594fSAndroid Build Coastguard WorkerField public static java.lang.String art.Transform1975.NEW_STRING = (ID: 11) <NULL> 51*795d594fSAndroid Build Coastguard WorkerField public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 52*795d594fSAndroid Build Coastguard WorkerReading normally in other class. 53*795d594fSAndroid Build Coastguard WorkerRead CUR_CLASS field: (ID: 5) class art.Transform1975 54*795d594fSAndroid Build Coastguard WorkerRead REDEFINED_DEX_BYTES field: (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 55*795d594fSAndroid Build Coastguard WorkerRead NEW_STRING field: (ID: 11) <NULL> 56*795d594fSAndroid Build Coastguard WorkerReading using method handles. 57*795d594fSAndroid Build Coastguard Worker(ID: 12) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 58*795d594fSAndroid Build Coastguard Worker(ID: 13) MethodHandle()String (public static java.lang.String art.Transform1975.NEW_STRING) = (ID: 11) <NULL> 59*795d594fSAndroid Build Coastguard Worker(ID: 14) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 60*795d594fSAndroid Build Coastguard WorkerDoing modification maybe 61*795d594fSAndroid Build Coastguard WorkerDoing something 62*795d594fSAndroid Build Coastguard WorkerReading with reflection after possible modification. 63*795d594fSAndroid Build Coastguard Workerpublic static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 64*795d594fSAndroid Build Coastguard Workerpublic static java.lang.String art.Transform1975.NEW_STRING = (ID: 15) I did something! 65*795d594fSAndroid Build Coastguard Workerpublic static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 66*795d594fSAndroid Build Coastguard WorkerReading normally in same class after possible modification. 67*795d594fSAndroid Build Coastguard WorkerNEW VALUE CUR_CLASS: class art.Transform1975 68*795d594fSAndroid Build Coastguard WorkerNEW VALUE REDEFINED_DEX_BYTES: ZGV4CjAzNQDNGFvYlmyIt+u4bnNv+OyNVekBxlrJi6EgBwAAcAAAAHhWNBIAAAAAAAAAAFwGAAAmAAAAcAAAAAwAAAAIAQAABwAAADgBAAAEAAAAjAEAAAwAAACsAQAAAQAAAAwCAAD0BAAALAIAAGYDAABrAwAAdQMAAH0DAACIAwAAmQMAAKsDAACuAwAAsgMAAMcDAADmAwAA/QMAABAEAAAjBAAANwQAAEsEAABmBAAAegQAAJYEAACqBAAAwQQAANkEAAD6BAAABgUAABsFAAAvBQAAMgUAADYFAAA6BQAAQgUAAE8FAABfBQAAawUAAHAFAAB5BQAAhQUAAI8FAACWBQAACAAAAAkAAAAKAAAACwAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABkAAAAbAAAABgAAAAUAAAAAAAAABwAAAAUAAABQAwAABwAAAAYAAABYAwAABwAAAAYAAABgAwAABgAAAAgAAAAAAAAAGQAAAAoAAAAAAAAAGgAAAAoAAABgAwAAAAADAAMAAAAAAAUAFgAAAAAACwAXAAAABwACACAAAAAAAAUAAQAAAAAABQACAAAAAAAFAB0AAAAAAAUAIgAAAAIABgAhAAAABAAFAAIAAAAGAAUAAgAAAAYAAgAcAAAABgADABwAAAAGAAAAIwAAAAgAAQAeAAAACQAEAB8AAAAAAAAAAQAAAAQAAAAAAAAAGAAAAEQGAAAYBgAAAAAAAAAAAAAAAAAAMgMAAAEAAAAOAAAAAQABAAEAAAA2AwAABAAAAHAQBQAAAA4AAgAAAAIAAAA6AwAADAAAAGIAAwAaAQQAbiAEABAAGgAFAGkAAQAOAAQAAAACAAAAQAMAAFEAAABiAAMAYgEAACICBgBwEAYAAgAaAxMAbiAIADIAbiAHABIAbhAJAAIADAFuIAQAEABiAAMAcQALAAAADAFiAgIAbiAKACEADAEiAgYAcBAGAAIAGgMVAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAAYgADAGIBAQAiAgYAcBAGAAIAGgMUAG4gCAAyAG4gCAASAG4QCQACAAwBbiAEABAADgAEAA4AAwAOAAkADnhLAA0ADgEYDwEgDwEYDwAAAAABAAAACwAAAAEAAAAEAAAAAQAAAAUAAyo+OwAIPGNsaW5pdD4ABjxpbml0PgAJQ1VSX0NMQVNTAA9Eb2luZyBzb21ldGhpbmcAEEkgZGlkIHNvbWV0aGluZyEAAUwAAkxMABNMYXJ0L1RyYW5zZm9ybTE5NzU7AB1MZGFsdmlrL2Fubm90YXRpb24vU2lnbmF0dXJlOwAVTGphdmEvaW8vUHJpbnRTdHJlYW07ABFMamF2YS9sYW5nL0NsYXNzOwARTGphdmEvbGFuZy9DbGFzczwAEkxqYXZhL2xhbmcvT2JqZWN0OwASTGphdmEvbGFuZy9TdHJpbmc7ABlMamF2YS9sYW5nL1N0cmluZ0J1aWxkZXI7ABJMamF2YS9sYW5nL1N5c3RlbTsAGkxqYXZhL3V0aWwvQmFzZTY0JEVuY29kZXI7ABJMamF2YS91dGlsL0Jhc2U2NDsAFU5FVyBWQUxVRSBDVVJfQ0xBU1M6IAAWTkVXIFZBTFVFIE5FV19TVFJJTkc6IAAfTkVXIFZBTFVFIFJFREVGSU5FRF9ERVhfQllURVM6IAAKTkVXX1NUUklORwATUkVERUZJTkVEX0RFWF9CWVRFUwASVHJhbnNmb3JtMTk3NS5qYXZhAAFWAAJWTAACW0IABmFwcGVuZAALZG9Tb21ldGhpbmcADmVuY29kZVRvU3RyaW5nAApnZXRFbmNvZGVyAANvdXQAB3ByaW50bG4ACnJlYWRGaWVsZHMACHRvU3RyaW5nAAV2YWx1ZQB2fn5EOHsiY29tcGlsYXRpb24tbW9kZSI6ImRlYnVnIiwibWluLWFwaSI6MSwic2hhLTEiOiJhODM1MmYyNTQ4ODUzNjJjY2Q4ZDkwOWQzNTI5YzYwMDk0ZGQ4OTZlIiwidmVyc2lvbiI6IjEuNi4yMC1kZXYifQACAQEkHAIXDBcAAwAEAAAJAQkBCQCIgASsBAGBgATABAEJ2AQBCYAFAAAAAAAAAQAAAA4GAAA4BgAAAQAAAAAAAAAAAAAAAAAAADwGAAAQAAAAAAAAAAEAAAAAAAAAAQAAACYAAABwAAAAAgAAAAwAAAAIAQAAAwAAAAcAAAA4AQAABAAAAAQAAACMAQAABQAAAAwAAACsAQAABgAAAAEAAAAMAgAAASAAAAQAAAAsAgAAAyAAAAQAAAAyAwAAARAAAAMAAABQAwAAAiAAACYAAABmAwAABCAAAAEAAAAOBgAAACAAAAEAAAAYBgAAAxAAAAIAAAA4BgAABiAAAAEAAABEBgAAABAAAAEAAABcBgAA 69*795d594fSAndroid Build Coastguard WorkerNEW VALUE NEW_STRING: I did something! 70*795d594fSAndroid Build Coastguard WorkerReading with native after possible modification. 71*795d594fSAndroid Build Coastguard WorkerField public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 72*795d594fSAndroid Build Coastguard WorkerField public static java.lang.String art.Transform1975.NEW_STRING = (ID: 15) I did something! 73*795d594fSAndroid Build Coastguard WorkerField public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 74*795d594fSAndroid Build Coastguard WorkerReading normally in other class after possible modification. 75*795d594fSAndroid Build Coastguard WorkerRead CUR_CLASS field: (ID: 5) class art.Transform1975 76*795d594fSAndroid Build Coastguard WorkerRead REDEFINED_DEX_BYTES field: (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 77*795d594fSAndroid Build Coastguard WorkerRead NEW_STRING field: (ID: 15) I did something! 78*795d594fSAndroid Build Coastguard WorkerReading using method handles. 79*795d594fSAndroid Build Coastguard Worker(ID: 16) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 80*795d594fSAndroid Build Coastguard Worker(ID: 17) MethodHandle()String (public static java.lang.String art.Transform1975.NEW_STRING) = (ID: 15) I did something! 81*795d594fSAndroid Build Coastguard Worker(ID: 18) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 82*795d594fSAndroid Build Coastguard Workerreading reflectively with old reflection objects 83*795d594fSAndroid Build Coastguard WorkerOLD FIELD OBJECT: public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 84*795d594fSAndroid Build Coastguard WorkerOLD FIELD OBJECT: public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 85*795d594fSAndroid Build Coastguard Workerreading natively with old jfieldIDs 86*795d594fSAndroid Build Coastguard WorkerField public static java.lang.Class art.Transform1975.CUR_CLASS = (ID: 5) class art.Transform1975 87*795d594fSAndroid Build Coastguard WorkerField public static byte[] art.Transform1975.REDEFINED_DEX_BYTES = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 88*795d594fSAndroid Build Coastguard Workerreading natively with new jfieldIDs 89*795d594fSAndroid Build Coastguard WorkerReading with old method handles 90*795d594fSAndroid Build Coastguard Worker(ID: 2) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 91*795d594fSAndroid Build Coastguard Worker(ID: 3) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 92*795d594fSAndroid Build Coastguard WorkerReading with new method handles 93*795d594fSAndroid Build Coastguard Worker(ID: 19) MethodHandle()Class (public static java.lang.Class art.Transform1975.CUR_CLASS) = (ID: 5) class art.Transform1975 94*795d594fSAndroid Build Coastguard Worker(ID: 20) MethodHandle()String (public static java.lang.String art.Transform1975.NEW_STRING) = (ID: 15) I did something! 95*795d594fSAndroid Build Coastguard Worker(ID: 21) MethodHandle()byte[] (public static byte[] art.Transform1975.REDEFINED_DEX_BYTES) = (ID: 6) [100, 101, 120, 10, 48, 51, 53, 0, -51, 24, ...] 96*795d594fSAndroid Build Coastguard WorkerWriting (ID: 22) class art.Test1975 to CUR_CLASS with old method handle 97*795d594fSAndroid Build Coastguard WorkerReading changed value 98*795d594fSAndroid Build Coastguard WorkerCUR_CLASS is now (ID: 22) class art.Test1975 99