slicer: add writer support for 45cc and 4rcc formats

On Android, VarHandle operations using the invoke-polymorphic
instruction which are encoded with 45cc and 45rc formats.

Later versions of java.util.concurrent use VarHandles internally and
Android tests mock classes in j.u.c. This changes is necessary to
allow those tests to continue running.

Bug: 37272822
Bug: 188889082
Bug: 202852358
Bug: 202829300
Test: dexter_tests.py
Test: atest com.android.car.pm.VendorServiceControllerTest#fgUserUnlocked
Test: atest com.android.systemui.screenshot.ScreenshotNotificationSmartActionsTest#testExceptionHandlingInGetSmartActions

Change-Id: Id6738bfaca7a63997d45742526b8ee26666469ce
2 files changed
tree: 3faadfd623c8cb4aec33ddc0a36a3d8a994823e4
  1. dexter/
  2. slicer/
  3. testdata/
  4. .clang-format
  5. Android.bp
  6. OWNERS
  7. README.md
  8. TEST_MAPPING
README.md

This is the home of the .dex manipulation library (slicer) and command line tool (dexter).

Both the command line tool and the library can be built for host and device targets.

To build dexter:

$ m dexter

To test dexter:

# in tools/dexter (and assuming a Linux host)
$ python dexter/dexter_tests.py -cmd ../../out/host/linux-x86/bin/dexter -root testdata