Update NDK prebuilts to build 4754759.

Taken from branch aosp-master.
Also update ChangeLog.

Bug: none.
Test: run test.py.

Change-Id: Iff6df096a0c4535bbcf9c917ae73d507ac61e009
(cherry picked from commit 311a9d2cd27841498fc90a0b26a755deb47e7ebd)
diff --git a/ChangeLog b/ChangeLog
index cdf92d9..19be596 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
 
 ndk r17
+(release)
+Use new Android unwinder, which can unwind for archs different from build.
+Support profiling interpreted and JITed java code on Android >= P.
+Refactor app_profiler.py: improve option interface, simplify profiling from launch,
+and improve native lib downloading.
+Fix ndk issues 638, 644, 499, 493.
+Add debug-unwind cmd and script to debug unwinding.
+Update document, including the way using wrap.sh to profile released apk.
 
+(beta 1)
 Add report_html.py, reporting profiling result in html interface.
 Improve inferno.
 Refactor document.
diff --git a/bin/android/arm/simpleperf b/bin/android/arm/simpleperf
index fbbed50..b41318b 100755
--- a/bin/android/arm/simpleperf
+++ b/bin/android/arm/simpleperf
Binary files differ
diff --git a/bin/android/arm64/simpleperf b/bin/android/arm64/simpleperf
index 27f59ab..4df1f31 100755
--- a/bin/android/arm64/simpleperf
+++ b/bin/android/arm64/simpleperf
Binary files differ
diff --git a/bin/android/x86/simpleperf b/bin/android/x86/simpleperf
index 0046ac1..2c6edab 100755
--- a/bin/android/x86/simpleperf
+++ b/bin/android/x86/simpleperf
Binary files differ
diff --git a/bin/android/x86_64/simpleperf b/bin/android/x86_64/simpleperf
index e15aff7..bd24729 100755
--- a/bin/android/x86_64/simpleperf
+++ b/bin/android/x86_64/simpleperf
Binary files differ
diff --git a/bin/darwin/x86/libsimpleperf_report.dylib b/bin/darwin/x86/libsimpleperf_report.dylib
index cff6358..bf28205 100755
--- a/bin/darwin/x86/libsimpleperf_report.dylib
+++ b/bin/darwin/x86/libsimpleperf_report.dylib
Binary files differ
diff --git a/bin/darwin/x86/simpleperf b/bin/darwin/x86/simpleperf
index 3ea71e9..f0cdf21 100755
--- a/bin/darwin/x86/simpleperf
+++ b/bin/darwin/x86/simpleperf
Binary files differ
diff --git a/bin/darwin/x86_64/libsimpleperf_report.dylib b/bin/darwin/x86_64/libsimpleperf_report.dylib
index 927aa98..8625e0d 100755
--- a/bin/darwin/x86_64/libsimpleperf_report.dylib
+++ b/bin/darwin/x86_64/libsimpleperf_report.dylib
Binary files differ
diff --git a/bin/darwin/x86_64/simpleperf b/bin/darwin/x86_64/simpleperf
index 68d83b2..1dad615 100755
--- a/bin/darwin/x86_64/simpleperf
+++ b/bin/darwin/x86_64/simpleperf
Binary files differ
diff --git a/bin/linux/x86/libsimpleperf_report.so b/bin/linux/x86/libsimpleperf_report.so
index 56d8b2a..ebf36b3 100755
--- a/bin/linux/x86/libsimpleperf_report.so
+++ b/bin/linux/x86/libsimpleperf_report.so
Binary files differ
diff --git a/bin/linux/x86/simpleperf b/bin/linux/x86/simpleperf
index 21dede8..3ce5fed 100755
--- a/bin/linux/x86/simpleperf
+++ b/bin/linux/x86/simpleperf
Binary files differ
diff --git a/bin/linux/x86_64/libsimpleperf_report.so b/bin/linux/x86_64/libsimpleperf_report.so
index ad2a328..db141fb 100755
--- a/bin/linux/x86_64/libsimpleperf_report.so
+++ b/bin/linux/x86_64/libsimpleperf_report.so
Binary files differ
diff --git a/bin/linux/x86_64/simpleperf b/bin/linux/x86_64/simpleperf
index da240fd..1f532c9 100755
--- a/bin/linux/x86_64/simpleperf
+++ b/bin/linux/x86_64/simpleperf
Binary files differ
diff --git a/bin/windows/x86/libsimpleperf_report.dll b/bin/windows/x86/libsimpleperf_report.dll
index 4e8f9af..7cf8ec9 100755
--- a/bin/windows/x86/libsimpleperf_report.dll
+++ b/bin/windows/x86/libsimpleperf_report.dll
Binary files differ
diff --git a/bin/windows/x86/simpleperf.exe b/bin/windows/x86/simpleperf.exe
index a201c40..9e1d378 100755
--- a/bin/windows/x86/simpleperf.exe
+++ b/bin/windows/x86/simpleperf.exe
Binary files differ
diff --git a/bin/windows/x86_64/libsimpleperf_report.dll b/bin/windows/x86_64/libsimpleperf_report.dll
index 20b792d..23b289a 100755
--- a/bin/windows/x86_64/libsimpleperf_report.dll
+++ b/bin/windows/x86_64/libsimpleperf_report.dll
Binary files differ
diff --git a/bin/windows/x86_64/simpleperf.exe b/bin/windows/x86_64/simpleperf.exe
index a201c40..9e1d378 100755
--- a/bin/windows/x86_64/simpleperf.exe
+++ b/bin/windows/x86_64/simpleperf.exe
Binary files differ
diff --git a/doc/README.md b/doc/README.md
index bb54f11..a16bd92 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -24,7 +24,7 @@
     - [Profile from launch](#profile-from-launch)
     - [Parse profiling data manually](#parse-profiling-data-manually)
 - [Executable commands reference](#executable-commands-reference)
-    - [How does simpleperf work?](#how-does-simpleperf-work)
+    - [How simpleperf works](#how-simpleperf-works)
     - [Commands](#commands)
     - [The list command](#the-list-command)
     - [The stat command](#the-stat-command)
@@ -48,8 +48,9 @@
         - [Group samples into sample entries](#group-samples-into-sample-entries)
         - [Report call graphs](#report-call-graphs-in-report-cmd)
 - [Scripts reference](#scripts-reference)
-    - [app_profiler py](#app_profiler-py)
+    - [app_profiler.py](#app_profiler-py)
         - [Profile from launch of an application](#profile-from-launch-of-an-application)
+    - [run_simpleperf_without_usb_connection.py](#run_simpleperf_without_usb_connection-py)
     - [binary_cache_builder.py](#binary_cache_builder-py)
     - [run_simpleperf_on_device.py](#run_simpleperf_on_device-py)
     - [report.py](#report-py)
@@ -78,6 +79,7 @@
    a. When recording dwarf based call graph, simpleperf unwinds the stack before writing a sample
       to file. This is to save storage space on the device.
    b. Support tracing both on CPU time and off CPU time with --trace-offcpu option.
+   c. Support recording callgraphs of JITed and interpreted Java code on Android >= P.
 
 3. It relates closely to the Android platform.
    a. Is aware of Android environment, like using system properties to enable profiling, using
@@ -100,7 +102,7 @@
 
 Python scripts are split into three parts according to their functions:
 
-1. Scripts used for simplifying recording, like app_profiler.py.
+1. Scripts used for recording, like app_profiler.py, run_simpleperf_without_usb_connection.py.
 
 2. Scripts used for reporting, like report.py, report_html.py, inferno.
 
@@ -123,6 +125,9 @@
 
 [app_profiler.py](#app_profiler-py): recording profiling data.
 
+[run_simpleperf_without_usb_connection.py](#run_simpleperf_without_usb_connection-py):
+    recording profiling data while the USB cable isn't connected.
+
 [binary_cache_builder.py](#binary_cache_builder-py): building binary cache for profiling data.
 
 [report.py](#report-py): reporting in stdio interface.
@@ -146,46 +151,94 @@
 This section shows how to profile an Android application.
 Some examples are [Here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/README.md).
 
-Simpleperf only supports profiling native instructions in binaries in ELF format. If the Java code
-is executed by interpreter, or with jit cache, it can’t be profiled by simpleperf. As Android
-supports Ahead-of-time compilation, it can compile Java bytecode into native instructions with
-debug information. On devices with Android version <= M, we need root privilege to compile Java
-bytecode with debug information. However, on devices with Android version >= N, we don't need
-root privilege to do so.
-
 Profiling an Android application involves three steps:
-1. Prepare the application.
+1. Prepare an Android application.
 2. Record profiling data.
 3. Report profiling data.
 
 ### Prepare an Android application
 
-Before profiling, we need to install the application on Android device. To get valid profiling
-results, please check following items:
+Based on the profiling situation, we may need to customize the build script to generate an apk file
+specifically for profiling. Below are some suggestions.
 
-1. The application should be debuggable.
-Security restrictions mean that only apps with android::debuggable set to true can be profiled.
-(On a rooted device, all apps can be profiled.) In Android Studio, that means you need to use
-the debug build type instead of the release build type.
+1. If you want to profile a debug build of an application:
 
-2. Run on an Android >= N device.
-[We suggest profiling on an Android >= N device](#why-we-suggest-profiling-on-android-n-devices).
+For the debug build type, Android studio sets android::debuggable="true" in AndroidManifest.xml,
+enables JNI checks and may not optimize C/C++ code. It can be profiled by simpleperf without any
+change.
 
-3. On Android O, add `wrap.sh` in the apk.
-To profile Java code, we need ART running in oat mode. But on Android O, debuggable applications
-are forced to run in jit mode. To work around this, we need to add a `wrap.sh` in the apk. So if
-you are running on Android O device and need to profile Java code, add `wrap.sh` as [here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/SimpleperfExampleWithNative/app/profiling.gradle).
+2. If you want to profile a release build of an application:
 
-4. Make sure C++ code is compiled with optimizing flags.
-If the application contains C++ code, it can be compiled with -O0 flag in debug build type.
-This makes C++ code slow, to avoid that, check [here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/SimpleperfExampleWithNative/app/profiling.gradle).
+For the release build type, Android studio sets android::debuggable="false" in AndroidManifest.xml,
+disables JNI checks and optimizes C/C++ code. However, security restrictions mean that only apps
+with android::debuggable set to true can be profiled. So simpleperf can only profile release build
+in either of below two situations:
+If you are on a rooted device, you can profile any app.
 
-5. Use native libraries with debug info in the apk when possible.
-If the application contains C++ code or pre-compiled native libraries, try to use unstripped
-libraries in the apk. This helps simpleperf generating better profiling results.
-To use unstripped libraries, check [here](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/SimpleperfExampleWithNative/app/profiling.gradle).
+If you are on Android >= O, we can use [wrap.sh](#https://developer.android.com/ndk/guides/wrap-script.html)
+to profile a release build:
+Step 1: Add android::debuggable="true" in AndroidManifest.xml to enable profiling.
+```
+<manifest ...>
+    <application android::debuggable="true" ...>
+```
 
-Here we use application [SimpleperfExampleWithNative](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/SimpleperfExampleWithNative).
+Step 2: Add wrap.sh in lib/`arch` directories. wrap.sh runs the app without passing any debug flags
+to ART, so the app runs as a release app. wrap.sh can be done by adding below scripts in
+app/build.gradle.
+```
+android {
+    buildTypes {
+        release {
+            sourceSets {
+                release {
+                    resources {
+                        srcDir {
+                            "wrap_sh_lib_dir"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+task createWrapShLibDir
+    for (String abi : ["armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64"]) {
+        def dir = new File("app/wrap_sh_lib_dir/lib/" + abi)
+        dir.mkdirs()
+        def wrapFile = new File(dir, "wrap.sh")
+        wrapFile.withWriter { writer ->
+            writer.write('#!/system/bin/sh\n\$@\n')
+        }
+    }
+}
+```
+
+3. If you want to profile C/C++ code:
+
+Android studio strips symbol table and debug info of native libraries in the apk. So the profiling
+results may contain unknown symbols or broken callgraphs. To fix this, we can pass app_profiler.py
+a directory containing unstripped native libraries via the -lib option. Usually the directory can
+be the path of your Android Studio project.
+
+
+4. If you want to profile Java code:
+
+On Android >= P, simpleperf supports profiling Java code, no matter whether it is executed by
+interpreter, or JITed, or compiled into native instructions. So you don't need to do anything.
+
+On Android O, simpleperf supports profiling Java code which is compiled into native instructions,
+and it also needs wrap.sh to use the compiled Java code. To compile Java code, we can pass
+app_profiler.py the --compile_java_code option.
+
+On Android N, simpleperf supports profiling Java code that is compiled into native instructions.
+To compile java code, we can pass app_profiler.py the --compile_java_code option.
+
+On Android <= M, simpleperf doesn't support profiling Java code.
+
+
+Below I use application [SimpleperfExampleWithNative](https://android.googlesource.com/platform/system/extras/+/master/simpleperf/demo/SimpleperfExampleWithNative).
 It builds an app-profiling.apk for profiling.
 
 ```sh
@@ -205,28 +258,34 @@
 We can use [app-profiler.py](#app_profiler-py) to profile Android applications.
 
 ```sh
-# Record perf.data.
-$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative
+# Cd to the directory of simpleperf scripts. Record perf.data.
+# -p option selects the profiled app using its package name.
+# --compile_java_code option compiles Java code into native instructions, which isn't needed on
+# Android >= P.
+# -a option selects the Activity to profile.
+# -lib option gives the directory to find debug native libraries.
+$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative --compile_java_code \
+    -a .MixActivity -lib path_of_SimpleperfExampleWithNative
 ```
 
 This will collect profiling data in perf.data in the current directory, and related native
 binaries in binary_cache/.
 
 Normally we need to use the app when profiling, otherwise we may record no samples. But in this
-case, the MainActivity starts a busy thread. So we don't need to use the app while profiling.
+case, the MixActivity starts a busy thread. So we don't need to use the app while profiling.
 
 ```sh
 # Report perf.data in stdio interface.
 $ python report.py
-Cmdline: /data/local/tmp/simpleperf record -e task-clock:u -g -f 1000 --duration 10 ...
+Cmdline: /data/data/com.example.simpleperf.simpleperfexamplewithnative/simpleperf record ...
 Arch: arm64
-Event: cpu-cycles:u (type 0, config 0)
-Samples: 9966
-Event count: 22661027577
+Event: task-clock:u (type 1, config 1)
+Samples: 10023
+Event count: 10023000000
 
-Overhead  Command          Pid    Tid    Shared Object            Symbol
-59.69%    amplewithnative  10440  10452  /system/lib64/libc.so    strtol
-8.60%     amplewithnative  10440  10452  /system/lib64/libc.so    isalpha
+Overhead  Command     Pid   Tid   Shared Object              Symbol
+27.04%    BusyThread  5703  5729  /system/lib64/libart.so    art::JniMethodStart(art::Thread*)
+25.87%    BusyThread  5703  5729  /system/lib64/libc.so      long StrToI<long, ...
 ...
 ```
 
@@ -238,7 +297,7 @@
 $ python report_html.py
 
 # Add source code and disassembly. Change the path of source_dirs if it not correct.
-$ python report_html.py --add_source_code --source_dirs ../demo/SimpleperfExampleWithNative \
+$ python report_html.py --add_source_code --source_dirs path_of_SimpleperfExampleWithNative \
       --add_disassembly
 ```
 
@@ -252,11 +311,12 @@
 ```sh
 # Record dwarf based call graphs: add "-g" in the -r option.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative \
-        -r "-e task-clock:u -f 1000 --duration 10 -g"
+        -r "-e task-clock:u -f 1000 --duration 10 -g" -lib path_of_SimpleperfExampleWithNative
 
 # Record stack frame based call graphs: add "--call-graph fp" in the -r option.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative \
-        -r "-e task-clock:u -f 1000 --duration 10 --call-graph fp"
+        -r "-e task-clock:u -f 1000 --duration 10 --call-graph fp" \
+        -lib path_of_SimpleperfExampleWithNative
 
 # Report call graphs in stdio interface.
 $ python report.py -g
@@ -319,8 +379,10 @@
 
 ```sh
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .SleepActivity \
-    -r "-g -e task-clock:u -f 1000 --duration 10 --trace-offcpu"
-$ python report_html.py --add_disassembly --add_source_code --source_dirs ../demo
+    -r "-g -e task-clock:u -f 1000 --duration 10 --trace-offcpu" \
+    -lib path_of_SimpleperfExampleWithNative
+$ python report_html.py --add_disassembly --add_source_code \
+    --source_dirs path_of_SimpleperfExampleWithNative
 ```
 
 ### Profile from launch
@@ -328,8 +390,14 @@
 We can [profile from launch of an application](#profile-from-launch-of-an-application).
 
 ```sh
-$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .MainActivity \
-    --arch arm64 --profile_from_launch
+# Start simpleperf recording, then start the Activity to profile.
+$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .MainActivity
+
+# We can also start the Activity on the device manually.
+# 1. Make sure the application isn't running or one of the recent apps.
+# 2. Start simpleperf recording.
+$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative
+# 3. Start the app manually on the device.
 ```
 
 ### Parse profiling data manually
@@ -340,7 +408,7 @@
 
 ## Executable commands reference
 
-### How does simpleperf work?
+### How simpleperf works
 
 Modern CPUs have a hardware component called the performance monitoring unit (PMU). The PMU has
 several hardware counters, counting events like how many cpu cycles have happened, how many
@@ -374,6 +442,7 @@
 Simpleperf supports several commands, listed below:
 
 ```
+The debug-unwind command: debug/test dwarf based offline unwinding, used for debugging simpleperf.
 The dump command: dumps content in perf.data, used for debugging simpleperf.
 The help command: prints help information for other commands.
 The kmem command: collects kernel memory allocation information (will be replaced by Python scripts).
@@ -383,6 +452,7 @@
 The report-sample command: reports each sample in perf.data, used for supporting integration of
                            simpleperf in Android Studio.
 The stat command: profiles processes and prints counter summary.
+
 ```
 
 Each command supports different options, which can be seen through help message.
@@ -891,12 +961,10 @@
 # Record an Android application.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative
 
-# Record an Android application without compiling the Java code into native instructions.
-# Used when you only profile the C++ code, or the Java code has already been compiled into native
-# instructions.
-$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -nc
+# Record an Android application with Java code compiled into native instructions.
+$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative --compile_java_code
 
-# Record running a specific activity of an Android application.
+# Record the launch of an Activity of an Android application.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .SleepActivity
 
 # Record a native process.
@@ -904,8 +972,7 @@
 
 # Record a command.
 $ python app_profiler.py -cmd \
-    "dex2oat --dex-file=/data/local/tmp/app-profiling.apk --oat-file=/data/local/tmp/a.oat" \
-    --arch arm
+    "dex2oat --dex-file=/data/local/tmp/app-profiling.apk --oat-file=/data/local/tmp/a.oat"
 
 # Record an Android application, and use -r to send custom options to the record command.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative \
@@ -914,10 +981,6 @@
 # Record both on CPU time and off CPU time.
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative \
     -r "-e task-clock -g -f 1000 --duration 10 --trace-offcpu"
-
-# Profile activity startup time using --profile_from_launch.
-$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative \
-    --profile_from_launch --arch arm64
 ```
 
 #### Profile from launch of an application
@@ -935,11 +998,27 @@
 # Start the app manually or using the `am` command.
 ```
 
-To make it convenient to use, app_profiler.py combines these in the --profile_from_launch option.
+To make it convenient to use, app_profiler.py supports using -a option to start an Activity after
+starting recording.
 
 ```sh
-$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .MainActivity \
-    --arch arm64 --profile_from_launch
+$ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative -a .MainActivity
+```
+
+<a name="run_simpleperf_without_usb_connection-py"></a>
+### run_simpleperf_without_usb_connection.py
+
+run_simpleperf_without_usb_connection.py records profiling data while the USB cable isn't
+connected. Below is an example.
+
+```sh
+$ python run_simpleperf_without_usb_connection.py start \
+    -p com.example.simpleperf.simpleperfexamplewithnative
+# After the command finishes successfully, unplug the USB cable, run the
+# SimpleperfExampleWithNative app. After a few seconds, plug in the USB cable.
+$ python run_simpleperf_without_usb_connection.py stop
+# It may take a while to stop recording. After that, the profiling data is collected in perf.data
+# on host.
 ```
 
 <a name="binary_cache_builder-py"></a>
@@ -953,7 +1032,7 @@
 By default, app_profiler.py builds the binary_cache directory after recording. But we can also
 build binary_cache for existing profiling data files using binary_cache_builder.py. It is useful
 when you record profiling data using `simpleperf record` directly, to do system wide profiling or
-record without usb cable connected.
+record without USB cable connected.
 
 binary_cache_builder.py can either pull binaries from an Android device, or find binaries in
 directories on the host (via -lib).
@@ -962,8 +1041,9 @@
 # Generate binary_cache for perf.data, by pulling binaries from the device.
 $ python binary_cache_builder.py
 
-# Generate binary_cache, by pulling binaries from the device and finding binaries in ../demo.
-$ python binary_cache_builder.py -lib ../demo
+# Generate binary_cache, by pulling binaries from the device and finding binaries in
+# SimpleperfExampleWithNative.
+$ python binary_cache_builder.py -lib path_of_SimpleperfExampleWithNative
 ```
 
 <a name="run_simpleperf_on_device-py"></a>
@@ -1000,7 +1080,7 @@
 $ python report_html.py
 
 # Add source code.
-$ python report_html.py --add_source_code --source_dirs ../demo/SimpleperfExampleWithNative
+$ python report_html.py --add_source_code --source_dirs path_of_SimpleperfExampleWithNative
 
 # Add disassembly.
 $ python report_html.py --add_disassembly
@@ -1010,7 +1090,8 @@
 
 ```sh
 $ python app_profiler.py -p com.example.simpleperf.simpleperfexamplewithnative
-$ python report_html.py --add_source_code --source_dirs ../demo --add_disassembly
+$ python report_html.py --add_source_code --source_dirs path_of_SimpleperfExampleWithNative \
+    --add_disassembly
 ```
 
 After opening the generated [report.html](./report_html.html) in a browser, there are several tabs:
@@ -1158,4 +1239,5 @@
 # report_html.py searches binary_cache/ automatically, so you don't need to
 # pass it any argument.
 $ python report_html.py
-```
\ No newline at end of file
+```
+
diff --git a/repo.prop b/repo.prop
index a75ea0e..34b0ecd 100644
--- a/repo.prop
+++ b/repo.prop
@@ -9,12 +9,8 @@
 device/generic/goldfish-opengl 032255d4c6cabe67a1f25f650f38c6e39d747d0c
 device/generic/mini-emulator-arm64 2ced84e28c3435b9bca882d5becc6c77912a3b98
 device/generic/mini-emulator-armv7-a-neon 078cbd03b2073b31530845bc0e48a1a166914ec8
-device/generic/mini-emulator-mips 4627dfc9b812d0cb3b1ba715c0dd12ae47ef9746
-device/generic/mini-emulator-mips64 80fc59d897c473714ec26e469cf6fe378fd31fe3
 device/generic/mini-emulator-x86 152ea797fd07b76d87f83a343bdc58ad2c762028
 device/generic/mini-emulator-x86_64 47302a0e22c620b9f7b9d2215bd32d54f68e7bb6
-device/generic/mips bf27f9bcb56e483310507f78f0a4b93d3f5499c5
-device/generic/mips64 34300f7753b7a9fa2f7ba16bdc1f1fb8625dd4e4
 device/generic/qemu c7575805571f5b0d2b346d0bcfcff2e80b85f6f1
 device/generic/uml cdc20aa5e05005f67989d8f86b64c0526b87b76d
 device/generic/x86 645e6e711b32f94ecbd9b1cc77a51559dfce5ebe
@@ -22,18 +18,18 @@
 device/google/accessory/arduino abc5159a3ca9dbb5c7e364a1eab99901a4440ac5
 device/google/accessory/demokit 7dfe7f89a3b174709c773fe319531006e46440d9
 device/google/atv 8508682879c3609445857fe43d58bd9ba91265b2
-device/google/contexthub 44b122a273da6aff4ec56c292898f8204811dd4d
+device/google/contexthub 0de12d480ad03ab5f1146f5b20f708d5a7b69d94
 device/google/cuttlefish 2a1f8c1b2ed9c2c353a3d55cec323e307dd5c5c7
 device/google/cuttlefish_common a732f588b36c87551eca671b4a259fcc11f490a6
 device/google/cuttlefish_kernel 01ec44d12f853de3f4dc95dee2af2cd3dc4f6acc
 device/google/dragon d764a91064c27a1df6186641f99399efef24f465
 device/google/dragon-kernel f7f148d36fa47eb17b1bc7025ffc9f388af1e7cf
-device/google/marlin c435640ff4434c134cc19ab717f9d3a26da788aa
+device/google/marlin 082cd5dc8b09c63e257a4109e1cbae852b9eab51
 device/google/marlin-kernel 76ad80e315e1c41db73c17909ef95b3b738ea991
 device/google/muskie 2b111ebde66fa7229b0a5e3f2b29d5d7687b520b
 device/google/taimen 7a749145d99e3972567d427e3b724d88f2543053
 device/google/vrservices a0d1e67bccda895a5556e8a2fac8bd4e04985607
-device/google/wahoo cd3291ca3b1311c6596f86a3fb52c48a633c033c
+device/google/wahoo a4ac62adff8ab51e2d9f6bbd125bf047c3e99bb8
 device/google/wahoo-kernel a321d637755d40f43da8b0a3fcb846a83d817da6
 device/huawei/angler 5cf81900d1ba351339cbc3d36ddc0ae18b33a131
 device/huawei/angler-kernel 1e67697ea59d01f495b31a0d44ec72979e35dd10
@@ -42,25 +38,25 @@
 device/linaro/bootloader/OpenPlatformPkg 662f6b3adfcf742456efd5ef24106af71e0fab57
 device/linaro/bootloader/arm-trusted-firmware 8608ac5262e8b04e72cef118477baf445f5435aa
 device/linaro/bootloader/edk2 27fa02b09674915e1c0e053214b95a68a98e2cb9
-device/linaro/hikey 76555470f83e17c367cd984c51dc09e65a522280
+device/linaro/hikey 19336afbcf7d20b343bb00d72e296c35b705c1e7
 device/linaro/hikey-kernel d255b44692e3900dcaa073b787cace42b7b3eb2d
-device/sample d1becc64cf1ebb9976e0e66401195f0d935e8246
-kernel/configs 8d7294f01d14b5d4ef7a213d59126575c5e8ac92
-kernel/tests 46a737e17453063190248a2ea782025a9755c548
-platform/art 9d4633373d152c123c4e63100ea6fb3384a9eb09
-platform/bionic 67b5979930ba81477cf5f835b1fe23563ee9c761
-platform/bootable/recovery bcb015239c5affc81414d45726aff7efac020a5f
-platform/build 388f1458a5a63a4c6d0b603185911bd1226dea25
+device/sample c08631332a984033b323ccc61e1fc956e85179d6
+kernel/configs c4163554066d88d60874deba70303445bed94e3a
+kernel/tests ab297908759d64ca023597dfdeac6ebc57114e98
+platform/art b7f680727032a6fa82f166c2c268db8eb0f3b570
+platform/bionic a27cadfa5fd75cd54e1597a13ed517fdd6909fe3
+platform/bootable/recovery 2de12da142af4dc8386ea3b6838d3e10ea9bf20a
+platform/build 36bf0df48f916f4a64468ffaf6cb5f6b76dae2e5
 platform/build/blueprint b2e8a88c013496fdaa9a177eafbf0bf47e4721d2
 platform/build/kati ac70a73c816b3a51fe1541ef594f665853662e2f
-platform/build/soong 4884a172de66ce5491ba07f7f948014159eec9cc
+platform/build/soong 8959e149b713f6c7332f9eda80fe5dc47c9d0718
 platform/compatibility/cdd 85a4240862bddec633e1a3a73c95212b95844ce4
-platform/cts 8f4232ee24c96639537793a266a8e1b2600c1630
-platform/dalvik 25124d0f466eca8bf7b0c42380977b7670ef19d6
+platform/cts ec2907be8379cc5a9873dfb28195c31b9e37aa1f
+platform/dalvik 2e9d6011fe4f4d2e8c065210d0118e7b9d9f305c
 platform/developers/build ae45e741a440e39cfd68e0efd1f048f5b7896e0f
 platform/developers/demos 03814c35b8ee0a1284c667556260124d97466b28
 platform/developers/samples/android 0b1ff9e0666e104f6f7d6401449f32ba9f9cbbaa
-platform/development b7f136bed45b788b8a14b0d509e77a2e405f92fd
+platform/development 16d65bdb0c50814a97cd633d5ac17a8997bbf1dc
 platform/external/ImageMagick c9cef2822b2f87340f725dc87d3ac3cca797d176
 platform/external/Microsoft-GSL 771e49c447d5b6082482f42d11f0624d83cc357d
 platform/external/aac a3e0aa5f25908d92535e045bbde73c9a3d19adc7
@@ -78,11 +74,11 @@
 platform/external/apache-xml 6a1742c1aa8bab2adac66aa7820fe51b4b494312
 platform/external/archive-patcher b51cca584ba2f39c7659465063381c46bf95a6f4
 platform/external/arm-neon-tests 7eef3ecdd1dda0bcd075e4035de17257edac832e
-platform/external/autotest 8f30709034a9ab0432ffda2c45f12c9c606564a8
+platform/external/autotest 4d744a73aa7bc2bef8fd0390ce80e22e02facff9
 platform/external/avb fccd64ecaf416932a3f668eaff0a6af1eb9cba75
 platform/external/bart 8c0608b2d51fcaeb9a84d748499108fd8efe9fb3
 platform/external/blktrace d345431f16b8f76f30a58193ff2b26d5853e1109
-platform/external/boringssl 15c0b3594be4cd3bd18a44be8eef0429a0cb072f
+platform/external/boringssl c6ebb28b08232d4af3e99643b4e260b98381b4c6
 platform/external/bouncycastle 23e859dfd2e095bd71be0290b7c99f0016c6bf4e
 platform/external/brotli 5972a1cdb82a8417811bfc4c424fd1384160f573
 platform/external/bsdiff c82a7587b850ae43ba4bdb1d317e697642896215
@@ -93,15 +89,16 @@
 platform/external/chromium-trace 3e601f2c29e63f5151aa982790deea52645bc6ea
 platform/external/chromium-webview 566a38bfcf260c9cf94af0a82f9c3551b9830926
 platform/external/clang 4083c7505ffbdec9338f19e1288043efa87b9694
+platform/external/cldr 6a2f6ad06b1a31ceec40f2283438a546d8f7af1d
 platform/external/cmockery 9199c7bfafefea32d1884182fa655b6e4578c1c4
 platform/external/cn-cbor dd6fcf75d70cf6f9d06014813df325b3574032a7
 platform/external/compiler-rt 754fd3d334cf667e65c9642f175326cd07922983
-platform/external/conscrypt b750e576e9a3393eff41588d718fbe1233c2c5d7
+platform/external/conscrypt b8d709a8b00c4dbb2f44545fe387333a5345b550
 platform/external/crcalc 5ee5a5919298a037f859e0f14bc058eb29710eb3
-platform/external/cros/system_api f3f377ccb9aee6da9e346f1372f171ca097995ee
+platform/external/cros/system_api acea362da79d44846981ca97b4d66e56bd49d77d
 platform/external/curl 0c6d81f80bf942993566564f6efb1de2ab1d836b
 platform/external/dagger2 aa6a6e2682aed0d5bb483baa37a04357af0ea918
-platform/external/deqp 1dfe5d68bd78ebc44ee80222452e4a5f5656aab6
+platform/external/deqp 9800dc30748dbfaccc32ab15e9012fc4e61d20a2
 platform/external/desugar 9e1602fcb030f33d2d263acd783a9e24fccb3e7d
 platform/external/devlib 5222d76c31640dbb9c2f319f7f09cb42074002f9
 platform/external/dexmaker dc8ca0a5de696b028e21f8ad7ebf4ee4936e128e
@@ -109,13 +106,13 @@
 platform/external/dlmalloc 6661f3ca66b55d8f5a57b96fec97efaf8f3897a5
 platform/external/dng_sdk 28469c57712f985ba7acbf4ed7e2a8352bf33a9a
 platform/external/dnsmasq 1e03ec8dc8c0401318bdeaef0845709d733b8f38
-platform/external/doclava ec8e7ebdfc471ac221c5fda93d4f3843a6a9aef1
+platform/external/doclava bfb4c0d806d0f4013a79f9393cef7b9f93e6a512
 platform/external/dokka 244f97fc9ec5745b377e594e54b2f465489fef8b
 platform/external/drm_hwcomposer b4ae4fab95bc638335309091084d5378ccabc7e3
 platform/external/droiddriver ef618d981947f6d8242755516269a0026c07126c
 platform/external/drrickorang 5ea28e9b46d5f0b805ba8ec84a5541d6a4869de6
 platform/external/dtc f0b88bfe14680e11e51c8637d08d8fd0fe53d4da
-platform/external/e2fsprogs 25892f1421a6f264eec8e99f6bddc92e5a548a0c
+platform/external/e2fsprogs 794489fc8b7e3ce263d5c7f2bd2e62202d857244
 platform/external/easymock 1c7aea9e23a6c155f08b08af709de1751476483f
 platform/external/eigen 1d5d34618a9c4d8340eb4f6d597fa84563371d46
 platform/external/elfutils bc54f04a343047328a0f268ef525a05e2bdea31e
@@ -124,7 +121,7 @@
 platform/external/esd 943c42b6f8e9afe821744aa4c039f4943ebf29f5
 platform/external/expat 9204094d45b6274f1673472427bdfb6c18538a09
 platform/external/eyes-free 16bd4c7a4d1bfe229068b637614dad7c48dd2ceb
-platform/external/f2fs-tools 2867adcda4424501874d17e449ac26caa5766d6e
+platform/external/f2fs-tools 8f3bc3f9bd26adcf39216386d61d3ae434e84aff
 platform/external/fdlibm 2cc2d9e683f82a9a3a2145118306adb2d2e91d4b
 platform/external/fec 14e8e0309c9bfca60c34b0bf4021b49dc72081aa
 platform/external/flac a16bad628f3492590f28389c4c56360e9efc8e87
@@ -177,7 +174,7 @@
 platform/external/jsr330 231a7a1e3a4e049aa1bf14ff69f947f05bbad7ec
 platform/external/junit b52b6b012d348d26d693657da3cb75ff525990b4
 platform/external/junit-params 98cf2d73469fb6d9aee3f453d17169770983a57b
-platform/external/kernel-headers ba7c72cc431a39d8ea792556a09d1b702c545627
+platform/external/kernel-headers 62240ee6662daa3f339206717125c59ff8143df0
 platform/external/kmod 3080778f3b915e75328d904887e72f6015a6960d
 platform/external/kotlinc 7e0c7b88c2b648a7f53dae88238c79fb9364890e
 platform/external/ksoap2 9fdc4a6bb2b882bd1d6c822d2ad0c66585d66ba9
@@ -186,7 +183,7 @@
 platform/external/libbrillo 5b67e34f822b7288a24723d090b0329cf12750aa
 platform/external/libcap a9bf1f0446b20683183e0070441f8fa142e67c71
 platform/external/libcap-ng 9268914ae163fbb60c63ab16aba6906c9c92e35c
-platform/external/libchrome 4a54b98aa445f521c6945e4f4a1e0ea788fa7da8
+platform/external/libchrome 2e2446af20fcd5c2202fc40c5f50c66b983c706e
 platform/external/libconstrainedcrypto 19294173909b349d361ee592855425a5bc4196f7
 platform/external/libcups 9d428efdba9c929546f67ca87640697d447af544
 platform/external/libcxx 02ad8ad9214145f918020b17fb9a0f0d3f86dd46
@@ -203,7 +200,6 @@
 platform/external/libjpeg-turbo bd7903e2a5584fe8d4c1103da25dff429e77c304
 platform/external/libldac 15922bc3b3052b0928ba3996daf72d711f13fcf4
 platform/external/libmicrohttpd 86d3bdb95516ffdde278bcea3ff9258832c4688e
-platform/external/libmojo 02d8c056c1f7396f54b5871f2d09e89be6244bb4
 platform/external/libmpeg2 458d7f1d066fafd3da8dfa910ba1c08246ac3d41
 platform/external/libmtp bd454345fe0bb012515f2ab41eee479801eada01
 platform/external/libnetfilter_conntrack 0c28f13f32e490b4983f8aad240defd54e5ed7dc
@@ -216,7 +212,7 @@
 platform/external/libpng c85cbbda3dc726783b046853ca847884750b2620
 platform/external/libtextclassifier 0b3ea84b83c3fa8108f9879d7f141445644fcde8
 platform/external/libunwind 41ba0e90f33fe3b5d1467e4fab5e0a709685c0db
-platform/external/libunwind_llvm 9ca0ad7a15a8b9868f22f67d13fe49a2d02601dc
+platform/external/libunwind_llvm 34ed2ea33c5cbd8799e8658080a0017fc702e538
 platform/external/libusb 95affad99635ac7c02606d6ff7d94034963d49ac
 platform/external/libusb-compat 759481ae400d02fe99488dcdcd653b4f8139a39c
 platform/external/libvncserver dc66d75266c02ec07b0a6524db363d697eadd5c1
@@ -235,8 +231,8 @@
 platform/external/lzma 9186d4157ac38b8c314ffe99ea031faff87de996
 platform/external/markdown 06a8f8b914d477183f68b84424bce8ff4dae7e84
 platform/external/mdnsresponder 9c56330ccc56dfcc48b4a08c94dadd2a0c1ff86b
-platform/external/mesa3d 50a2a9ba80f38c382fffc7942d092aca54a017d5
-platform/external/minijail 9dd13fd059ffe080c55f60ab98fbecdc7a3ed7ec
+platform/external/mesa3d 7347c4264052920b2eb02eee084809760ac7c9a2
+platform/external/minijail 542342125831c69eb9c80265cd865250579fa19d
 platform/external/mksh 827d6b8caff5c6c06fa3688ebce010df747b67b9
 platform/external/mmc-utils f105db5bd1934f0c3e5f74bbc9a5aaeac7a6bf2b
 platform/external/mockftpserver 48ddf9e8c10d2b2b956924f3e6da4b9d13787480
@@ -262,10 +258,10 @@
 platform/external/opencv b34c1e94c5e770c4e80bc621d2a84b35414d9dec
 platform/external/owasp/sanitizer bbfb25464ff30c5a62dce351d719a8c533afb2a3
 platform/external/parameter-framework d5944a530eb24f71ac50a3faddd1501f41b61bca
-platform/external/pcre 4768daadd257b8f56498b00950bcc5807a2ba6ff
+platform/external/pcre d895c07ca06b0ab7bffc66b3bbcc084ce2fc80bc
 platform/external/pdfium a0e7c81674a57d607c7cfb668c928d046d83fb1a
 platform/external/perf_data_converter 77162c97e59b1e6b3895a97b3b9dfbe45422ad3f
-platform/external/perfetto b9e29699ac9d4bbfb64f93b1551acd55f5cdc9c6
+platform/external/perfetto 4d0f6c810ab151be094113ac1d69eb3009f0208b
 platform/external/piex bb217acdca1cc0c16b704669dd6f91a1b509c406
 platform/external/ply 5b6a08a9e9d1916e83f7b7fc177f1e97271e80f6
 platform/external/ppp 90da8c8f15db2c82aece6e4085aaf9c116d481f2
@@ -325,7 +321,7 @@
 platform/external/shaderc/spirv-headers b252c470366118af0db2b4395217bedffb4c2e01
 platform/external/shflags c4876e01829b8cf110ee33267bb1bad1f8ebb51d
 platform/external/skia 5000290e5f93ddb048681e6efee908f119e1dd90
-platform/external/sl4a 10e6db532925198cdff94011a410182bd99089fc
+platform/external/sl4a 1b8a78713d5b132be8fde77d1fac4094a1d8d077
 platform/external/slf4j 8ed83fa0a47fa8dfd5cc6b1437109beda7182d3b
 platform/external/smali 9cd7a6e0ace477a79596aab75c0a52fba03087fb
 platform/external/snakeyaml 92d847d5a13f5ebb356706bfb3aa0126f8db436e
@@ -347,9 +343,9 @@
 platform/external/tinyalsa ce0616534e7fcfd9ba4857075a08e54e0c32424e
 platform/external/tinycompress 1926c2138d9825d29d07b1532c28dd85ab833c24
 platform/external/tinyxml 119ea69917f3e06692de2a4430c291487eb74eba
-platform/external/tinyxml2 8c7e56d18051aff1f71c72e78924519ea7f249dc
+platform/external/tinyxml2 c4a167426ff55cf782aca27dadfa7d5c4f872efc
 platform/external/toolchain-utils f1a93c225b92dc0059e7d7e2de7c7bd0a493e23d
-platform/external/toybox a7aae6a1dc98d4a89fb7095b76deebb42d2c594f
+platform/external/toybox 94e30f6a1edecea393e27f1b1ac5423fa3676bd3
 platform/external/tpm2 f52a9aae46ca182174d61342791d0d519bc51629
 platform/external/trappy 31ccc081929e27f780a87a94deb20e4333c6b323
 platform/external/tremolo aef7026aea714341249989c8323a9c62eddc481a
@@ -360,12 +356,12 @@
 platform/external/v8 b2a709533213472c32e1c3928d0a285e64ef5dde
 platform/external/valgrind 4d492393733cfae4dd97fbc8971207905b37ff75
 platform/external/vboot_reference 0138d45436f0c3d99bb9602b1118c177b9195e5d
-platform/external/vixl 2f21e041af74f69d2f3ef277668b36484b5ca5c2
-platform/external/vogar aa4decc90c7cc2575f6d0932c0873e2638d269b7
+platform/external/vixl 9b00771ae42e6ca9031ce5095ae08cc9a2feaa72
+platform/external/vogar 8833c43ac9e0c119567226f3f2955a215c3ae237
 platform/external/volley aee0d184daa41c0abb5bf88580ad6cf7fea63d72
 platform/external/vulkan-validation-layers ba7c9df0abca79aa6498a2f8534ace0b3d7a059e
 platform/external/walt 37c75fea5674f9430f77b0e952a1969c7c14a59f
-platform/external/webp 0e74f28af0ca383f5ad9b0ccabfab2fe4afa5b7e
+platform/external/webp 4756f2b049f23e52664067b7a24666d13dec3895
 platform/external/webrtc dbf4e663744fae37318982fe5c394cf4f97e2a76
 platform/external/webview_support_interfaces 51b18905eadbbdf201d5e3864fe854da2c5d3719
 platform/external/wpa_supplicant_8 ac6b90bc7c79c4c9e9d70ed00345d608c4fbe4d1
@@ -377,11 +373,11 @@
 platform/external/zlib 0d8ec3aa938b73192a8fd69f9cd1b2568f12c4ed
 platform/external/zopfli 326ac1cbe4782894dd1be564bfcab361ddd4f8f3
 platform/external/zxing fedf8f2d8099bf7bb85dc3db8699343d56617deb
-platform/frameworks/av 6c9ba4673bdd33b497cb8685b088795e2c486a94
-platform/frameworks/base fc9bc10d69db0d1dcbd14c5d2eff0b0e01a7e55d
-platform/frameworks/compile/libbcc 243707c31ece17e93c81218b98fb7b0fb2e238d2
-platform/frameworks/compile/mclinker 32e95883e395b11af4b3e4edcea859a0007ec65e
-platform/frameworks/compile/slang 71bb28e6af64fc75bf1a4b68bcf9eac727699fbb
+platform/frameworks/av 2178e2c8103cb29cb77cf6b92dc216d6b9d538e7
+platform/frameworks/base 59e139a767b5552a0c42ce236ff59f843900e842
+platform/frameworks/compile/libbcc 3260678523ab0b68336b607905a748395685c6e9
+platform/frameworks/compile/mclinker b8036c7ba0fb200ba514c69add80b38cbba39cdd
+platform/frameworks/compile/slang 2faac495b3b8ba3ecb9dbbdc45a5c490d061a840
 platform/frameworks/data-binding a53fdf4a28693a8ebbc5d3fef1e44423a560dc90
 platform/frameworks/ex 2fd9d9cb046b212889797eeb8aa92e25ace172e0
 platform/frameworks/hardware/interfaces 2f6f803ecfb198c3dc0a51f4d18db9593ad11159
@@ -389,7 +385,7 @@
 platform/frameworks/minikin 281c26a92ffc8fdcea55941c0e7a02b90dca79f2
 platform/frameworks/ml a66bdf89ff6b3ce5d32576b83c1d579f7b008da4
 platform/frameworks/multidex 38be0f4882057d25c26a4aac93671a39a8cdff02
-platform/frameworks/native 8d36f179eed9864b394107755eacd5425927147a
+platform/frameworks/native 93a0198e5f7a90150549f74fd2080c730f01b138
 platform/frameworks/opt/bitmap a0d4e3108663202564a6833b76770075b8e5b767
 platform/frameworks/opt/calendar 03dbebcdc8c9dfe18b51fe129ca03c846b3a6ff7
 platform/frameworks/opt/car/services e22ee2007472cff08e324594e9954f01d7bc30d5
@@ -405,10 +401,10 @@
 platform/frameworks/opt/net/wifi f24354dfb99eca9de897e258f3818045c9464eab
 platform/frameworks/opt/photoviewer 569bcb26d0dcf2fa98d85a8c400ddc8fdf783fcb
 platform/frameworks/opt/setupwizard 9ac186c5e9fe85085946a034c518e234b9a20dde
-platform/frameworks/opt/telephony 2a7f19d283f36e653df70addf7c400f1dec54aaa
+platform/frameworks/opt/telephony caa67c8a19d8f0e89bf893afe67e9bfaba426d56
 platform/frameworks/opt/timezonepicker d8ecd96676e64af62c9c252ba274ade4b416ebc5
 platform/frameworks/opt/vcard 3adb98b7e9b604ca9cbca46c778abcdc2692f330
-platform/frameworks/rs d7593c4d049c710d221227ed28287dc430f3ad9d
+platform/frameworks/rs 0b62366ac13908dd55a69c0b6be1078c367798c7
 platform/frameworks/support 57f7e35572a20b6ff4bd99fb714e2efcbf8023bb
 platform/frameworks/webview 8ab2b2a747942e08cf8c3591bf2f8f783602316e
 platform/frameworks/wilhelm b117f433055c3c0a18d9dc32225ea7df98aca97f
@@ -432,7 +428,7 @@
 platform/hardware/intel/img/psb_headers c29e8fbcf9ada93e122ca53f9c310a0fc6a7ad06
 platform/hardware/intel/img/psb_video fabbb665d0e0aa1c4286acd423cc1e572d10d684
 platform/hardware/intel/sensors 68dc9e70b79dacddc4e0bf00af0de7f764b04eed
-platform/hardware/interfaces a7b9291b825755adb5249bd53e4aac2ee801e7f8
+platform/hardware/interfaces 2e38b2c0f640b29620d1e6a74b83dc4978c827f6
 platform/hardware/invensense 93554468123313a9585281d6c7e2509854ae1142
 platform/hardware/libhardware 7904e9c2d777674adf3f71f438001824773ef323
 platform/hardware/libhardware_legacy a0f12356762398542c70ee4f5a840b66c6adfdfe
@@ -461,11 +457,11 @@
 platform/hardware/qcom/wlan d914ba9acacc625a01714eb135710aa62f0ac058
 platform/hardware/ril f6b6550f24f9b531b0050cf05d962de7dcbf8523
 platform/hardware/st/nfc 9459c897cee0ef18438401173d8f6623aa43499c
-platform/libcore 3bc40624dc9ce524bf29b583252d83029afcae2d
-platform/libnativehelper 7c4fc7558535c9501f96df0ba3db2dd9989ba690
-platform/manifest 613acd5c4dfb49d30aabbf67b6f5e7d9ae71521c
+platform/libcore 2399174cc54f122353cc06aa77e51fdb68917c95
+platform/libnativehelper b8b2e34518311e776dd61982897a35f0b520cb0f
+platform/manifest 1e9c194bd60a5136093b93aa7b1de77b0e8bcbe8
 platform/packages/apps/BasicSmsReceiver 1de7ec51f2e65f76597688328764769e4c8aed42
-platform/packages/apps/Bluetooth dddfc485e9199e652a86c78d17fe96afb4011391
+platform/packages/apps/Bluetooth d4ce2ea25f0f0b73026a4262dfe99a5c2da1e148
 platform/packages/apps/Browser2 ba4deaa4ce223143e699bb530035c5d736ab161f
 platform/packages/apps/Calendar 956525423e51315015d6902e3b9487e72e9f4885
 platform/packages/apps/Camera2 6c904ced8128a591ea31044a7ab4b96d5a13dc5d
@@ -485,12 +481,12 @@
 platform/packages/apps/Car/UserManagement 9391baedbf4ad645d7c125279a19d7a2b6b285f9
 platform/packages/apps/Car/libs a8b58bdcee5325034ba87d0f63bbe3d824535915
 platform/packages/apps/CarrierConfig 7e35430600824994e6c6b38470197d984c2ed991
-platform/packages/apps/CellBroadcastReceiver 68901600bd9d06ef3d325c7ca7685aaa23f858e0
+platform/packages/apps/CellBroadcastReceiver 5f5d086cd1edf2c62079a39023d6692f5d595289
 platform/packages/apps/CertInstaller ae1a16bd415b4b9dcd2e4db3c87b159b204f0f0a
 platform/packages/apps/Contacts 7173594e8bff9249792b9a1698cf63420897f23e
 platform/packages/apps/DeskClock 254290d4ba92078b23e3e40a8619e3b6871c5c48
 platform/packages/apps/DevCamera 90fdbf7460fbd255194455331c6a38a7b8f41dd2
-platform/packages/apps/Dialer 33d42e12b827a3602db1f026a5d7e7d8550d8c6b
+platform/packages/apps/Dialer eac73f3067acefffaa8eec7b7a9d8b3cc176e674
 platform/packages/apps/DocumentsUI 55dda5a69571730a1db2adfe948e7bcc28f10cbe
 platform/packages/apps/Email 6eb899d47c5e3bec8e5613782ac69a567f8e86de
 platform/packages/apps/EmergencyInfo 54d66862a03f63d9212a8e7d083bf3d6918907dd
@@ -500,7 +496,7 @@
 platform/packages/apps/HTMLViewer 84f22d070f5181da041f9694328e7d6404f1a666
 platform/packages/apps/KeyChain 2c7fb841f5e56490c221515013633273353f16a7
 platform/packages/apps/Launcher2 00d14bddacb5bcb19c1b31fc258d81820a497134
-platform/packages/apps/Launcher3 8ef0aff59308512d57eb48891e5c53b3bfbb0101
+platform/packages/apps/Launcher3 f51b706439ad7ed98f2f7de0a50d427e2a7fd632
 platform/packages/apps/LegacyCamera 4e4414c8758020142f5d6635c73d644953a88eef
 platform/packages/apps/ManagedProvisioning ce32ecde38fdc7c9043c7cf6aa64e60cc5d5b109
 platform/packages/apps/Messaging 3dd036dc9973f3cf10768d66e892d152a58c6dee
@@ -526,7 +522,7 @@
 platform/packages/apps/Test/connectivity 0ed69e07ef9e23ad9a199460ff0cba4b1410d0b2
 platform/packages/apps/TimeZoneData 4774dc09fde94fbed863196d243aa28b1327ad7a
 platform/packages/apps/TimeZoneUpdater cb62ec134f8c779b17d13dd6c2dbe3b44219b460
-platform/packages/apps/Traceur 31ea8bc2c426d883c6a39bafea0cf56039751328
+platform/packages/apps/Traceur a93ffff870a66379e6b6ddca4c0ad148bc677cc5
 platform/packages/apps/TvSettings 65dde5ffbcc173202c6ebbba6edcf8e6ad203838
 platform/packages/apps/UnifiedEmail 3ec87ee3a7c4a6f4a55f817ddf402ffb54cbd235
 platform/packages/apps/WallpaperPicker 63e34444e953173bd9b60561e63f4760916ae00d
@@ -552,11 +548,11 @@
 platform/packages/services/Car 4d1e3469cb2f285e7a4a864bd48a4c5177e7c83f
 platform/packages/services/Mms 1655b9673c1b2ca57cd63199f0094997ee66f5da
 platform/packages/services/NetworkRecommendation 85184fbd6abd298e8d24ba45863287bc982c39db
-platform/packages/services/Telecomm 356d4b2a0e3b39de715486624bf8afb98d7ac321
-platform/packages/services/Telephony 0afecea7356c6cd186ab7ad69ed14171e89a325b
+platform/packages/services/Telecomm 560f8f30903ea15054e6bfa52775fadba2d1b2db
+platform/packages/services/Telephony 39f6d948d7855ad0ef70a741e7b1592141c7134a
 platform/packages/wallpapers/LivePicker 695ea134075b5947edbd9dc45f050ef5cfa6e812
 platform/pdk 31179761140edfba9234db19ab1ec64748033cc1
-platform/platform_testing 1b74dd3a651e904f34e4082c28a21c354f3cbb14
+platform/platform_testing fa7f37a8e19cba0cfa579da6a2697e00dc03f81a
 platform/prebuilts/abi-dumps/ndk 1544050ff3b6db6358d9e328baa1366fd63a8416
 platform/prebuilts/abi-dumps/vndk c79d08eee4127837135db56d0b03b3c44f1508d5
 platform/prebuilts/android-emulator a0b027c81bb70dca4f055b82db563b91c197d59d
@@ -564,8 +560,8 @@
 platform/prebuilts/checkcolor f6f661b424f646bc5ddf9e1b1e644abb492b7547
 platform/prebuilts/checkstyle c52010acac9b638f45f66747762cc0ad187c1e39
 platform/prebuilts/clang-tools 3a08d993fd11e6ebf87d5ebaa52ee9bc2ad85ee0
-platform/prebuilts/clang/host/darwin-x86 4251751bf7564c445d400b47973de59b0a886b0c
-platform/prebuilts/clang/host/linux-x86 d05511b292fc58db828c90b21374692bf3d30800
+platform/prebuilts/clang/host/darwin-x86 6c2eb897f90ebbf575032831833de8655c040be7
+platform/prebuilts/clang/host/linux-x86 aea8a0b2d8e85256b888882ce968cf409de6f316
 platform/prebuilts/deqp c51deec2af21659a05960bdc48e4d9a49b507672
 platform/prebuilts/devtools b6d577870004cdb6b921118384d3b5a63c4a27d4
 platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 3c641780cd3faf03216017ca934f229b4bd5254e
@@ -595,57 +591,58 @@
 platform/prebuilts/python/darwin-x86/2.7.5 0c5958b1636c47ed7c284f859c8e805fd06a0e63
 platform/prebuilts/python/linux-x86/2.7.5 02c50fa81b02a4246acac1d6eedcb28d77a4c2e1
 platform/prebuilts/qemu-kernel 1586476297c751b93bf520427d3f06d500fe6514
-platform/prebuilts/r8 67aba03ca816aaee1f7c41f1951622691632b8b6
-platform/prebuilts/sdk 7ba5034a18ef8a50ed77e1ef138c0682eda2f930
+platform/prebuilts/r8 feac83d01c4781d441dc9d819f5a6ff8475a51f2
+platform/prebuilts/sdk 3c86743ff0cf6a76eab6ee42039afb4463e6bbfd
 platform/prebuilts/tools 606ad49aa8d62e1ed64a86c1333bef7aac836701
 platform/sdk 1ce300881fb5a6d02c05e2fd103dbe18ccc165b5
-platform/system/bt 93011f0038824ce23800cb1439c325ce854ee1dc
+platform/system/bt 2a3b9b597ee07f8728bd9903b0bc104c4e24fd6c
 platform/system/ca-certificates d8f261e47d3d1401140e974f7d21ac0c13840085
 platform/system/chre fdb75beab709576e90db8116dff6ca43805f144d
 platform/system/connectivity/wificond ed1f3ddbe13fed1d5fedd5dfcdb6912bc40ee68d
 platform/system/connectivity/wifilogd 6e5a94db8d7dc577a135cc81d80e0bdf39d42780
-platform/system/core a3721db3338c051c7f31fc6e70ca08c740e28761
-platform/system/extras 50df4e8f4355c1778aff01e041ac3441b078c139
+platform/system/core 49b7f296b9e513b69fa60088e03a70cb354a3120
+platform/system/extras ec911c7426eb9b040f0fb4aefed6ef4f04351ef5
 platform/system/gatekeeper 1173d5841cc9008680c325686f4a1653a27aa048
 platform/system/hardware/interfaces 94832f94dc902b130bf3b2814e9addc2f27a2840
 platform/system/hwservicemanager 512903da9e6aa0f87284c4de16a01aacb7b8ff8f
 platform/system/iot/attestation 978bb9a973d63fbc28bcba3d5d79caee5b973431
-platform/system/keymaster 335949a09d1feb9dd3d294e3efd58536a8e51be4
+platform/system/keymaster 9480701e6924b0b4cfaae263aae9a5bf35dad206
 platform/system/libfmq 76d547d1be0fdcd099327c0d824aa173f25b9d65
-platform/system/libhidl e07d5d45598e984b8fcf65510b055aef72201a20
+platform/system/libhidl 5f3a8cf804b87e9b0c9abebef85a57027555f1d9
 platform/system/libhwbinder 418856e083a27ef19744b12208c49c84b0bec1d0
 platform/system/libufdt 2626d8b9e4d8e8c6cc67ceb1dc4e05a47779785c
 platform/system/libvintf 1dd79d71f5adb520fe3ebfb4c6d0bb559307cdba
 platform/system/media 384bd00de2efb16eea962367734c2cdebe631e42
-platform/system/netd 8e3a7c9840885ceafd496cc9a960ed4d43c8b26f
-platform/system/nfc 99698b839227c66b95cdded910da99248d820c36
+platform/system/netd 76fb71603f101e4d0db6a1bcf52f122a6e7ff8ed
+platform/system/nfc 5d014a1c750cabf1d07ef9998ff6b0d11478bb80
 platform/system/nvram b393064c69320437f3ec56a51450db419ffc9806
 platform/system/security 6ec80146e52e74b34e4499a553553d9ea01a30a0
-platform/system/sepolicy 673b4db77706abb51f75ebfe685cf0b7af40f634
+platform/system/sepolicy 92b6793d115af07eec9a46e900b098882bddee3c
 platform/system/timezone d8b0d16fe5fb81eeb199f309b7320c7a26c91b4a
 platform/system/tools/aidl f1b50780ce96c916802e11de10334627f529a728
-platform/system/tools/hidl 4ab7a849604401016b0825cf7864dac3a2486516
+platform/system/tools/bpt e2c77aebf72d56beb50329e9ce873ea834e02164
+platform/system/tools/hidl 42a4aae5b21e532a6b11cb6d413f1f282a5534ba
 platform/system/tpm be1da4c5dbf43a6a16cdf6fcb55bd9ea0083a7c1
-platform/system/update_engine 07216d6fd7a160130b0bd88b6f74db6a8c81883a
+platform/system/update_engine ac773deff2287f0f3a2da52919efa2eefd574970
 platform/system/vold f6dbba884632e4770011f389559da673b5529935
-platform/test/framework 3a6aaa3c6017069d244ea7a11dfcae9b1a186046
+platform/test/framework 707e49acd77bc3b6dcfb32963de5437f3ed91d86
 platform/test/sts e50c6f1decfb63167eade6600450923ed1386840
 platform/test/vti/alert 2270d160e38f0623d708cce36754fe14168dce64
-platform/test/vti/dashboard 0141729d4c4a6df85845e17d28b86e230233210b
+platform/test/vti/dashboard af67870e99758b915a622f64d734c44fa53b8fc1
 platform/test/vti/fuzz_test_serving 4f804b528934be8723c71b422b3dda33efe891b4
 platform/test/vti/test_serving e3b4ea8cb51a722a0a52ece99edc3ec31ab74ff5
-platform/test/vts ecbae8eb4722b2fffa42a6eb69ebbc5a0dd7ee85
+platform/test/vts 5ba3ec58788d6b944eb91e6e6820dd84191210c6
 platform/test/vts-testcase/fuzz 70288fdeaa251a7b572b5855cec4bb205026b2ea
-platform/test/vts-testcase/hal 3a6ee664e942d0aa0b0eabb6b1a2f52a98a0470f
+platform/test/vts-testcase/hal 2b5e59286f975ef2c040d45a50592e91248d7e15
 platform/test/vts-testcase/hal-trace 2e44794cc0b48ccf7d769d09511f85a6b93c9e8b
-platform/test/vts-testcase/kernel 9a2769699ee96125c3441b7cfa4150265ca0a599
+platform/test/vts-testcase/kernel db688508ef71c768489af3cf539c1696eb0fb8a5
 platform/test/vts-testcase/nbu cba91305e8eefdf34a2cd3643eeb8fffc895096d
-platform/test/vts-testcase/performance b79e0005236f2966a05d0ee6648c479501dcec22
-platform/test/vts-testcase/security 5f975257ad6cc723684254c1b580cf22e077d73f
-platform/test/vts-testcase/vndk 29065e94e0784d4dca9b42795566e5de037ab8a0
+platform/test/vts-testcase/performance 1b5e4f621043ef93b2549123c9a1252daac13b42
+platform/test/vts-testcase/security 371d089c303353d35f0ef56baed81894c2b80d93
+platform/test/vts-testcase/vndk 3df48ddf36502717f862a318eb3de2ed9b917951
 platform/tools/acloud d29008907e4183c2fd3a9c9ac191ca36f75f0f16
 platform/tools/adt/idea c42a87ece8dbeb3ce1e0ee5d26576466a8127869
-platform/tools/apksig ac023c95f53bcda0d69503c181fcd7da32feb294
+platform/tools/apksig 2616b964950b591d92247b3e11f7a97e7396c936
 platform/tools/apkzlib d6148f97a5cef82fca960955f23f1d1917db3944
 platform/tools/base 908b391a9c006af569dfaff08b37f8fdd6c4da89
 platform/tools/build 69c4b95102b4b9862bfba68b3eaf5b7537a705ee
@@ -654,14 +651,14 @@
 platform/tools/external/gradle 770d6ed9ff91fb085be6f9bd7fe1ee2a2199aebf
 platform/tools/idea 9b5d02ac8c92b1e71523cc15cb3d168d57fbd898
 platform/tools/loganalysis 9308120bc2e837170793af30388b6a21d5e47c07
-platform/tools/metalava 5f5d5ea57f2a02a54ed0cedc46a4c3eb9d2564bb
+platform/tools/metalava 4d21ce4cddc8e85549ead7219e9d2c82d8a88ca3
 platform/tools/motodev 69989786cefbde82527960a1e100ec9afba46a98
-platform/tools/repohooks 8ac865f66ac312f64963306126de793533cc06c3
+platform/tools/repohooks 989ccce479d8afdb5bdeab4ba2a6272357fd7720
 platform/tools/security fdda0f4c20431c4b40372e2a0080017f50f55218
 platform/tools/studio/cloud 58f06e77e051fff3903adabca7acdaa9dd12ec2d
 platform/tools/swt 8996e71047a2bd11efee46ef14e02435ab5fa07a
-platform/tools/test/connectivity 466e6b7d4df471cc12a9577bf8d0cb066a0e93a2
-platform/tools/test/graphicsbenchmark 66b18fa8b1ea3b82201a2c9ab0a376214a2da0b4
+platform/tools/test/connectivity 908927a856da08abc837febfe9a416091eeaa10b
+platform/tools/test/graphicsbenchmark 102c44cf07cf338c811303747c2686c2c549383c
 platform/tools/tradefederation 7f3157d862eee50bc80d0d405322fd06b69eace5
 platform/tools/tradefederation/contrib e5aba25c43add3a91e2064ecc3d5403ce7e1f7bc
 toolchain/benchmark 2eebfdf9a165082e60d9ec0ac1be85dbde740d9a
diff --git a/test.py b/test.py
index b8aeeb6..1b80964 100644
--- a/test.py
+++ b/test.py
@@ -139,6 +139,10 @@
         cls.adb_root = adb_root
         cls.compiled = False
         cls.has_perf_data_for_report = False
+        android_version = cls.adb.get_android_version()
+        # On Android >= P (version 9), we can profile JITed and interpreted Java code.
+        # So only compile Java code on Android <= O (version 8).
+        cls.use_compiled_java_code = android_version <= 8
 
     def setUp(self):
         if self.id().find('TraceOffCpu') != -1 and not is_trace_offcpu_supported():
@@ -175,13 +179,14 @@
         self.__class__.test_result = result
         super(TestExampleBase, self).run(result)
 
-    def run_app_profiler(self, record_arg = "-g --duration 10", build_binary_cache=True,
-                         skip_compile=False, start_activity=True):
+    def run_app_profiler(self, record_arg="-g --duration 10", build_binary_cache=True,
+                         start_activity=True):
         args = ['app_profiler.py', '--app', self.package_name, '-r', record_arg, '-o', 'perf.data']
         if not build_binary_cache:
             args.append("-nb")
-        if not (skip_compile or self.__class__.compiled):
+        if self.use_compiled_java_code and not self.__class__.compiled:
             args.append('--compile_java_code')
+            self.__class__.compiled = True
         if start_activity:
             args += ["-a", self.activity_name]
         args += ["-lib", self.example_path]
@@ -191,8 +196,6 @@
         self.check_exist(file="perf.data")
         if build_binary_cache:
             self.check_exist(dir="binary_cache")
-        if not skip_compile:
-            self.__class__.compiled = True
 
     def check_exist(self, file=None, dir=None):
         if file:
@@ -269,7 +272,7 @@
         self.check_exist(dir="binary_cache")
         remove("binary_cache")
         self.run_app_profiler(build_binary_cache=True)
-        self.run_app_profiler(skip_compile=True)
+        self.run_app_profiler()
         self.run_app_profiler(start_activity=False)
 
     def common_test_report(self):
@@ -360,7 +363,7 @@
                             self.package_name + '/.MultiProcessActivity'])
         # Wait until both MultiProcessActivity and MultiProcessService set up.
         time.sleep(3)
-        self.run_app_profiler(skip_compile=True, start_activity=False)
+        self.run_app_profiler(start_activity=False)
         self.run_cmd(["report.py", "-o", "report.txt"])
         self.check_strings_in_file("report.txt", ["BusyService", "BusyThread"])
 
@@ -397,8 +400,22 @@
             ["com.example.simpleperf.simpleperfexamplepurejava.MainActivity$1.run()",
              "__start_thread"])
 
+    def test_profile_with_process_id(self):
+        self.adb.check_run(['shell', 'am', 'start', '-n', self.package_name + '/.MainActivity'])
+        time.sleep(1)
+        pid = self.adb.check_run_and_return_output(['shell', 'pidof',
+                'com.example.simpleperf.simpleperfexamplepurejava']).strip()
+        self.run_app_profiler(start_activity=False, record_arg='-g --duration 10 -p ' + pid)
+        self.run_cmd(["report.py", "-g", "-o", "report.txt"])
+        self.check_strings_in_file("report.txt",
+            ["com.example.simpleperf.simpleperfexamplepurejava.MainActivity$1.run()",
+             "__start_thread"])
+
     def test_annotate(self):
         self.common_test_annotate()
+        if not self.use_compiled_java_code:
+            # Currently annotating Java code is only supported when the Java code is compiled.
+            return
         self.check_file_under_dir("annotated_files", "MainActivity.java")
         summary_file = os.path.join("annotated_files", "summary")
         self.check_annotation_summary(summary_file,
@@ -413,10 +430,13 @@
              "__start_thread"])
 
     def test_pprof_proto_generator(self):
+        check_strings_with_lines = []
+        if self.use_compiled_java_code:
+            check_strings_with_lines = [
+                "com/example/simpleperf/simpleperfexamplepurejava/MainActivity.java",
+                "run"]
         self.common_test_pprof_proto_generator(
-            check_strings_with_lines=
-                ["com/example/simpleperf/simpleperfexamplepurejava/MainActivity.java",
-                 "run"],
+            check_strings_with_lines=check_strings_with_lines,
             check_strings_without_lines=
                 ["com.example.simpleperf.simpleperfexamplepurejava.MainActivity$1.run()"])
 
@@ -482,28 +502,29 @@
         self.run_app_profiler(record_arg="-g -f 1000 --duration 10 -e cpu-cycles:u --trace-offcpu")
         self.run_cmd(["report.py", "-g", "-o", "report.txt"])
         self.check_strings_in_file("report.txt",
-            ["com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.run()",
-             "long com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.RunFunction()",
-             "long com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.SleepFunction(long)"
+            ["com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.run",
+             "com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.RunFunction",
+             "com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.SleepFunction"
              ])
         remove("annotated_files")
         self.run_cmd(["annotate.py", "-s", self.example_path])
         self.check_exist(dir="annotated_files")
-        self.check_file_under_dir("annotated_files", "SleepActivity.java")
-        summary_file = os.path.join("annotated_files", "summary")
-        self.check_annotation_summary(summary_file,
-            [("SleepActivity.java", 80, 20),
-             ("run", 80, 0),
-             ("RunFunction", 20, 20),
-             ("SleepFunction", 20, 0),
-             ("line 24", 20, 0),
-             ("line 32", 20, 0)])
+        if self.use_compiled_java_code:
+            self.check_file_under_dir("annotated_files", "SleepActivity.java")
+            summary_file = os.path.join("annotated_files", "summary")
+            self.check_annotation_summary(summary_file,
+               [("SleepActivity.java", 80, 20),
+                ("run", 80, 0),
+                ("RunFunction", 20, 20),
+                ("SleepFunction", 20, 0),
+                ("line 24", 20, 0),
+                ("line 32", 20, 0)])
         self.run_cmd([inferno_script, "-sc"])
         self.check_inferno_report_html(
-            [('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.run() ', 80),
-             ('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.RunFunction()',
+            [('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.run', 80),
+             ('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.RunFunction',
               20),
-             ('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.SleepFunction(long)',
+             ('com.example.simpleperf.simpleperfexamplepurejava.SleepActivity$1.SleepFunction',
               20)])
 
 
@@ -625,14 +646,19 @@
         self.run_cmd(["annotate.py", "-s", self.example_path, "--comm", "BusyThread"])
         self.check_exist(dir="annotated_files")
         self.check_file_under_dir("annotated_files", "native-lib.cpp")
-        self.check_file_under_dir("annotated_files", "MixActivity.java")
         summary_file = os.path.join("annotated_files", "summary")
         self.check_annotation_summary(summary_file,
-            [("MixActivity.java", 80, 0),
-             ("run", 80, 0),
-             ("line 26", 20, 0),
-             ("native-lib.cpp", 5, 0),
+            [("native-lib.cpp", 5, 0),
              ("line 40", 5, 0)])
+        if self.use_compiled_java_code:
+            self.check_file_under_dir("annotated_files", "MixActivity.java")
+            self.check_annotation_summary(summary_file,
+                [("MixActivity.java", 80, 0),
+                 ("run", 80, 0),
+                 ("line 26", 20, 0),
+                 ("native-lib.cpp", 5, 0),
+                 ("line 40", 5, 0)])
+
         self.run_cmd([inferno_script, "-sc"])
 
 
@@ -689,6 +715,8 @@
              "__start_thread"])
 
     def test_annotate(self):
+        if not self.use_compiled_java_code:
+            return
         self.common_test_annotate()
         self.check_file_under_dir("annotated_files", "MainActivity.kt")
         summary_file = os.path.join("annotated_files", "summary")
@@ -705,10 +733,13 @@
              "__start_thread"])
 
     def test_pprof_proto_generator(self):
+        check_strings_with_lines = []
+        if self.use_compiled_java_code:
+            check_strings_with_lines = [
+                "com/example/simpleperf/simpleperfexampleofkotlin/MainActivity.kt",
+                "run"]
         self.common_test_pprof_proto_generator(
-            check_strings_with_lines=
-                ["com/example/simpleperf/simpleperfexampleofkotlin/MainActivity.kt",
-                 "run"],
+            check_strings_with_lines=check_strings_with_lines,
             check_strings_without_lines=
                 ["com.example.simpleperf.simpleperfexampleofkotlin.MainActivity$createBusyThread$1.run()"])
 
@@ -747,29 +778,31 @@
         self.run_app_profiler(record_arg="-g -f 1000 --duration 10 -e cpu-cycles:u --trace-offcpu")
         self.run_cmd(["report.py", "-g", "-o", "report.txt"])
         self.check_strings_in_file("report.txt",
-            ["void com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.run()",
-             "long com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.RunFunction()",
-             "long com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.SleepFunction(long)"
+            ["com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.run",
+             "com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.RunFunction",
+             "com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.SleepFunction"
              ])
-        remove("annotated_files")
-        self.run_cmd(["annotate.py", "-s", self.example_path])
-        self.check_exist(dir="annotated_files")
-        self.check_file_under_dir("annotated_files", "SleepActivity.kt")
-        summary_file = os.path.join("annotated_files", "summary")
-        self.check_annotation_summary(summary_file,
-            [("SleepActivity.kt", 80, 20),
-             ("run", 80, 0),
-             ("RunFunction", 20, 20),
-             ("SleepFunction", 20, 0),
-             ("line 24", 20, 0),
-             ("line 32", 20, 0)])
+        if self.use_compiled_java_code:
+            remove("annotated_files")
+            self.run_cmd(["annotate.py", "-s", self.example_path])
+            self.check_exist(dir="annotated_files")
+            self.check_file_under_dir("annotated_files", "SleepActivity.kt")
+            summary_file = os.path.join("annotated_files", "summary")
+            self.check_annotation_summary(summary_file,
+                [("SleepActivity.kt", 80, 20),
+                 ("run", 80, 0),
+                 ("RunFunction", 20, 20),
+                 ("SleepFunction", 20, 0),
+                 ("line 24", 20, 0),
+                 ("line 32", 20, 0)])
+
         self.run_cmd([inferno_script, "-sc"])
         self.check_inferno_report_html(
-            [('void com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.run()',
+            [('com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.run',
               80),
-             ('long com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.RunFunction()',
+             ('com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.RunFunction',
               20),
-             ('long com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.SleepFunction(long)',
+             ('com.example.simpleperf.simpleperfexampleofkotlin.SleepActivity$createRunSleepThread$1.SleepFunction',
               20)])