summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2019-10-16 13:27:06 -0700
committerYabin Cui <yabinc@google.com>2019-10-17 10:35:21 -0700
commitb56d3aca94a39d4beb2e0e27d9e9fae9908d9ab6 (patch)
tree0d6aec8b02b17b23b017f8bf3b55bd885a17bb27
parentc463a3e871abac8c4dd17ffdeeb1a66d3abc2fdf (diff)
downloadsimpleperf-b56d3aca94a39d4beb2e0e27d9e9fae9908d9ab6.tar.gz
Update NDK prebuilts to build 5942325.
Taken from branch aosp-simpleperf-release. Bug: none Test: run test.py on darwin/linux/windows with devices and emulators. Change-Id: I83b32a4a0c09ce62b9af3d3f1034a8e61459a116
-rwxr-xr-xbin/android/arm/simpleperfbin2579852 -> 2571928 bytes
-rwxr-xr-xbin/android/arm64/simpleperfbin3508280 -> 3515864 bytes
-rwxr-xr-xbin/android/x86/simpleperfbin4269256 -> 4256384 bytes
-rwxr-xr-xbin/android/x86_64/simpleperfbin4193416 -> 4172232 bytes
-rwxr-xr-xbin/darwin/x86_64/libsimpleperf_report.dylibbin6290228 -> 6273920 bytes
-rwxr-xr-xbin/darwin/x86_64/simpleperfbin7342308 -> 7765332 bytes
-rwxr-xr-xbin/linux/x86_64/libsimpleperf_report.sobin4994864 -> 4986456 bytes
-rwxr-xr-xbin/linux/x86_64/simpleperfbin6027424 -> 6224008 bytes
-rwxr-xr-xbin/windows/x86/libsimpleperf_report.dllbin3959296 -> 3943424 bytes
-rwxr-xr-xbin/windows/x86/libwinpthread-1.dllbin211018 -> 231082 bytes
-rwxr-xr-xbin/windows/x86/simpleperf.exebin3748864 -> 3876352 bytes
-rwxr-xr-xbin/windows/x86_64/libsimpleperf_report.dllbin4207104 -> 4184576 bytes
-rwxr-xr-xbin/windows/x86_64/libwinpthread-1.dllbin550120 -> 570473 bytes
-rwxr-xr-xbin/windows/x86_64/simpleperf.exebin4037632 -> 4188672 bytes
-rwxr-xr-xpprof_proto_generator.py60
-rw-r--r--repo.prop1459
-rw-r--r--simpleperf_report_lib.py12
-rwxr-xr-xtest.py208
-rw-r--r--utils.py85
19 files changed, 1027 insertions, 797 deletions
diff --git a/bin/android/arm/simpleperf b/bin/android/arm/simpleperf
index d901e07..8898f4c 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 9cf3a23..54619b2 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 de5a1c2..94e3e1b 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 8e29188..2c5229a 100755
--- a/bin/android/x86_64/simpleperf
+++ b/bin/android/x86_64/simpleperf
Binary files differ
diff --git a/bin/darwin/x86_64/libsimpleperf_report.dylib b/bin/darwin/x86_64/libsimpleperf_report.dylib
index b5364a3..1f941c1 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 2f544ef..cde2e36 100755
--- a/bin/darwin/x86_64/simpleperf
+++ b/bin/darwin/x86_64/simpleperf
Binary files differ
diff --git a/bin/linux/x86_64/libsimpleperf_report.so b/bin/linux/x86_64/libsimpleperf_report.so
index 61e4f95..fb41119 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 b55a765..f6beb7e 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 683fdb5..1a5f51a 100755
--- a/bin/windows/x86/libsimpleperf_report.dll
+++ b/bin/windows/x86/libsimpleperf_report.dll
Binary files differ
diff --git a/bin/windows/x86/libwinpthread-1.dll b/bin/windows/x86/libwinpthread-1.dll
index 86de5d6..a41127a 100755
--- a/bin/windows/x86/libwinpthread-1.dll
+++ b/bin/windows/x86/libwinpthread-1.dll
Binary files differ
diff --git a/bin/windows/x86/simpleperf.exe b/bin/windows/x86/simpleperf.exe
index daf2d7d..43e542b 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 f3bf4ed..c693946 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/libwinpthread-1.dll b/bin/windows/x86_64/libwinpthread-1.dll
index ee5d7a3..5a12ce3 100755
--- a/bin/windows/x86_64/libwinpthread-1.dll
+++ b/bin/windows/x86_64/libwinpthread-1.dll
Binary files differ
diff --git a/bin/windows/x86_64/simpleperf.exe b/bin/windows/x86_64/simpleperf.exe
index eabf155..e191154 100755
--- a/bin/windows/x86_64/simpleperf.exe
+++ b/bin/windows/x86_64/simpleperf.exe
Binary files differ
diff --git a/pprof_proto_generator.py b/pprof_proto_generator.py
index 4c59cc5..c635594 100755
--- a/pprof_proto_generator.py
+++ b/pprof_proto_generator.py
@@ -30,8 +30,8 @@ import os
import os.path
from simpleperf_report_lib import ReportLib
-from utils import Addr2Nearestline, extant_dir, find_tool_path, flatten_arg_list
-from utils import log_info, log_exit
+from utils import Addr2Nearestline, extant_dir, find_real_dso_path, find_tool_path, flatten_arg_list
+from utils import log_info, log_exit, ReadElf
try:
import profile_pb2
except ImportError:
@@ -282,6 +282,10 @@ class PprofProfileGenerator(object):
self.function_map = {}
self.function_list = []
+ # Map from dso_name in perf.data to (binary path, build_id).
+ self.binary_map = {}
+ self.read_elf = ReadElf(self.config['ndk_path'])
+
def gen(self):
# 1. Process all samples in perf.data, aggregate samples.
while True:
@@ -301,7 +305,7 @@ class PprofProfileGenerator(object):
sample.add_value(sample_type_id, 1)
sample.add_value(sample_type_id + 1, report_sample.period)
if self._filter_symbol(symbol):
- location_id = self.get_location_id(symbol.vaddr_in_file, symbol)
+ location_id = self.get_location_id(report_sample.ip, symbol)
sample.add_location_id(location_id)
for i in range(max(0, callchain.nr - self.max_chain_length), callchain.nr):
entry = callchain.entries[i]
@@ -373,10 +377,10 @@ class PprofProfileGenerator(object):
return sample_type_id
def get_location_id(self, ip, symbol):
- mapping_id = self.get_mapping_id(symbol.mapping[0], symbol.dso_name)
+ binary_path, build_id = self.get_binary(symbol.dso_name)
+ mapping_id = self.get_mapping_id(symbol.mapping[0], binary_path, build_id)
location = Location(mapping_id, ip, symbol.vaddr_in_file)
- function_id = self.get_function_id(symbol.symbol_name, symbol.dso_name,
- symbol.symbol_addr)
+ function_id = self.get_function_id(symbol.symbol_name, binary_path, symbol.symbol_addr)
if function_id:
# Add Line only when it has a valid function id, see http://b/36988814.
# Default line info only contains the function name
@@ -393,11 +397,8 @@ class PprofProfileGenerator(object):
self.location_map[location.key] = location
return location.id
- def get_mapping_id(self, report_mapping, filename):
+ def get_mapping_id(self, report_mapping, filename, build_id):
filename_id = self.get_string_id(filename)
- build_id = self.lib.GetBuildIdForPath(filename)
- if build_id and build_id[0:2] == "0x":
- build_id = build_id[2:]
build_id_id = self.get_string_id(build_id)
mapping = Mapping(report_mapping.start, report_mapping.end,
report_mapping.pgoff, filename_id, build_id_id)
@@ -410,6 +411,37 @@ class PprofProfileGenerator(object):
self.mapping_map[mapping.key] = mapping
return mapping.id
+ def get_binary(self, dso_name):
+ """ Return (binary_path, build_id) for a given dso_name. """
+ value = self.binary_map.get(dso_name)
+ if value:
+ return value
+
+ binary_path = dso_name
+ build_id = ''
+
+ # The build ids in perf.data are padded to 20 bytes, but pprof needs without padding.
+ # So read build id from the binary in binary_cache, and check it with build id in
+ # perf.data.
+ build_id_in_perf_data = self.lib.GetBuildIdForPath(dso_name)
+ if build_id_in_perf_data:
+ # Try elf_path in binary cache.
+ elf_path = find_real_dso_path(dso_name, self.config['binary_cache_dir'])
+ if elf_path:
+ elf_build_id = self.read_elf.get_build_id(elf_path, False)
+ if build_id_in_perf_data == self.read_elf.pad_build_id(elf_build_id):
+ build_id = elf_build_id
+ binary_path = elf_path
+
+ if not build_id and build_id_in_perf_data.startswith('0x'):
+ # Fallback to the way used by TrimZeroesFromBuildIDString() in quipper.
+ build_id = build_id_in_perf_data[2:] # remove '0x'
+ padding = '0' * 8
+ while build_id.endswith(padding):
+ build_id = build_id[:-len(padding)]
+ self.binary_map[dso_name] = (binary_path, build_id)
+ return (binary_path, build_id)
+
def get_mapping(self, mapping_id):
return self.mapping_list[mapping_id - 1] if mapping_id > 0 else None
@@ -442,10 +474,12 @@ class PprofProfileGenerator(object):
if not self.config.get('binary_cache_dir'):
log_info("Can't generate line information because binary_cache is missing.")
return
- if not find_tool_path('addr2line', self.config['ndk_path']):
- log_info("Can't generate line information because can't find addr2line.")
+ if not find_tool_path('llvm-symbolizer', self.config['ndk_path']):
+ log_info("Can't generate line information because can't find llvm-symbolizer.")
return
- addr2line = Addr2Nearestline(self.config['ndk_path'], self.config['binary_cache_dir'], True)
+ # We have changed dso names to paths in binary_cache in self.get_binary(). So no need to
+ # pass binary_cache_dir to addr2line.
+ addr2line = Addr2Nearestline(self.config['ndk_path'], None, True)
# 2. Put all needed addresses to it.
for location in self.location_list:
diff --git a/repo.prop b/repo.prop
index ffb1a46..ddb60c7 100644
--- a/repo.prop
+++ b/repo.prop
@@ -1,748 +1,769 @@
-device/amlogic/yukawa 081ef6ccba4ad00f3d991957e2c4da9dbc559ff2
-device/amlogic/yukawa-kernel c56ef788cbc28b5b682e53a5ba241258a59bf4f8
-device/common 76763e9bb3a7626dfdd56bee9d0623d97718f990
-device/generic/arm64 e666c6c44e9fa2a932fdb42bad2b8bf7e1a1a410
-device/generic/armv7-a-neon 8f2d84097dd6a8d60f01723c84b8bf6bd8bd48c3
-device/generic/car 464df04b1b53a28c05f38c3f5fd0702dcfc3d48f
-device/generic/common 3e69a3ed31c97d036af02203c605e61b692336f3
-device/generic/goldfish c908b9879175b0a146be4565aaad61ca75245005
-device/generic/goldfish-opengl addde2aed3779327b696117732cdb66a51900bfa
-device/generic/mini-emulator-arm64 595ad51d88bfbd3e680b290b69bbb28f6ee41f27
-device/generic/mini-emulator-armv7-a-neon c65b46a1a0d89411e666244423555c860413e911
-device/generic/mini-emulator-x86 eed5690b365f4859bf718d48345902ac99484cc4
-device/generic/mini-emulator-x86_64 e7cbff5118aefe44a397bc793e944b0f1eb7c84c
-device/generic/opengl-transport 0aef3e23b0d8baf292ec0f26c23f9d16cc907926
-device/generic/qemu 95b7523627888b579b3a5cde36128d14c773b987
-device/generic/trusty 73919b3cb2a8fc4144a775d1f0f40750ce290f02
-device/generic/uml 9476e9fe155ce43b451b8766f405c1010c4842cd
-device/generic/x86 cfaf488774b46c9ddb5adbd4678c1a89a33d448a
+device/amlogic/yukawa 96d359bd4a0019b681093f84004b68161f72e298
+device/amlogic/yukawa-kernel b692847a05377c8219bf3d4c08bddcf98bfa93ec
+device/common 64974f9eb9bded62b18aca5c1bb6fcbb51f54235
+device/generic/arm64 c9d7a150f174f50de3db237593af1025774955e0
+device/generic/armv7-a-neon 5f4a0a8b9c718dad4a1d91170367e583e3e8d473
+device/generic/car cfe4a6f6a5aed46dc148dc81296d8e6eee148d7b
+device/generic/common 842902e19c54ef4f9942c11d2ee4c01421cf6bf0
+device/generic/goldfish 93ee3e74505f72602f3c20f789aeee06b6ce679e
+device/generic/goldfish-opengl d825ee95f05a88aa99d70abae34bf4c19417d751
+device/generic/mini-emulator-arm64 671ee9553c53519ed7fbba15021e0c7842af2cf1
+device/generic/mini-emulator-armv7-a-neon c525e802afe45cffe003ae9d6f98a8ae932d7921
+device/generic/mini-emulator-x86 318e4787afe890db0edab50a905d5da3793f9225
+device/generic/mini-emulator-x86_64 01ceff98676dc1e98e98c9746c4287bc83d91081
+device/generic/opengl-transport f4dff25fab4711f900c2cffc568990bff576e08d
+device/generic/qemu 1adb9449ac1d49672ba31c4a2225b45f799054ed
+device/generic/trusty 592a0db6e480f850fbfc5b0e11847f45abaccee1
+device/generic/uml d79c39e66ef85b1030b1f423d77f00021207e86b
+device/generic/x86 33acd8698eb4229020cf3fdb197bf68503b913e2
device/generic/x86_64 506952733fdebb5a2ef086b519ceebe86a95ae31
-device/google/atv 496dd68bef5800a3b617a1cc2f5b40e661938b17
-device/google/bonito e6924cdda504d1ec4a08a0532ff29613725ee70a
-device/google/bonito-kernel 7afe38eee9c5fbc8eaf104099a61f6dd8b1c2834
-device/google/bonito-sepolicy 1abcc94e32f9c5b4b870d4efe4f08bdb51281894
-device/google/contexthub 7373b667c4ae2bc9857065a94b0812661d99f803
-device/google/crosshatch c6accf19180e7c330fc0e8185c71bd8cb0cc8e3d
-device/google/crosshatch-kernel b62bfff81bec4927707ff29d28bc71a9bea070f2
-device/google/crosshatch-sepolicy 15b47541cde380b64d9fccb7efc2462976d6d867
-device/google/cuttlefish 20048fb498422563bd679f50781fd0019a401f19
-device/google/cuttlefish_common 730ce9521015ba2f2602e90504ba602b21a537d4
-device/google/cuttlefish_kernel 1a78cd1c2f6bd745ee77e8451f0bf8c909254a2e
-device/google/cuttlefish_vmm 59dbd1ec9bb6efecb7fa9f15378d65f5bd3849cc
-device/google/fuchsia 6267441d7abca8bd0a82ec1965ed0b17ef290b4d
-device/google/marlin 9c2d1e5e92921313386014a3f0283f264ceef1cb
-device/google/marlin-kernel 03f9e4e844cbc79061583d99f2d7c78225e5597a
-device/google/muskie f945a6f897fb984ae2a1f464bf4b7761a71b4131
-device/google/taimen b29ba86b2c864f887daeb71c610589b4c11a68e9
-device/google/vrservices 1744f0c3820958d5b40adc2d2590d004ac5c48d9
-device/google/wahoo 4d4ef8b97a09218a7c26bf42a4a805f783407805
-device/google/wahoo-kernel f64da58e7c64ed3411a740ed81c36520e32e1d7a
-device/linaro/bootloader/OpenPlatformPkg 2ebd72eda8b32a764d7d5b8c66e8ae4eff4bf421
-device/linaro/bootloader/arm-trusted-firmware 2b9adb6b6c8fe65ac5f60b7eacb7a7f2e216d482
-device/linaro/bootloader/edk2 074bf0f924d17e2cf1c9a679e92dc5681bdfeea6
-device/linaro/hikey 5a34763669fb4b68e4fb4d3b1b6bde5c6fead64f
-device/linaro/hikey-kernel 09f21f5731c840647965781fe0b22d87a72b62e3
-device/linaro/poplar 7f477e411dba54620b27e28d14572601521dedd4
-device/linaro/poplar-kernel be0f9775a099a8fc08c49b33340b1a7777a14c1b
-device/sample 921835519e89233727b861e4397bd251fa15d880
-device/ti/beagle-x15 5ffb31d6c2720a3c8e8486f747b554daff599840
-device/ti/beagle-x15-kernel c035f466e6bcf4f683eefc6ad5ef42e3eacd2109
-kernel/build 96dd5f06ae1e8d0acdfa01403b37d60303e9bae9
-kernel/configs c7e90932be2f130b366fe0c4a15748e64a87a37d
-kernel/tests 95eba960191e2fb6d05ec4a78528bda471b768a5
-platform/art 0671f7f1f394966d23fbc7017b9f47eb7dcb157b
-platform/bionic 777403a1dc8ecc5a7c7609c481e8058d6d81acc3
-platform/bootable/recovery 6b00bfbf69c097be28e7ece062e69f7f3e7bb8ed
-platform/build c2bb9b607aa962e4a758557113df4fab4de532fc
-platform/build/blueprint e90e70062985a067711fe981621bb2964de5e29e
-platform/build/soong af0f3016a42fb86a92766667589f855ceebf9f63
-platform/compatibility/cdd e8531774f7036bc417c5751aa8740c56e132bed9
-platform/cts f124640054f883ecae93eb754275677ebfa86d97
-platform/dalvik 6a4ee7337c569a31a44b6f8ac21fb0ce847456a5
-platform/developers/build 26d5686d5fc436c2d015669fd74e6cc44059b0da
+device/google/atv d30389dae54fa9bcf6e6d7cf549676037d243aee
+device/google/bonito 8f3560127494c1346fb1a5b2435c12477d5e9e4e
+device/google/bonito-kernel 1c3dc7b071b2cd443b454503d0191c35fb784196
+device/google/bonito-sepolicy 90b6ba1391c221355065444d27a631636bd88235
+device/google/contexthub 55313368cbc8361f40ffc501d8b7b66b64a871da
+device/google/crosshatch f60bac3c57f71e716e2ef385fed30c3f1390e6dd
+device/google/crosshatch-kernel 393486d42b7b616ac9fa0e52131ac432e6e6dcb9
+device/google/crosshatch-sepolicy c06d0a6974c10b6455c95703472a1efbc3c61cc6
+device/google/cuttlefish a3742c59040eba00481c5f6f3550527f4a9e3834
+device/google/cuttlefish_common a44c41ee0db105b2e355591bf895e52638b49ea9
+device/google/cuttlefish_kernel 5dc3b0c05005dae1c5e2d5db771d25364afa2326
+device/google/cuttlefish_vmm 81ee535c25124dde795158e0c038559b53ed4696
+device/google/fuchsia 21029f47aa3c47c564921c2c054e6757a8d5e0f5
+device/google/marlin 165e0603c92a788ec911a9af7317a85e7b42bc60
+device/google/marlin-kernel 8fdf12acd69deb30315133a15850cab7909f931e
+device/google/muskie 3fbe256a6d738a7f2042f71652fcd0bbda0f22fd
+device/google/taimen ff5ceec6c96915cf456a9967c7171c12f5247221
+device/google/vrservices acfc979634e0c53358dd6f0f7fff64c33d0541a3
+device/google/wahoo 88976ed790514a717671379525f6e8440b5639dc
+device/google/wahoo-kernel ca751f949a2cd414e5333ec5f595413ea589e34f
+device/google_car 2f7ad9e79edfeeffcdb9aba5c7fca84f1c6b70b8
+device/linaro/bootloader/OpenPlatformPkg b5c73cd05555a5c6ccf2c265ef5c081024870db7
+device/linaro/bootloader/arm-trusted-firmware a06f0d4105a6ba2bad95c4b70395234dc1399aa7
+device/linaro/bootloader/edk2 e78244d9f2eeef7150656ae178f3a2ce52579f5d
+device/linaro/dragonboard 34da58f235f314dbe1deb8677991a43a5d8fd537
+device/linaro/dragonboard-kernel 66edd93ead966a35ab8845ad718a8455aad5b659
+device/linaro/hikey 0db07dab91241539bf15c903d88d34db1573d944
+device/linaro/hikey-kernel 14035a559bc744b851101e1488dc5310f328f206
+device/linaro/poplar aa7cfb49648a2af1702f8a9d9a0c7c2083013ca3
+device/linaro/poplar-kernel f04ed79bfd2ee8e1c6b720422c35bd0790a3f032
+device/sample 826180c595234cd6b0b88a18ce5bd5c00c25eede
+device/ti/beagle-x15 331f392e58bbbd79c675979e442af5f006b61570
+device/ti/beagle-x15-kernel f8bfb91eab96be571ba6fbc13c39e1f3e5ed2300
+kernel/build b6e6ed391e7cb3f7e2145d46c7edab0733c8d02a
+kernel/configs 7a179abcc9719865bf03150b4c7c09b717164071
+kernel/tests fccf17afd44e0e5c5e6b883c26d711ed6021a19b
+platform/art 010d951afaa4bfdc730bb6578f899ae7711ea84c
+platform/bionic 783edd2860af30d4026147317e93de14aa3bff4e
+platform/bootable/recovery 5af61159542b28ff16bb89f745a0053cebdefb12
+platform/build 44ac4b01f9fa4eebaf52a7b0afa803e8899c2f9d
+platform/build/blueprint 3ffa030d0effbd19856b58712d616ffc26074758
+platform/build/soong fbc23ba438ea55228119c58ad99ae24513f4bf94
+platform/compatibility/cdd 58f5e8bd9e6dbd6e66591ccd9f3137e34b5feb80
+platform/cts 65ffb9743168c6895fc596da3b47b4ce1a72cf6b
+platform/dalvik 224d80cc657573088a64497f52f424d3c09502ad
+platform/developers/build 506f7dd0a515c8ca8fa9437f0395a40a5154fdad
platform/developers/demos 03814c35b8ee0a1284c667556260124d97466b28
-platform/developers/samples/android f8e1b925991f097e4508060d94cb1a8cf5b83e30
-platform/development d882086d15ad313a77e760eb4714e685edd13056
+platform/developers/samples/android a35e02183d2a0116725f81164122f900f9df2bc0
+platform/development 38bc0b44ca64121b9272be4811e8583b90428144
platform/external/ARMComputeLibrary 23a16533b968b01c0fab733dd13dc418bd8434ef
-platform/external/ImageMagick 2239c598d3d52551da1a4b760e887e0197cabd8a
-platform/external/Microsoft-GSL be41fa18df06c702cdaa173d1d5312f66ca0da7a
-platform/external/OpenCSD f5e655cc270ea1a836070d8e5e18cbc58c12b0f0
-platform/external/Reactive-Extensions/RxCpp 606ec2251c62fcb706d255c4401bd0a5de31c8e2
-platform/external/aac d91a410182afdd108821e40a083e40f4c528dac5
-platform/external/adeb 6165e791fe9066babd1a2a333ad6afac36a67ff6
-platform/external/adhd a6fd3da2a48682ac12d998213d652db2594c6465
+platform/external/ImageMagick c6bc10bdbc495b299a2a771da914f6c6a69f40b2
+platform/external/Microsoft-GSL 4009b57318c3b03c238b32d0f79be143da07f2af
+platform/external/OpenCSD b029c13e85b4bb8dbf595eec38aeb28341cf8ae3
+platform/external/Reactive-Extensions/RxCpp dc0c7db972aed4487a7b142f0d2ac486ba4cd817
+platform/external/aac bceecbc2adf2010c907979ac5b4a599b02613251
+platform/external/adeb ca70fa550d9390e4e0e8501834e2e9edf5e58bdd
+platform/external/adhd 913132a8ba5ccb6bc32359e922e9e03aa1ecb74c
platform/external/adt-infra 4d637d3d91cefb11079d5c7bfc243830a14eb8a8
-platform/external/android-clat cc4432c350e744552b343cbb3fb5ddbedd9ab0dc
-platform/external/androidplot 38a0c55b36cd53f768b58f381e8aa556c1e663e0
-platform/external/ant-glob a7d4f07162e260f90b9525add818b3d496a9428e
-platform/external/antlr b9248b49377a6a9167eacbe68e2fcd3710a0c32c
-platform/external/apache-commons-bcel 0571aa8e3291944e1b3697f40f237a556f3c2f35
-platform/external/apache-commons-compress b5c92874f556f121834b67f521bf0430ee2e8134
-platform/external/apache-commons-math 452474d71096fa5d09aa6f5f01dd0220dbafd9ad
-platform/external/apache-harmony 434616ae8d157c688944e708a041d8b0ee8f0786
-platform/external/apache-http af398cf848ef524cd78d43c98d53e8afce6e22fd
-platform/external/apache-xml 43f4c8f5453fee2e79a90daf0b33c0268fccdf4b
-platform/external/archive-patcher e0d500039b9ee2c979134b8138b694597e888068
-platform/external/arm-neon-tests 20e7a91aa7d3050739f3a9f2bd74299c095da8bc
-platform/external/arm-optimized-routines c5ee22cab532fe461b427ac1c483ea0ec8b17207
-platform/external/autotest 89947a6de586e355173ef3041b331f24fba84bb5
-platform/external/avb 23a8ba6444a088034c89bc14b61f5a812c9d6b18
-platform/external/bcc c5b46d096fa6314b506445dbbc372139cc826919
-platform/external/blktrace 35c47c861c3cecdb4a90db6fdae426fc91550c60
-platform/external/boringssl 52be98f88a43c7213011e4c7e5c8359a1dff0753
-platform/external/bouncycastle 56c470d7e1e1eb5fa667e639cb50f6c9545817e6
-platform/external/brotli a6a3ee496f847993f00a0bad249ce9c01f5a7bb8
-platform/external/bsdiff 8ba2d1058e0d6d6020f65112ac5a5c3d0b5bb4b5
-platform/external/bzip2 15fc73bf1757db8249e1443294fc48d4eab477e4
-platform/external/caliper 60d50e0bde059a24e84a99bccc57e579bda58bbe
-platform/external/capstone 551895ca20eff53053ce67ca13868547f5859715
-platform/external/catch2 892460f4b5082e69e7137cc369e5ab3291e51074
-platform/external/cblas 8f0fb15f3bfd353faef3963eeeeac1033ba5d2d0
-platform/external/chromium-libpac 1e857fa957d097efc5a34a38064fcf4b7298ea6a
-platform/external/chromium-trace efec282241adaaf52f1cd456771facd6d4616af1
-platform/external/chromium-webview 2a45723ee7f2725c795116ce7d86b937e306a5c3
-platform/external/clang 6bba0494af68cce862946fbbd834b4c824cc9ef6
-platform/external/cldr 7105dcf672668d86e3f937a909025c5fab6ed44b
+platform/external/android-clat a5a251809a2640658bdaa6492b8ddc953b3817a9
+platform/external/androidplot bb18c35d6a999f6a5a8bbd068ba1ecb9326ac5e4
+platform/external/ant-glob ee3c3943629ace1c4dac1f348a3318a39aafa04d
+platform/external/antlr 40006369da33f084f4ed108b0c7f34397fc7524c
+platform/external/apache-commons-bcel f088dad2d6f84db3cbdb6fdd37136ad78e0302ed
+platform/external/apache-commons-compress e4a522aa0361bbefe58b9228d0a6f0720ea9c685
+platform/external/apache-commons-math eb1885cca654689ac84f0092ae04e6e10e98ca45
+platform/external/apache-harmony ebebc6595071d45caae96a39989bdc19f361deb6
+platform/external/apache-http b48b1d09f6643c0516cbd6382987e7020d79b444
+platform/external/apache-xml 98aace0b31c6fb73b1b939cc45c2890247225239
+platform/external/archive-patcher f5fb6241ecb9de797e50707d506d4abc3c0c8efa
+platform/external/arm-neon-tests c08468fec88b4a5ed8d1b422e540e563266da511
+platform/external/arm-optimized-routines 87ffc68fdb6577fb5cd3bc1bfe3613df4f074814
+platform/external/arm-trusted-firmware 3aa93f0773f8e91fff9284a319b0bb498bed4241
+platform/external/autotest 7761c34bee65ac62f64063c1e40ee14638d53fd1
+platform/external/avb b7cf68cfe8f41db4a1d1bf1449d3e90ac69c45e4
+platform/external/bcc ad76dbacde9bbe14234f04f739216af6237aca9d
+platform/external/blktrace 701e46502f1874807362e3a1f88f71677364f120
+platform/external/boringssl f5a5af31f01f611491ecc6870f101b2ed8f5f7c4
+platform/external/bouncycastle ccdc90f33479cf4c004f4fa67d6d4aee45edadae
+platform/external/brotli 717dfbac9985ab0c5125013f20362aacc7b7216e
+platform/external/bsdiff 01dd5b8d01b019830555aff48008275872bbd6e0
+platform/external/bzip2 7df07367d6143a8cbdf33389db871895133f5719
+platform/external/caliper 2eeff71592ab7d04a7304d294d89ea9366b50340
+platform/external/capstone c6ac3614c4deea1e903c0f16ec9852c3640e99ca
+platform/external/catch2 5cbbac763d5bc23c6c9a8fd10136b7319bdf6c9c
+platform/external/cblas 284358db1878cf6ff15604ff88a6e803fecc92b2
+platform/external/chromium-libpac a48524832ddba310e0ab02fb01d53f8196aa8f7c
+platform/external/chromium-trace fb7b2259a5fa5bd4bc184ea84b72fc05b42e2082
+platform/external/chromium-webview 3a1d3fd3ab4afea241af38dce97e2bbf22db7ead
+platform/external/clang 7eb1b9b56a6b19d2b34afc293af0d4bdcc83e2e5
+platform/external/cldr 77f8423b8f48f54eec3e0c9cf2a8b9b5b8b745e4
platform/external/cmockery 9199c7bfafefea32d1884182fa655b6e4578c1c4
-platform/external/cn-cbor d35a6c11143f473888afdbb1d518426d7367b0bd
-platform/external/compiler-rt 98f064be0742575e2c73f528cae3ec46c3484bad
-platform/external/conscrypt b342558fa65e0a8bd88789722f77e5fb6c0b3d26
-platform/external/cpu_features e39557cb8d029feed28cc83ef15a384eefb19875
-platform/external/crcalc ffb3fa9a866d53a57f04fb3fa45232a895676367
-platform/external/cros/system_api 488b3566637fe87d92ea5636cb82a899f5d8e895
-platform/external/crosvm 636788cfcc6b49d460cb7b37b854e4ae7e89d01b
-platform/external/curl cbb37608a2f6f8106cd032c1ab1129995698d62e
-platform/external/dagger2 7c315c0e9f26f15185495b7ab7783d4950dfa000
-platform/external/deqp 6af382e1fb4524f247117ca32a0dd8ba68702071
-platform/external/desugar 881ef14388b2ceb99f53fa9c382a71988835c499
-platform/external/dexmaker ed404cbe0c48bce745255aecb59afba33e04e857
-platform/external/dlmalloc 93e4923e04cbc34bbf5307e9b69792c81bb6baa4
-platform/external/dng_sdk 3c92feffad0851b828b2ad698ebfdd81bf4eb98d
-platform/external/dnsmasq 6b2b6d59af27e88be094d04dd0fd3521020dc63d
-platform/external/doclava 836715caaf48012354638cbf5007cdc4c6b9771f
-platform/external/dokka 71f2fab75c08b8f0857b03257a56167d7c93eeb9
-platform/external/drm_hwcomposer 31828c9e57ccac01dd6258da279dfc407a1ee18f
-platform/external/droiddriver ef618d981947f6d8242755516269a0026c07126c
-platform/external/drrickorang e059743678c666f957f3d4b84c44ec8e71ba55cd
-platform/external/dtc e96f80e509004c0c8a8cc90404d7e551b6463d1e
-platform/external/e2fsprogs 7216e9a425cfe9600945a164fe7b3c0f2e251ffd
-platform/external/easymock aa0cceff39a59cdbba7f244e305dc3592b8c21de
-platform/external/eigen 906b5551ea36a0a2ba5fb50db416d78fd047703e
-platform/external/elfutils b0fd3570c06ea17c920ebd1022846f9860e14fa6
-platform/external/emma 9029ef6807ec8e85037628709e6be54f170b9bf8
-platform/external/epid-sdk 4fe34e754efe968469e9c058be099173614809a8
-platform/external/error_prone a6c015cd17dbd2307cb74aae09599537aa16bab5
-platform/external/expat 3cc591f236295416dfe6604f5c83135f58ee959b
-platform/external/f2fs-tools 42df8eb21c5358b4410c6c2006c6718e0523a903
-platform/external/fdlibm 7f2972cc0499377d9ec88114b06c8b3d9fa0a1b4
-platform/external/fec 1d31c953fdab717169301f5251c4e7c1d3534fa5
-platform/external/flac be88b61c3cc0e9f6306a95b4b90396a3b0e0c3f0
-platform/external/flatbuffers 4ee4af5b0dd3390e22557c7ef850db85aa8e664f
-platform/external/fmtlib 17b3fc8df3a7c9dc7ebb240d9a9698153b8429cb
-platform/external/fonttools 0ac0cff8e36051daa5001f7e91aeaf758c0c840e
-platform/external/freetype 0b6caa8fc72be8fca8e8321ce4e17db6eeaa4ea0
-platform/external/fsck_msdos fa2b1644fd2453567dcf2a603beb96552e557b37
-platform/external/fsverity-utils 2bbb1c2f47c1940250df1e81f64428e2056f924a
-platform/external/gemmlowp 708216e8e9f12d184d3192239838cd08f977d7d7
-platform/external/gflags ce02cd3c9c152e6850384e5df425cf9dda078c37
-platform/external/giflib 78c1c6c238076140ec9e55ef99999a2fb4a52f5f
-platform/external/glide 70520d290e09b0c09ad7cc34f3b4f58505a767ed
-platform/external/golang-protobuf 03c544783879a17dc4b484dc2977bb9c717e2990
-platform/external/google-benchmark ce8e17bd562500bc32d62f8418560f5485270703
-platform/external/google-breakpad cbbaf3bb68fa3e404fb8911a0d45f9865b03e05a
-platform/external/google-fonts/carrois-gothic-sc 7eb073e6ea77451a4c534cb26d8e105c56344964
-platform/external/google-fonts/coming-soon db485f8e4312b130cd8e5fe7d9a528c5450e0968
-platform/external/google-fonts/cutive-mono 5ee936c29d6ab6e041f8bfc96104f29fabbe54fa
-platform/external/google-fonts/dancing-script 73e75e2d9c79c0ca00bcafdc330fe9ea9a735fce
-platform/external/google-fruit 703fda01e5186db4ce0539191d925057b56be724
+platform/external/cn-cbor 1f49a5b320f600d6308c5b649945a6b3368ae9a4
+platform/external/compiler-rt 6cd85fcbb37cc631a90afa6a76e0f52958138c4f
+platform/external/conscrypt eabe2bddd668d591dabc9932190356563f460f30
+platform/external/cpu_features 6b566042b8a2d81b976ad3d542c4243b3319a47a
+platform/external/crcalc cb4fdc32a94a255bf0a4749ba3bc2b160edd97e1
+platform/external/cros/system_api ad08c062eb392145a2046317ea7bf500ae3dfc45
+platform/external/crosvm 9ac88b23b0e3ea9403021cb9ca215da4bb01e2ee
+platform/external/curl 88de4e708ce5a352592334f2e02be34428dcc324
+platform/external/dagger2 2ee335d4e556fb7a91f3b809632ce0e1d0e79252
+platform/external/deqp eb5b60ce62fc10c2665eb7c50ee101f37d678c2a
+platform/external/deqp-deps/SPIRV-Headers 33de1aef825029c0cf7927a72df63ebe79745c6f
+platform/external/deqp-deps/SPIRV-Tools 2e6244127648ea760172bf07ecf687a59ee7bd17
+platform/external/deqp-deps/glslang 91b452070b219d80a82d98deb46c1514dc67f4b8
+platform/external/desugar 4ee431601487a4541709870fefbae6e2695481a0
+platform/external/dexmaker 16232dd75039903d21c418f51dd4886711200dab
+platform/external/dlmalloc dd8b70d717af61a8c839313a5a7b01b242c82330
+platform/external/dng_sdk 26b7f3346ba084a483c79a5fd65e4e6749315d9a
+platform/external/dnsmasq 509b12013872b7682c0afa86099d08014572b23f
+platform/external/doclava 57c29123a346d57ca1e9f4b91937e7b00ca1c8dd
+platform/external/dokka 86417c20521e74f708ebea117d9e00c1a493a42d
+platform/external/drm_hwcomposer 231a015bebad580606e415911e5e30f66b778506
+platform/external/droiddriver eec803c71fbd379a18ae10752a9ea837f0ea5b74
+platform/external/drrickorang 15c703a28ba6e17c440867b80d70b3ae60c78b43
+platform/external/dtc d1bb56f57a6feb340d21d9dd11adc7e3515a78b9
+platform/external/dynamic_depth d7e0bad295d80a7fd2b3d8d55eb7dd2b24de4b13
+platform/external/e2fsprogs 4faa36a54f396bda29b5308528584268fe32113f
+platform/external/easymock bb591ea78775f2ec64884e08028c266e64c12702
+platform/external/eigen a2f1cf58ceaf8c1389ceec3b3cfd77be2fa87fc2
+platform/external/elfutils 3c5c39a8b93dec16cacf0fafd6c3c20e61972957
+platform/external/emma b4e6dfd53d9e5aa5f78936b3787390498ca69f16
+platform/external/epid-sdk de194ce8f0bd146da3c59dbcd32a7181b0ec0849
+platform/external/error_prone a61968e8324c3520101e150051bd251845bbd1fa
+platform/external/expat 2f78f3eb688b51e7b275f355597e0f99ec58bd52
+platform/external/f2fs-tools 79a81b7f02fc79b3730bbafb1677e30cf265e679
+platform/external/fdlibm 25ecab5664ea86cb3cf3be33c990deb59d5c1671
+platform/external/fec 253855fb35f3a34606249fe3e677b1ffca4f4513
+platform/external/flac fbd0fed58e48878b165f922abb605448c2000239
+platform/external/flatbuffers 5c5cb4db1d488fa781f15aa4743f104c4809ab65
+platform/external/fmtlib 95ab326ded6c8fd696067b09164c62286137ca93
+platform/external/fonttools 97d75e43d52a4cef22974c29918f9f606ed59160
+platform/external/freetype a62794d271e11f99fadbd2bfb61771032ee33e94
+platform/external/fsck_msdos 87707544e5e6f13fad4e1611a5ddbc7f0c3c0abf
+platform/external/fsverity-utils 6d6cc4fb98d0c92411b5b0474d316c6005999811
+platform/external/gemmlowp d0470b211fde9b7105e6393c64489d19eb1e3f63
+platform/external/gflags c3500e118ce377f24f20d7c47a9d699485f97d7e
+platform/external/giflib 3f3784db3a73a7fb9a6b85f23d06ff40c18526cd
+platform/external/glide d405a1e53489df004f702678f0e19a13c0318781
+platform/external/golang-protobuf 0b11204ad9b9f986935e0604168805c4bfa03dd0
+platform/external/google-benchmark 410e1667aa4e5759c2794f0b5fc4ad54d9c2ebca
+platform/external/google-breakpad 0c2b5a27d958de918dd66c9e1978505fbb834b99
+platform/external/google-fonts/arbutus-slab 6a62a3a7283256e86faac4b4830e224f64946838
+platform/external/google-fonts/arvo bca8c9b2d370ba24ac0280d674b063f647a038bd
+platform/external/google-fonts/carrois-gothic-sc 194d881f4f32524ae61bbba5736bfa440e7f4a10
+platform/external/google-fonts/coming-soon 0a826e8bba8f1267a7c66879dfbb1c6514a428e0
+platform/external/google-fonts/cutive-mono f67374ab4b52389a41a049be66da23e8a482385f
+platform/external/google-fonts/dancing-script 83def38285658c471334152550eba84005961d5b
+platform/external/google-fonts/lato 139c627f77933688eeda9c16a575c1421af08808
+platform/external/google-fonts/rubik 4a650db6c054b9b328eb1364d217a82296143d25
+platform/external/google-fonts/source-sans-pro ea1024073315464fc4ce2c5c0fccaf2ace8e18ac
+platform/external/google-fonts/zilla-slab 11c07b19edec7867860296950b14cf7b687240bd
+platform/external/google-fruit 8ad817a904386d20b64268a561035ec56f0d8843
platform/external/google-styleguide 749f7ae008c0d2dd9767fdfe202e6873e864a956
-platform/external/googletest c4464882ff6a8401d271f5b99f5ff34eb5bf9f52
-platform/external/gptfdisk ccb2b01c844db800ee40deba44f7e72a10ce845a
-platform/external/grpc-grpc 9ad49a0469fcb53848ee84ae31da634ed794b7fd
-platform/external/grpc-grpc-java 4e675722e2c87e8f750d09ecdf13cb38e06f7b12
-platform/external/guava c73d593fd2a54f522605c1aa42ac0bfbb6dd7269
-platform/external/guice ad20276d1abe2c3126f38937e3829963dd544bab
-platform/external/gwp_asan 43b4c5d99e2e3992c5c3af8a680c8ace682e525a
-platform/external/hamcrest f778d95e36e5087b999aadcfef6b3f59cb39370b
-platform/external/harfbuzz_ng 95e8d382e5e2265c23b5d3bebc119622794f9b4a
-platform/external/honggfuzz b47af6fa914b77eb07196f9e2cb282343a379a6c
-platform/external/hyphenation-patterns b0abe8eea5b01129ea8ab067e3256dc88a7cf864
-platform/external/icu 361fedf8075b1e8b949189aabc89016a04c23cda
-platform/external/igt-gpu-tools cad05e08f4eb352fa05ae314d0411796cca22874
-platform/external/ims 6ab1677b7c8b3a790b574fcc4b5f361ec7ca8a02
-platform/external/iperf3 27d8de532316e291fdc045aff05dbd1007389526
-platform/external/iproute2 4531b9118a9348ff5770336d26881e64a33842b1
-platform/external/ipsec-tools 39ee1473609044e20fd8e65281a2257dda28e9fb
-platform/external/iptables 016bd57558c7571a280979dd694d717e40b7e4ca
-platform/external/iputils 47115a56fda5f3971da0518e58b79bef91f7ca9b
-platform/external/iw 4ea2a3e0f59a2c35f5e196c9d3b3879136954f90
-platform/external/jacoco fd0117f5a5f721e5909f83a9b261dc0b35719137
-platform/external/jarjar e75749fa6818918f829d3674ea7db39d06473708
-platform/external/javaparser 0e82ab9d1c3830c886b3314ac4217dd51bc793f4
-platform/external/javapoet 74af6f11fc90cab010ae4342db2402b7cd8d324e
-platform/external/javasqlite a075483582db207aaae77e4294e9ecc2b5ba1012
-platform/external/jcommander 0a77c1b1b8385e68fe7c385c07f63add01eadd24
-platform/external/jdiff e09b8368598e8a8b1d4497789f4968525ce64077
-platform/external/jemalloc 38ad735d81c2696158255ce0ee26acd058574308
-platform/external/jemalloc_new ecba6d7c8c03938dfd15d2fd9f45fc7308c7eb32
-platform/external/jline 6750a50a3b7ba5ba7862731a7db2202ecce28c34
-platform/external/jsilver aa467632bfb8647efdbaa90f8859503c9fa1e2fc
-platform/external/jsmn 8ffd2fe46c2d19cc6bb4b1bb6f0f3a799d89d912
-platform/external/jsoncpp 0ba16e9627d91ccdc46017a16f846bdd37add937
-platform/external/jsr305 e90847ee51419c91e8a9940f7951a0a7bb69dd28
-platform/external/jsr330 9df1034d4bb29a433a1ffa5c361aef72b6b4f0d6
-platform/external/junit f9da4ba5c691761a7d11a64937ba3fcfaa4d6a57
-platform/external/junit-params 36dca2f5bc7e5e52f1465c234e6ad8d9aebb56bc
-platform/external/kernel-headers 58086320ab0c13f384cf5973a250b4b4a17b024d
-platform/external/kmod c9c885455b39db9fd5d5f7bc4216f15514e85f01
-platform/external/kotlinc 349602a59689e5c4d1dc4b7816aa792f6ec03a98
-platform/external/kotlinx.coroutines e347054e79c6800142265bb1b6446c41e7f3ecc0
-platform/external/ksoap2 26c3550e180cfdca25356d155bb3fc684a026d83
-platform/external/libavc 1b40ab8f3c329ccd2062d3438bf21b1fa0fbe3c5
-platform/external/libbackup a7b0e0ea1b4494eb8684d994060924b49a8b7059
-platform/external/libbrillo 3a8aedc30356c1c6b82b491d33b3c0bf053a1f4c
-platform/external/libcap d7229d8fa91c68797cd5e66565d01eee4301c5c2
-platform/external/libcap-ng fc5b4eba9b319347794ea7361e7082e0bee0a527
-platform/external/libchrome d24ccea82d0304497be6b20dc8c3fdcabf1afabe
-platform/external/libcups 6e8e063ccb4422b51f0fba53abebffffa439bbb9
-platform/external/libcxx f4597b2328d32f7f83b6cf9d129d764e10dd00df
-platform/external/libcxxabi 1ce22cf361f5becea66adf2ef5491bfbb8de1790
-platform/external/libdaemon 7e37193bd4053c93967175714995c568659b4669
-platform/external/libdivsufsort 48a2c2f42caf69038b633af1c3468d8af39c0a97
-platform/external/libdrm 85862ad2830c71b9bbfa6a0e0079872623bf4554
-platform/external/libepoxy 174d1194015fb352615417da636ca26d6a4829b6
-platform/external/libese 4321f587aee73dcbd6f5519e51518f3078d25732
-platform/external/libevent 053bc07b74608c35d8d50d5c58421394e1046412
-platform/external/libexif 5d5fc21cfb5b450eb346c1f78fc6c356571430d2
-platform/external/libffi 6942c1e38c6e44866c382a17cc63a477daaa0e2e
-platform/external/libfuse 8e056f46aff12dad31bb1c7de57eefbea225c08e
-platform/external/libgsm 583d92eac7e3e30c92ea3d57356bcb67560cec41
-platform/external/libhevc 3bf83b93fa7b8775923198c6c2af524ef64a2a9f
-platform/external/libjpeg-turbo 70e2d3cbf15f63929b9d75d94802f7427bb0cb57
-platform/external/libkmsxx c9093bcb613bddb3ec8abe64028f7dcdbadc8511
-platform/external/libldac 9513e593d8545df3c7195418331599dde1844666
-platform/external/libmpeg2 37c8019743dc5ff657ab63123b1db858e554b1bc
-platform/external/libmtp b00567f8964a9ebac67ed9b02c7c40b8ab36c1be
-platform/external/libnetfilter_conntrack cbd4e00a0fe2e5d75d1f982805602dded8814276
-platform/external/libnfnetlink b3cb039d6b0f658c22ebc1e2c4529827481791a4
-platform/external/libnl 3bb38a5a25054c2f6438411fa5a4556edd08900c
-platform/external/libogg 53565970cb13943f14e038d315dd4f7f1c5f7e3a
-platform/external/libopus 7be7713bf979a537d4d7bef4326500f12ec32e48
-platform/external/libpcap d5c6a5a3859d35604d9c64ea37846c9c8d044241
-platform/external/libphonenumber d9c6bdaa14d05631d45ef65a74e102a0799c4536
-platform/external/libpng 9ae353f872650b18d9d13523638b5d1768a4c557
-platform/external/libprotobuf-mutator 5821b7519c2967e54f4d2776a20df0c35bb4ff9f
-platform/external/libtextclassifier edd27795449773d980ad347db6a6577922d157f6
-platform/external/libunwind 6eefe77f1a6990c336ad29bb4583d7954d9915be
-platform/external/libunwind_llvm 3221152c851580aa9ba54da8c36d94763efb3feb
-platform/external/libusb a6fe5a369de2647f89f177b05afe8ef519b29350
-platform/external/libusb-compat eda6bdbdf3262df67a553b65436a349bbe00fe31
-platform/external/libutf 70c4d402c49427615ab9149cbfcc39d158aab74c
-platform/external/libvpx 759b10b572aa8d882a4e891787fa470b17b1991e
-platform/external/libvterm 6c0deffd856c32598500b7f7e1f8dc82027abd6f
-platform/external/libxaac 73d7de8180a708cffa8f7a3baa8631037c5065d7
-platform/external/libxcam b147656bb5a4eea82e4f7be83773a49d9266150e
-platform/external/libxkbcommon ccd27eab3a0e694d968069ee2c7d918e7a9c1ece
-platform/external/libxml2 f419eda77be55b6a6502aecff975685b9ef247c2
-platform/external/libyuv f98db06d087efa2ee69b322cd8e31a8637ab76b9
-platform/external/linux-kselftest 69565e18769d0d31e8c96748d6254a857eab0f55
-platform/external/llvm fd44911d9fdf47a2dde1d3869494317b8b6bc124
-platform/external/lmfit c374b57f19b3c911db155b7044d319f6cbcafaea
-platform/external/lottie d5ae520ccb358b7ebe0aee1f8fa46a19d7a187a9
-platform/external/ltp 65ab6f1e869a80ccfc3cba7475553be7f232e951
-platform/external/lua 1be0f9fe7df4e1250bd60c6f9d2571bc20e91887
-platform/external/lz4 1905bd525f73c808f275c8a61d1c883bd3336b77
-platform/external/lzma f26cd190115d4432f59fc992283a283ccbf4846c
-platform/external/markdown 25df5f0a65b6e1b4f8ea854e3e0d2e2a998284ee
-platform/external/mdnsresponder 1e3fb1cfd8d6299ec210236791afe6e31baadad3
-platform/external/mesa3d 776bd8abbd19280a42ab426176091e2bcb4e5231
-platform/external/mime-support e9ca40b1e71797a24e96b20b74e692f2fa3e4137
-platform/external/minigbm 175544177f39ea5b8b6118372a6ebc0ad5e2bf89
-platform/external/minijail cf8cdf9e826cd0d2293f4d2f4066c54461346018
-platform/external/mksh bce8c8f3e07cdd472d7fccdb747f37dc712ca15f
-platform/external/mockftpserver 400b45e156438929b557681e340a24865a586e93
-platform/external/mockito f925b4ec95ae6a95597588c5b0d062a3f1345ff3
-platform/external/mockwebserver 19b850e1d70a5d4efaee6760e9db61a92379e1ca
-platform/external/modp_b64 e1f906533288648575edcabd198cdc815233ac12
-platform/external/mp4parser e8d2057241e371a5113fd89d3cad05fd312e8e20
-platform/external/mtpd 851adbf27a605edaec9d51f1f2c85a73e02e028c
-platform/external/nanohttpd f37afa8648dfc6309c3c4ec8de004e236ed7c451
-platform/external/nanopb-c dc24a09ddfce3f73728f0ac854ae12ce0ea069af
-platform/external/naver-fonts 4cf8e59cf9378c9632f380af4cb8f658abe0eb75
-platform/external/neon_2_sse 93a290431c80e691291bbb867923d4d8fc97375a
-platform/external/neven 34c2f8e5e57fed19ff10d6760881af992d9e3b28
-platform/external/newfs_msdos d488a474772db53a1d223a2d15dee7aae6de2e90
-platform/external/nfacct 9948eab99144d6363b0a133164a1922ee28a7756
-platform/external/nist-pkits e5f3885aee2b8f15f17150332a301f4a3eea294d
-platform/external/nist-sip 43449134ebca215bbf396a063c0b6af033d53510
-platform/external/nos/host/android fc19dbcca30575ae8d92f812ee05351cb8354af7
-platform/external/nos/host/generic 9719191b8c71af01f8b09178d05767b0220d7e8e
-platform/external/nos/test/system-test-harness a4a0fb7457eb9afea956bc481ad7623aa13a6c19
-platform/external/noto-fonts 1916e160ba36fed52650d59b1743141b822c63da
-platform/external/oauth ccef8bda7971a511e364e854a18f6a2b7e31cade
-platform/external/objenesis adb7dde7d2438e4f782f42604c4673292be7e5c9
-platform/external/oj-libjdwp 646f7a7962910f50ee28395be7f2a6533610b84c
-platform/external/okhttp 6568ee62b353e8b3476542f075c1ff0ea98a3548
-platform/external/one-true-awk 332afae283561e2e234d0ffcff1c2359dc3ffb47
-platform/external/opencensus-java 0e07cca418aff23a639a44ca465ba8b6a9f917cf
-platform/external/owasp/sanitizer 88a77766c01079ebeca0bf9d0eaf31622a8702f1
-platform/external/parameter-framework f55f3b49141b2e33549aa0a79f7293f81a526de0
-platform/external/pcre 029f78b3dd73e95751e77a790ceb7c977b1ddff0
-platform/external/pdfium acb875c7511405a385f16cc3b717bd5a51c9c841
-platform/external/perfetto e238af7d89757887df330aaacdc34d0226fa8ee9
-platform/external/piex 2860bcbec7b1da7f24097a6f7c8430a77d1be041
-platform/external/ply bd68d8287c7b2b62558e881896fb4fa67a91bfd5
-platform/external/ppp 7a04cdffe16f4f26d85c0f766a5d5fd7fd37984f
-platform/external/proguard 5421389140ebf71e1559427d1baa384815eb0ec8
-platform/external/protobuf 2f68d605491b22bfac84fce75300a0defff07d3e
-platform/external/protobuf-javalite 004ed30b52a39cb68e8b00e9f37260cb8fba1806
-platform/external/puffin 905bbba565e2f78585b8c606cc4872b443d0c749
-platform/external/python/Pillow d72f4f1cd84e416a59a8f57f491c567a7650e65f
-platform/external/python/apitools d0142dd460aa2af6568b7898246a969dc5ba875d
-platform/external/python/appdirs c70c940cf3d28d2f3e01c41ecb758da1ae37c699
-platform/external/python/asn1crypto 4dc1bc9adffde69291d315926361f6135fde5d93
-platform/external/python/atomicwrites 90f4c6fb7a2d31fc5e099919c708307cbb149140
-platform/external/python/attrs 759f9676d76414dad028addb959f7610a1f22008
-platform/external/python/cachetools 598fd64b867f9dae50f0d4f62b0b23c3b1dc8da2
-platform/external/python/cffi 934d3e96800a7210ad0e5e074a61d4fa78dba181
-platform/external/python/cpython2 0567bdaad7e6280c0b6001e969a4810f9b144347
-platform/external/python/cpython3 105a3288b53ba4395c1efdb451e6bd9a2838f9a1
-platform/external/python/cryptography 4827460c67c2f19639fb6736ce903035840d1ad8
-platform/external/python/dateutil aec597880592a34330d5b71f7f1aa5a9279622c3
-platform/external/python/dill f75b7b4bb53f71751244c102b9a8b29e7f79cd7a
-platform/external/python/enum bc983ebbfe611ca08967469c3f67ac99beefcd0c
-platform/external/python/enum34 ddb73576f7865072e0f12e92d7199fb7795af1c3
-platform/external/python/funcsigs 4afd27bf245c2757464c5f9492eb00ff3271150c
-platform/external/python/future 34c27d1b01d0656cbb7752efbddbbb25a4ffec43
-platform/external/python/futures 89b0df8e2990040a6f435c95f73fddd3e3a1bf21
-platform/external/python/gapic-google-cloud-pubsub-v1 a7f3616024b3fba70452687948218648d5e8606e
-platform/external/python/google-api-python-client 71ef10a8eedbbf5198bbf2f879b1a1bc1130cfb7
-platform/external/python/google-auth 1b4c85fd5ab413b08fd7ca72cddec22ef41aae0e
-platform/external/python/google-auth-httplib2 e2d430024389106380703e13a4fd1d94cae75a27
-platform/external/python/google-cloud-core 0d0c511028c56b01fb49c8cfa9967da5506fe8f5
-platform/external/python/google-cloud-pubsub c0f84beb4e8bb31105063ee3c65bb4486510d544
-platform/external/python/google-gax 402bc6b8644483374b73b4cd3812a845d5c3597a
-platform/external/python/googleapis 7e8c2d62d0a6cdade74674c2212c9072bf0e43eb
-platform/external/python/grpc-google-iam-v1 fe6c657f282121fddaf41a77495525b575c1e344
-platform/external/python/grpcio a30f14ae1264b318eb749ce97bd255f9bdbc17c4
-platform/external/python/httplib2 b04e9524517e2103da8f45be995be8e7aad9b18c
-platform/external/python/ipaddress a13f2c58fc98976d87cd3673bd99b7634b3c3f34
-platform/external/python/matplotlib 6a7194b8506110e33796e20887c5af121d2045fd
-platform/external/python/mock 54ea75c0e66e5d9d0efc2a26d202dcd97180186d
-platform/external/python/more-itertools 5c7ddf33a3b11d7d60776c6860e582b837f1f102
-platform/external/python/numpy 19ac03b6a03f19170946fbeed893277f745342df
-platform/external/python/oauth2client 8c5a6494c267068ab7b4dcfb7b1657ef4f6f3648
-platform/external/python/olefile 77ea07605882f1cedc84092507e133fce232150e
-platform/external/python/packaging a87805bbd88b433315505873aeb500dd05c0a7b3
-platform/external/python/parse c22445bf8f6e209c564a7fe3bb83d5f4158c605a
-platform/external/python/pluggy 443e36f8097799479097649aee7f338f0e38d05a
-platform/external/python/ply 38f91dcd5769ff89721335a65a96ce714900e638
-platform/external/python/proto-google-cloud-pubsub-v1 3e2c928660479fa26a6cde22ea68e4f007935708
-platform/external/python/protobuf 2afb2d6e505f14627c1893b107e4e397cf22b170
-platform/external/python/py 524dc948aa5659bfd0bdb9d3872adc33f28a901d
-platform/external/python/pyasn1 01ec1875a2395df0f17ff240fcbd22ec1e622606
-platform/external/python/pyasn1-modules d5c35aa313cf3f1b55d50b06471ea9f24246089a
-platform/external/python/pycparser 0203d46c571a1cbe888bec375c6fc335a72501bf
-platform/external/python/pyopenssl c9ee934dbb5c604f7cd697a6712b732235762b61
-platform/external/python/pyparsing 077449cce1b7299e9870fc5e56a3ebf19d7216d7
-platform/external/python/pytest 16acc5cb60831d67dc1216d42e86f22e303fcadc
-platform/external/python/requests 487a0c5fd358f12a4a7ed3b483bf4a2f67458a58
-platform/external/python/rsa 1d1c533e89ba587a8193c1964e32dc7702160b5f
-platform/external/python/scipy dd3ca6d21860c6bdaa5ebc7ac99b3691c7e4dbf3
-platform/external/python/setuptools 48bd447fd5056330001312d0270f1da3d17fdc52
-platform/external/python/six 01b976b5608ef8d1a300fc41652cce8700f6f446
-platform/external/python/uritemplates 9d2ab247e7145266be3414d565fe0b39d6f3fc25
-platform/external/rapidjson c99717d773b7e4b752e8272ce1e658968427eb28
-platform/external/rappor d7f1b24dd5cce31780da88a67526f800bcae24b4
-platform/external/replicaisland 71beacc05f3f0959e330772e79097d89bdf6c969
-platform/external/rmi4utils 54696e641fba0ffc863435ec3cd86b48cc06e67c
-platform/external/robolectric-shadows 0eac7eca35cd84c66c7ab2417d4fd1e8a9de510a
-platform/external/roboto-fonts 2f06fbbed26f7950ee5bf92152ee54a5b398075e
-platform/external/rootdev 2295e443c294df4638dd79ae09ff74da584a6f56
-platform/external/rust/crates/byteorder 6b8a5a7461c299ee8f268e185078f7183a846f53
-platform/external/rust/crates/libc 44bf1c6bf55bf9ee01d44ebc827e26153876a239
-platform/external/rust/crates/remain 46a888dcabc80678e25d77d9c4ef203c988fda29
-platform/external/scapy fdc0c472f4d91c2d5d675326d7f13be837420a51
-platform/external/scrypt 1f40be36f94f651566655afa7ff11aa685f671a3
-platform/external/seccomp-tests b24a5a0eea45f30fa17542337d07352420fcde96
-platform/external/selinux 0952ccb96b4c7132c964d62a46e4c566abf66a7a
-platform/external/sfntly 73d4cd93295c0edf4f4ae9518194f51cc6106ca1
-platform/external/shaderc/spirv-headers aedfd8c21914f59cd668126545c006cf1ae51eaa
-platform/external/shflags 31cf51b2e9f82452dd3f7ee9f6aefbcad98a537c
-platform/external/skia 93740f612ddcc3a1a07bc4aa977e3b5222db5b60
-platform/external/skqp 321180fb81b7c1fffca2b41bf2ead698bc748ca3
-platform/external/sl4a c47e5aee39f585c7242c501e1b58e39ea6abbdc1
-platform/external/slf4j d5500aeb359d9523a44f3a947acb0751ca573f5c
-platform/external/smali 127eb62df12b457db0d6f5c99cc3aeb6c037eedc
-platform/external/snakeyaml 03aec882ae400d324bd0f2c4d0e6d02faa779e81
-platform/external/sonic ef3a000b977987fc729e336857195ca6201c9c16
-platform/external/sonivox ffadc79c4b4a470318fa39d9a4463b12e27b6925
-platform/external/speex 0834bba401e0d08be188d35deda1cfcfb70331a4
-platform/external/sqlite 9c908e198d8fe91a4707b0e014651a7035d32844
-platform/external/squashfs-tools d1af1dd1b3b0a00872aea88dc2f76da7125bc2eb
-platform/external/strace 47464654f9db6e843e2d6a2300eabd01d4ecb9ac
-platform/external/stressapptest cfb06af48d4df27329f8f0324e4530b7b130c4f0
-platform/external/swiftshader eb9d360c4cff767bf0848f7fae80571e1a67b107
-platform/external/syzkaller 9f3f193c06d06a769cf90242665aabbb4ff0a70f
-platform/external/tagsoup 8700ee44c7b29cdf963b9438bcdfe3d1733bc31c
-platform/external/tcpdump 8e15a2552ce25fe53ed5a292e4cc68b3bf9dfc37
-platform/external/tensorflow ca397eb7ed3d37035b772ccdaae79cb06eea93f1
-platform/external/testng 1a5a8241bfe4957b4054d4be86e8243aed45b3ff
-platform/external/tinyalsa 3d161217c03bce6ce418a16fba8e1910a304f85d
-platform/external/tinycompress 683bb324caa9d318f5dc1bb30f6c7499b2b0b9d9
-platform/external/tinyxml 3635bcc08fc3a0391028dfdd1b0a4d00777edaeb
-platform/external/tinyxml2 1ff1d11f7683dffe0fcee0fb8f890dcd32659781
-platform/external/toolchain-utils cde86f41626061a6b178a74aafc970b6adf8e8a5
-platform/external/toybox 0135330bceb2810fe2333504e0fe7cc3b6cdf2cd
-platform/external/tremolo 7a22090109d7ba391333e29b855740d10c292c2d
-platform/external/turbine f8280df3531bcca03e2ad3a5c3175bc3fe9f6178
-platform/external/u-boot 111f850a1f00369d92021c810b05ddcea107b9af
-platform/external/ukey2 7015f7a6bd9ef47f8de34db481c7e457ca6f138c
-platform/external/unicode e32e29b5edb3802cd0a5a333f858aaa8bc2db73e
-platform/external/universal-tween-engine a8ee7e685a3c41584f5dbcc8c692804189ef8de4
-platform/external/v4l2_codec2 eec3db7c291c09dcc92766c1b28bfce6b2e74f9f
-platform/external/v8 b520e2eab71c5c7fd8746a4d9c875194a1541ae5
-platform/external/vboot_reference 362ebfd7294f7d0ff23514d4208328733b12f493
-platform/external/virglrenderer 228b20a777c2f7cfdc2bbdf28faac27f67d991ae
-platform/external/vixl 94c2dcab4ef2091205284f6285b1928cdee8d181
-platform/external/vogar d206a40b8963549bea2461270e67a96cdbfe54d8
-platform/external/volley 219f5f6c780b3210d3aedf0a9cd803011a7bc4c6
-platform/external/vulkan-headers 13d8e262665e8ec9870c87f6aff7574d35636aaa
-platform/external/vulkan-validation-layers 15e43fbf6429eb55d7039a1c04fb15b9145f44d2
-platform/external/walt ab11cad8869bb6b5191b4f2301b4bc610eda64b9
-platform/external/wayland 565640eeef2660ebc7f2154457f9e2dcefb34a82
-platform/external/wayland-protocols 20da51c30ee4f17c8d3fd3b99cdefdc2aec78f02
-platform/external/webp 394adb5318db885a911a797f931e88de29f7f94d
-platform/external/webrtc 480bea77d35453cd160a23447dd85b1c7b261699
-platform/external/wpa_supplicant_8 cd2f60707b72b074baf120ca26cf4834578bd143
-platform/external/wycheproof 476c11cbb8d3aae6d8ec23dbbcfdd2ec5f308091
-platform/external/xmp_toolkit 796725d5588b17e5e0b4ca8560926b1f97e89180
-platform/external/xz-embedded 1fde8bd249e1a0e705173800c6e3c5e84f376fe0
-platform/external/xz-java 160a9877a4a457f2c3e1ddd1079e46b5960b467d
-platform/external/yapf 069dcdd82023ebf52feef58939d1be861b754c6e
-platform/external/zlib 670150db5a680784fd58dc9c5f26275abde752ea
-platform/external/zopfli 69a4c40111f5a7a2d158140305c070ae77710bb2
-platform/external/zxing ec2e4334658bdab8860f88c6414996167cdedc37
-platform/frameworks/av 4818e08347703105f83c8030510a39ffed0d867d
-platform/frameworks/base 44b119efe92d0dfa1a90a9b4dc7b8c4ea5a6390c
-platform/frameworks/compile/libbcc 7544e307cc26c9ebeb58098f9eb0e82f32fcf488
-platform/frameworks/compile/mclinker f2624ef41bf97234874b473404595cc9dbba2ad3
-platform/frameworks/compile/slang 82481b52d91a2edcb7292a9b450804eb98e96edb
-platform/frameworks/ex d61bd1cc377fc024e40b00c0860115cc31a68e6c
-platform/frameworks/hardware/interfaces 8c871318fda01686043c653c21d896dbca9e7787
-platform/frameworks/layoutlib 4bafdbd0acc0fe5af4b302a2541b01bb724f8013
-platform/frameworks/minikin 9314661eaca2a919a0e83303ab31345979a78a29
-platform/frameworks/ml d26782f2e44aa73ac8cc1da075c56884fa2bbad8
-platform/frameworks/multidex 7c523a2cbfd2fc4e845ccad60b4e53723a25a0ef
-platform/frameworks/native d5377d995657feaa5bb57eec43ab0402441239ec
-platform/frameworks/opt/bitmap 8a9e20c7cacd022ff928341ecdc1369cc1600931
-platform/frameworks/opt/calendar 73e6a611dfa86c12c061d762d8b3bb513040f579
-platform/frameworks/opt/car/services 6d07be0c8ac4f6a4a1a82dea760f33635311d02b
-platform/frameworks/opt/car/setupwizard 6ee0abefce7eff1bedf1d06b442c39dc9c8a90ec
-platform/frameworks/opt/chips 487bd7ab88e941c1cf09b2d170302419df184d93
-platform/frameworks/opt/colorpicker 8bedd1dd4a996fe48c5f40c17043289e71ed358f
-platform/frameworks/opt/inputmethodcommon ec9c44153ba1aa9d14171123c23777c006bcf7d1
-platform/frameworks/opt/net/ethernet e0b4a8955f88c39943d691b47c9a011cd21a79dc
-platform/frameworks/opt/net/ike a152ed71411b077a22e48314a81fd8f838118435
-platform/frameworks/opt/net/ims 061d331192825a267015a503226ba6468946cc1c
-platform/frameworks/opt/net/voip 1b53bf0be749e09a2e46fa86b78179f37bbe9987
-platform/frameworks/opt/net/wifi 6d91e29a4a235bbfb1a14cf01a35fe05cd5c548f
-platform/frameworks/opt/photoviewer 54874ac60eab445b020bb513f5b8a3b4542cf131
-platform/frameworks/opt/setupwizard 2f8146865182c4330d39b50a2e1674ce493d9b6e
-platform/frameworks/opt/telephony 57d3b494215a303f3f68779e5bc27e27130c16bf
-platform/frameworks/opt/timezonepicker 639a11846a8bd72962f47e3cfea0b7385150e482
-platform/frameworks/opt/vcard ded13d2482707b8610fc32993dd8b48e345b26e4
-platform/frameworks/rs 4b40e24bef537e4256d5807f76c9fe9ecad857d4
-platform/frameworks/support ac0e825c79186314651efd16fc5438bf294a5730
-platform/frameworks/wilhelm 62fa89482ee32213c1e09c8909ffe2ce17f74c05
-platform/hardware/broadcom/libbt 875846c1aaeee01600ec0da70de0396e10bb1b50
-platform/hardware/broadcom/wlan 31d64b6507a8e006659b532a3a6060c9aa52c245
-platform/hardware/google/apf 66e0ac6d1fd753eb062fb5763a202022e3a2adf5
-platform/hardware/google/av 6bc45db08cb4c328783ecc39b655e864588468e2
-platform/hardware/google/easel dceb7bf6db182304a30f21f6e518da6ad4c61e43
-platform/hardware/google/interfaces 2525139faf4b11fbc4500345cf130d606f22b67b
-platform/hardware/google/pixel f15a96a559e1ffc84a4217debcf3fc650aade41e
-platform/hardware/interfaces a81b30047b88805967dc873e0575206cc4d7078a
-platform/hardware/invensense 25d0988bbd77838681cc9bdc91317570e960538b
-platform/hardware/libhardware aa8beea09ea0536ea0e86a19292c3145bf69d9a5
-platform/hardware/libhardware_legacy db928eb65ef1c2c50f27e221da35188fba3bf9c0
-platform/hardware/nxp/nfc 35ea5d304b44f6fc7a9bc44769c927c80c945d75
-platform/hardware/nxp/secure_element 3b9e13ed47c1e61f5133fe8d5c1711560f4f2cdd
-platform/hardware/qcom/audio 31ed4a0b8662bb42273d9bf6ea24d111c97aa019
-platform/hardware/qcom/bootctrl f0e79f591a3284f3cc8f0877a64c0fe2562187b8
-platform/hardware/qcom/bt e8bb1c5e6a759dd21bfd9572b0b4a0f2da71ee14
-platform/hardware/qcom/camera 0af91873bf48c4f37ce66715e5f50724ef3152a3
-platform/hardware/qcom/data/ipacfg-mgr 8878111da5e3e02703326fb7de7a774a4b04ed09
-platform/hardware/qcom/display 6f649fe0f066c6f02aaa6ecedbebd4c27d43461a
-platform/hardware/qcom/gps 35f5e5ded411dc49e3cbaa787d8ac69c8b2806d9
-platform/hardware/qcom/keymaster 420af58ecddfc46796b21a594555c6d051dc0d2a
-platform/hardware/qcom/media f52474b60eebc18c8f56dc52a7900a56ea646e79
+platform/external/googletest deec02a7f3c6fe84cafad4939ad29f3bf1642871
+platform/external/gptfdisk b9f492e72303511197878761ff13dfab71dd6b8a
+platform/external/grpc-grpc 303411a9bf54d3d4798b0515a6b815e3d986dcd6
+platform/external/grpc-grpc-java abaef1de74ef3ad36ac190edde5417938c99b058
+platform/external/guava 049342f9a1c253382a74629bd08dd63e3df94f1f
+platform/external/guice c4fd8b3874df59fb77a73786b7a7f9181e170b9a
+platform/external/gwp_asan 5057548af6c135db9ae96ce4afcacd365439ac6b
+platform/external/hamcrest 9fb39eb74d681eda9d20610946203cceaed3d50e
+platform/external/harfbuzz_ng 888ee803e7e11110b0811e268cc640cfdb80e739
+platform/external/honggfuzz 7c50b636146714cc039593d90a09fa6a845441c8
+platform/external/hyphenation-patterns b92173521f785c2c1d4316a1bee3beb59c0acb64
+platform/external/icu 072c4e8d2134506e3a4ad3d7f6d979065fd90f64
+platform/external/igt-gpu-tools 93f2efc2ee257b4a9232da8695595932e1c88b67
+platform/external/image_io 135f7c04ae98ce694efcfc6d9a0d2bc38f4c3653
+platform/external/ims 7b765033b963747201624b3c3a465ef35803ed99
+platform/external/iperf3 f569bde24f92969965a2ce15ee8e93bbc15b67be
+platform/external/iproute2 51c9fbd3ba068f97a6d8e2e5fad55b4ec79fa27f
+platform/external/ipsec-tools c250039fbb3fe0e3f3c8dc00fbacb55be9056923
+platform/external/iptables fae1855c853b886616469b213934433bf9a767fa
+platform/external/iputils 4517514ead3ea7c0ae633e3a6a4d18b2aef04133
+platform/external/iw 1861d71b18a95c08981e1bab4d9d7b352b6281fb
+platform/external/jacoco 53f1d3d02e80943975840ea60e12c248f5ca9db2
+platform/external/jarjar 08456d6ea4bb57bf8facb1a692a8f1136684458f
+platform/external/javaparser eeb1a519acc4b40ae59ff995be05f4ad4d693e2f
+platform/external/javapoet ec2bd4c93b94e6796c9bb642659bd7600d3e6b9d
+platform/external/javasqlite f341c8f3007542b2029c1712ac06aba28f6d1dcf
+platform/external/jcommander c9c6ec032a818a29e2d4000a7ce8273a2a316c5d
+platform/external/jdiff d6789392ce58ef13df5646e47a806113ac5e06e0
+platform/external/jemalloc 3c5a4cebf789d2ea1a92a63ef25f9013a38ec35e
+platform/external/jemalloc_new f8df870b18a2cbb5bdbe1e5149f929f3a1159c49
+platform/external/jline dd0137c3e185adc4040923b41de5495c4f813efa
+platform/external/jsilver cee1ad838a9ea14b7fe9dd08e50589c6b7979783
+platform/external/jsmn 1999c14d94099d3813c3e1a820d2e0887ca2f2d3
+platform/external/jsoncpp 445d2726b95addae2d201799ee86b8a0477c7087
+platform/external/jsr305 25a328f83cce95536d5540b8e3213fb361d9b325
+platform/external/jsr330 2a44ef6034e4307a0b733df86da1687580e59ff0
+platform/external/junit 8a52749eb521d5eb571c79a9dc9cb3ebc76d461e
+platform/external/junit-params 072c07a32944c10b42519f05b13d9aa340249d12
+platform/external/kernel-headers f1f16f022c6bcb6bb6314f09a0645179a7d7d95f
+platform/external/kmod 11f5058de87966de87a33ccf8a7456db7d41f522
+platform/external/kotlinc 17c4c51e3b3dd3898500a652ff086ed1ff2b6287
+platform/external/kotlinx.coroutines 4763910e18c42039614c5028d8adf11475f1c142
+platform/external/ksoap2 65f89056a8d0b28fc419090a70730f433060a161
+platform/external/libaom 5ad98b04fb6e06fb5b842e6c454840256ad275cb
+platform/external/libavc d5bc12632a7c2f1050d475df9b79779a789fef97
+platform/external/libbackup d7c9ba6e56f857914bae54ce2306dca8c329430b
+platform/external/libbrillo 87d4c38fee9d0ab31205d1887d83acc0d2c82232
+platform/external/libcap 1ca4340895c58b84083154bf40da2c13ef54e859
+platform/external/libcap-ng 71f66d568cb1304f8eaf7becffa0bd253002506a
+platform/external/libchrome efaf870d2e5a0726ccfaf4def6f46a696c1e8dd6
+platform/external/libcups 250c43b6b2a3761f4f4ef462ba4e8b68431d3233
+platform/external/libcxx 500c3abadfcc117035a2b4b16e68bd7c394fce92
+platform/external/libcxxabi 7d76aca78c267ed2cf168f9df812b0e0653d6b90
+platform/external/libdaemon 6e2dd4bdfbc29ea065fc74638a6ada8dbba6e6ea
+platform/external/libdivsufsort abd58f7cb4281ecbe05d5d85aa420df170c85435
+platform/external/libdrm f3896aea03ebfc5a718ac267fe1315fa5ad73934
+platform/external/libepoxy 993a926ef52f7af24cf5bc3104666ef32dfa14ad
+platform/external/libese fb9cd2837e2e8a103dfcc2a1b6ef166a8deeb883
+platform/external/libevent fe119766623d8751f5f998ec874a5bbbc719a460
+platform/external/libexif f254bfab32e5de66377797b2cbe672fabe6b9345
+platform/external/libffi 863545bd1e607d6f91ed870d41e960210b2cb2af
+platform/external/libfuse cfde5bbd84f31630928b66992bdbbaee96e6cb81
+platform/external/libgsm 60dcaac5a77576c808cdb6fbe08a8a1f0f9a59c4
+platform/external/libhevc 022d09423d7200d6ad8c00169a2de4ff35778d6a
+platform/external/libjpeg-turbo aed1dc26ac21f0d1bcc5d7453f725afdfada660d
+platform/external/libkmsxx afcd5c35a079e61d7281c5c3f5d536653a9e1f2e
+platform/external/libldac 72801b3d57a86df7e1a98fbddb302f9b1070e4cb
+platform/external/libmpeg2 5ba77658071ca290bc03e4c3b6e13d2a1e7c002e
+platform/external/libmtp 58f775b5b0bbbde739de9ca3fc5eb6ebc704d24d
+platform/external/libnetfilter_conntrack 3251c7996edbcef912b26584740033a8204bbf7c
+platform/external/libnfnetlink a48529117aaf0619d4e5a5b4db99ef2b1ed9824d
+platform/external/libnl 7e75177461a99966b6eb823caa602c9bc11e78ea
+platform/external/libogg ba297000f6d74ebf465fe7691e8a76e33b980a6b
+platform/external/libopus 2bd6870bc6c049fcd035ca117b36fe9ccba8b4db
+platform/external/libpcap 16209e356752da38105eb26381573001e181291b
+platform/external/libphonenumber e2f65a02553ad9898b5326146d66294e17a03945
+platform/external/libpng 7288eefee10f019c9608b2566b4c901c5b1f87ad
+platform/external/libprotobuf-mutator 55206662b2f8efecdaa14ee51b4d543db5845ea9
+platform/external/libtextclassifier 79829ffcfbe22364761a9c6f9e4470963940ebc1
+platform/external/libunwind 7074cc5a258078ac9a01cfc2b4e81e84eb21ca25
+platform/external/libunwind_llvm 9380ae88e6bbd688fff69658fa82dd5ec953600b
+platform/external/libusb 7ac0dc3a552e6e20139692f23c8a758610a50ba7
+platform/external/libusb-compat a47971fcd950d3f0cba08ea4a40cff8dd4b9ab9b
+platform/external/libutf 96dfd23bbb21e18cc54d1097633caa8bef2ad1f8
+platform/external/libvpx 90efeb5be7780ad35136d7f2526ac0ad464eaaac
+platform/external/libvterm bd82821b6eb9e7c48ec2e9b6d39fbd10030a7402
+platform/external/libxaac b96edaa10898d5e1543a534c6c2db91e59b0b974
+platform/external/libxcam 91848d7aed966a59c1e6b23b36b45373ecd28e12
+platform/external/libxkbcommon 038c441f22f0bf4f66bb1d6d7125c8452f52efff
+platform/external/libxml2 c1a9420bbe64bb610ed9dc014e23ec1b24150664
+platform/external/libyuv 5911d9d7b77d85f7d588ed81429936d87f01f435
+platform/external/linux-kselftest 2ea26fbd487935d0b3da051753ac81323f05dc4e
+platform/external/llvm 6b875f18160fb001574f3c909774a0b706426a18
+platform/external/lmfit c507d6b24ee74d31d5d1bb8a993477e2a5a308f1
+platform/external/lottie fc6dee4f3f9a85508bca944c6ed38892f9da5c3f
+platform/external/ltp ff56511f8c2703b30528fca03e3185fe23164983
+platform/external/lua 18cbd41f26d04e8c0bdbb3abc6a6bdd11016f21d
+platform/external/lz4 13c097e7b9d3924635020361289b6dd63c16af51
+platform/external/lzma 0c434283f9d1f78e5761d166571f1bac6eccd279
+platform/external/markdown 469b20817462be28ab95dd5781d59c219a50db9d
+platform/external/mdnsresponder 48ece3453723e376d0979dd89244531be984fee2
+platform/external/mesa3d 658444d1d59bd9ff4790f94bf063dd3e320640f7
+platform/external/mime-support d390e01dbb82b18f9d3e92c0ea252a664432d8e2
+platform/external/minigbm faef7c610d2aabe7ccfa74662b24aa632f7f63b3
+platform/external/minijail 7d9e7aeda9ac1a2cd6eb4bb106d768464b733d3c
+platform/external/mksh c93a9e9d7974199fd852ad570dbf273a229072bd
+platform/external/mockftpserver f75b13661126047ba5496b3bed5063234e673be7
+platform/external/mockito d8ed528703b069ea1cfbfd4bc97422b472c0de4c
+platform/external/mockwebserver af76e46dd31d411e0b415d882b7fab86b2ef46ff
+platform/external/modp_b64 7772e2b4591a4ac2cf20f0279a185f4ea3e53cec
+platform/external/mp4parser 8df0ea8b08aa4efda4749543178e402ce6fdd47d
+platform/external/mtpd 3bcb02f414c9fdca3d4d41f9c5c52c277a153ee3
+platform/external/nanohttpd e9a5be42418425f093cd864a8590d034ca05d9b7
+platform/external/nanopb-c 8c02f3a0338a218a80e2ed50e3d8b527357311c4
+platform/external/naver-fonts e8022f9284c31ca2db2c9839efcd962fa1a81ba2
+platform/external/neon_2_sse 06a3ce3877675b7842bd3c8a924d3ccbdc7bb2cc
+platform/external/neven aae1d6096667a640e9b5a2f809520d2adbc74466
+platform/external/newfs_msdos 57b3f3d9679935ff69499d94a782866648b8ede8
+platform/external/nfacct 92f0ac50982e97eb9b1b2d129b1082f10c8273d4
+platform/external/nist-pkits d8222dce490a570c7200650c841d3855c228b35a
+platform/external/nist-sip 0deaa72478fe2aa48f601e0337814016a6305cb9
+platform/external/nos/host/android 791f018bfb112c5e59f72fde10d51caa25fb162e
+platform/external/nos/host/generic 9d03a4fdce0aa8b52f9af8e29238de3ee2bd665c
+platform/external/nos/test/system-test-harness f08f48dac6398b652bc58241c37e49703e62ef44
+platform/external/noto-fonts fec50c48e937b32a44ce55d43494d9b8e87b9930
+platform/external/oauth 953426b3a705659ce7226d370379db9501dde599
+platform/external/objenesis edc90ab6912cd4cf506063105ea4acfe771546b0
+platform/external/oj-libjdwp 6141e70e112007edec00a72e720641668ba3ebe4
+platform/external/okhttp e79f450f48ffb5e70cf2f891f0aac99a7137bb53
+platform/external/one-true-awk d2bc36710fc12baa5597b79614f795cce1936eaa
+platform/external/opencensus-java ee4a55797b3165a9fa2ee26b0f060dc9dd59c27e
+platform/external/oss-fuzz 8b63fe958bc5aea0a2721e9746f6e12e9453fffe
+platform/external/owasp/sanitizer cec9c479bb5793311cac1a92e3ea2a87ce8f7f97
+platform/external/parameter-framework fd158ff2f59d5d587a2ab60292ff47161c5cd645
+platform/external/pcre 0b7d5ce3a3308c117b1e4d32e47d6941b50bd460
+platform/external/pdfium e2e3d648627d305e2c052e22b9e756f224a34928
+platform/external/perfetto 7f98be43cfa6cf5fa2468f8187a0fdcdc363242f
+platform/external/piex 0b6bbf4b2c844394d7baa293243b558b7346a38a
+platform/external/ply a09c33c55a253633ff0f0a18755dea5be386aeb5
+platform/external/ppp 3fbac0789b7d926abd53369fdfa7ae2f2b5c03bc
+platform/external/proguard 12f631c667f4699f88cd96e76c6a259bfa02fcdc
+platform/external/protobuf 9cbd510681e68ea1f1a3d8662c028bbc040ca049
+platform/external/protobuf-javalite e024c93d1d1b0ecfe5f28730a3a922f6b39cab92
+platform/external/puffin 9366c93decc07f1de3684da70b4a48b6948f5dc1
+platform/external/python/Pillow f09d88d3b62dd638a90a075c314aa618fd355c3b
+platform/external/python/apitools bad0247b7006bc6af38ebdcfde3595647bf0a6db
+platform/external/python/appdirs e792a01fdeb776d3630ef144af1d1f9993c2009b
+platform/external/python/asn1crypto 92553fd2836e82d84ab66d1d550ecd6fe4ef61b0
+platform/external/python/atomicwrites 7be907b3671db35d97182e0e0826e5edb6572d27
+platform/external/python/attrs bf15ff439bddc058195abfa36b89b46dfd2f08d5
+platform/external/python/cachetools e3100ed4c865dcf81069d93c5e1891a1a7d3bfc5
+platform/external/python/cffi bd086ae01b631dfc919165585c2034324f40be26
+platform/external/python/cpython2 75b8b8e24b030e79fb6b9189ae945f8e0d6f5e35
+platform/external/python/cpython3 00f6977ff71df4013835fd8cdb52958f61c6b7ef
+platform/external/python/cryptography 411f23ad0f2df303bce0a748aa56650ff61f0d37
+platform/external/python/dateutil e0476fd351a7fe27829304815de176f93da405bb
+platform/external/python/dill f6dda346d7c86e142ee80c5b87a997cbda430a0e
+platform/external/python/enum eb29891fddcc1aa9c244df8cd25961c3678f5d9a
+platform/external/python/enum34 9b4fb9115e2469fd2f2ee73bc479763a88d97f68
+platform/external/python/funcsigs 3d40f70be2af4693cd41b0586fadbaf337f17b56
+platform/external/python/future f748673e6290a446416334be7d05e2ac1eb2133b
+platform/external/python/futures d80a9db390970f959241be3c2164fe53f0a5bc16
+platform/external/python/gapic-google-cloud-pubsub-v1 c2f02c980c89b1899bcc38dd6e7dc4969371166b
+platform/external/python/google-api-python-client 086074c55ff3e9bed814085dafab67737ea75f4b
+platform/external/python/google-auth b18e62739236dd7ee7201528affe0f39ed2ffd2a
+platform/external/python/google-auth-httplib2 5c728537f7d976ba10560af5b305d3681584ca5e
+platform/external/python/google-cloud-core a4f2a8d6a41fe8c45f91836691c0ea25d37aa137
+platform/external/python/google-cloud-pubsub 559f6b05d91ebf48333b2c5627dae08acb971ce7
+platform/external/python/google-gax 6243f9afd02cb9fa4f899af9fe82c6bd43d1f92a
+platform/external/python/googleapis 3fca0945fc23f0136a9e800bf37fcff2aee55d06
+platform/external/python/grpc-google-iam-v1 5e28c2d8ae553c937c37a256520a4f38b1fa8276
+platform/external/python/grpcio 92842317c5b437d1e3049ba886c8ea92bae6ebff
+platform/external/python/httplib2 e774483cc7b744f3a751cf83bb071398f475b61c
+platform/external/python/ipaddress 6588a793b864b71b2767da6a6cbc864d55ced4c0
+platform/external/python/matplotlib af46fef7923e1de7834ff3ff9afbac1788b9a071
+platform/external/python/mock 11e1edb6fb12003593f1a98d1bdf5b72452c85ce
+platform/external/python/more-itertools 64ffd2f473e3aad7621df5e6a3c0b8d576db0de0
+platform/external/python/numpy 8a02b65a87009ac4ed4f112add2454177a7400c0
+platform/external/python/oauth2client d2ce7e4bde5e682bd0d27b7b803ba91bcfa94505
+platform/external/python/olefile 3ec2da3d652b4b3a6612773267d4c5d06daa6f0a
+platform/external/python/packaging 9db91e2dcd8284447db89232d3a8adfa19b8b959
+platform/external/python/parse 0d02a65f960cb0ddafd5342f56ae6c39110ebd65
+platform/external/python/pluggy 942c1c489c75dd116f87b77d8de64cda202a90f7
+platform/external/python/ply b64ec102c7aeadc213e02a0525a7cafea7968760
+platform/external/python/proto-google-cloud-pubsub-v1 9d7e9b33eedcce561a0eab50e21d58639d3e97c8
+platform/external/python/protobuf 0ea27ebb8862f45608f8384e6936c30ebab01e4e
+platform/external/python/py e49dc531c0cdc457722577fe4f8aa76e13a82de4
+platform/external/python/pyasn1 cb22431b6b71d4dcae47b45b55fbd49ccc3d1de8
+platform/external/python/pyasn1-modules a0183b363007566e95ef79776452e52b428c2684
+platform/external/python/pycparser f266ed20bc0afb72a88469ef60c6d07ff2a6306a
+platform/external/python/pyopenssl 0ec47e5c387be245d6533982d2ff8c250373a8d6
+platform/external/python/pyparsing acbcb48b92fd83cdbdfca7d2b93408eb47b3202b
+platform/external/python/pytest e83b474c3a4f49acb01b07223688d07313f1f95f
+platform/external/python/requests e5f1e6071b75106781290dec04f2a44a8a451d56
+platform/external/python/rsa 7cb4f51faf681bbbac8164b4f96e56511eb5a420
+platform/external/python/scipy 931800acdffad2aaa92050c9bdd54156b211666e
+platform/external/python/setuptools c90e6730402722f04e66a0fb3b7b853ad5bb12c3
+platform/external/python/six 1c726e00ed4a3ade4c3275c78f72c3f68d0b3de7
+platform/external/python/uritemplates 71b4afe5d318abf31d28af72f129433d92f40b52
+platform/external/rapidjson 414cd8fbe81b1f0103ec760948926fe0ff3fc1b7
+platform/external/rappor eb6503c83667654f7762930afafe4ebf05bda557
+platform/external/replicaisland 8006831a0432e94ed6cf93294b9ecfd4f98a81b8
+platform/external/rmi4utils 16baba33515930b1cccb4497ed34c3b21079a904
+platform/external/robolectric-shadows 6eebe72547dc10a371b35fc3b48be150fcbec7cd
+platform/external/roboto-fonts a8e34bee6c29d054919a096a5c16920870762db1
+platform/external/rootdev 9892d3abf221fd034c945f335602684356d91a50
+platform/external/rust/crates/byteorder b90bc6558e20d727896f8782fbae7f4084a43a58
+platform/external/rust/crates/libc 9b7925a1f60377ff88511554b1552da47571bcf1
+platform/external/rust/crates/proc-macro2 3a67c4824cb4e7dd75875acc7da472d88391c4c3
+platform/external/rust/crates/quote cb0f96530fa303c466772aceed2e2fd985149955
+platform/external/rust/crates/remain bfe23ab1f62e14bb738b8c6c5f1786735cd593f3
+platform/external/rust/crates/syn f99f59623ff1f90a0f9101766e8dd1be644d78d5
+platform/external/rust/crates/unicode-xid 1809e3e8893e8d9fdec6b842427b7ffdbeb92a23
+platform/external/scapy 72d0e3ab66eb1603a309f35a67eee6c8b3a08fe3
+platform/external/scrypt 601ad78539e78ca838ccb1c777da2a00bb8a23d6
+platform/external/scudo 8c0ae2bc60f1fe5547abbde94c58692e5c36787d
+platform/external/seccomp-tests b9e8ad9381e5b0731722254fdf5326f690e59910
+platform/external/selinux bb419a07dcdf22b12a3358671dcad320532dabd6
+platform/external/setupcompat b1f825f052f29e4c644ecc1f758d1947c2df4b6f
+platform/external/setupdesign bbd2d8fe4e41a854124b50e0f5217f3e9764fe11
+platform/external/sfntly 65cee0f2dfae2a58f3d1e99db778c42edef482c4
+platform/external/shaderc/spirv-headers d3acf938eed0257837076a8a4916326b488fdec8
+platform/external/shflags 75f3f357dd7436fb0682978ea7618b2942750b67
+platform/external/skia 9fce1b831e4b7e03a368e5eac04241eda8b4dbe5
+platform/external/skqp 2e2886c31f138569186deacda5e6edd353b73faa
+platform/external/sl4a 78c361e2902efb4594c06facfc75534b1b909925
+platform/external/slf4j c365354f4d181c15dcb5f742846fdc48b41128b7
+platform/external/smali 4074a71fdce99729eba056558c9611a383f8f23d
+platform/external/snakeyaml 66d5df35399da786915fe9b3699e79eb39ae31da
+platform/external/sonic 791d0b2a92eccb1ce15363b9bd2896ac6a55bbe1
+platform/external/sonivox cfc29ba79ed9be059e9ad98780cf98f5fcfd8e2d
+platform/external/speex c0ef4bb2ada6d7d8cfc9b0bdb424f1a0ab43a2c6
+platform/external/sqlite 752e8c46c9ec447d09f830ea34bdc73f83cfb3dd
+platform/external/squashfs-tools c89be52b4e9f7252a7182cdd3ed079c176245d26
+platform/external/strace df971f4faaac7f66b5c466290f67e3e93de3efa4
+platform/external/stressapptest 1ad1d401429d71c0168e64aa60a342d2d29ddca0
+platform/external/subsampling-scale-image-view 5fb46aa47bd8d0ca763b7f17033a6f842e57d4f9
+platform/external/swiftshader 4e4114b4ad745e47ec0f1003f65c5051a6b6c5f0
+platform/external/syzkaller d8ae6c9e1ad52ae8cf1898e7de025a7db23a3764
+platform/external/tagsoup 9cf49bd08e4a40d0d8feadb39465a1b87d0cc141
+platform/external/tcpdump 756cc0794279f01895f9dd4193f20b9e3fd9a3ee
+platform/external/tensorflow 2a5b7b32dea332b0c0f5cb3af8edd2f83f11d7ba
+platform/external/testng 0edf7d2693e73f5d11408c8631c49778d470e268
+platform/external/tinyalsa 1df48abccfc6f9a01e967315f4b8176b1eed8ae1
+platform/external/tinycompress d8a8d5a5d9c7e43e1bc49a9d4c0c3a011ccaf0cb
+platform/external/tinyxml 25f446708ea444ac884ffad2a92d29a209452322
+platform/external/tinyxml2 4099b2a99372a5810f32aacd57c631449c1d0f61
+platform/external/toolchain-utils b98d708e9282aa0b6d6dea2e17f6f9305cb3af7c
+platform/external/toybox 56d917bae467ede5c76b270fefa94a724520c10c
+platform/external/tremolo 2d041e1d29625ef9b7caeb89ebebd950505ffa7b
+platform/external/turbine 6d217e8b80db65af4e201c208aca365dc5d5d2ec
+platform/external/u-boot 7bf77e6bb1e1c65fb184f8539d565e7ee579153e
+platform/external/ukey2 ac583260c079121eecbf21570611d5c2e73d6794
+platform/external/unicode 6b55a704f0f7e91fcab423bd8d0e9436e3ff3fc1
+platform/external/universal-tween-engine c607fc1deb11acb9829ea0a56c07cc7ff34d58ef
+platform/external/v4l2_codec2 e0ce8ba86cd5de615266d2f87149fe688718b181
+platform/external/v8 a8e876bf676e061a1996d7013cc856f632feafca
+platform/external/vboot_reference c5d6cf90e8a2938ba0e8a8905615820a497036ca
+platform/external/virglrenderer bed3f059d0fcd6ca8029685f3d4441160d4c4ee6
+platform/external/vixl acbeeefb9a4a4551022311efd8ea573a05f6d9bb
+platform/external/vogar 8172ed0046e0c82a4fcf384ee292dda0add91458
+platform/external/volley ba88b353e20cec2a2f942f2f5f8ffe20c961a654
+platform/external/vulkan-headers 170ecd743fb47dfa88d0530bc419ada44ac56df1
+platform/external/vulkan-validation-layers 016d57ba410055344fb345f7ac7627abeb6f022a
+platform/external/walt 4471d8b32ddac599e39dafb5814c17cccd40cfa4
+platform/external/wayland 03c1140e3b093ce909df282d3520a88f8172eae4
+platform/external/wayland-protocols 15c5c45b7ebf0c7a362c2674d054eff78b1396c9
+platform/external/webp bd0a44d0cb2af55e42a1317b96482cb8e7ea1d76
+platform/external/webrtc 00cd0b7e3f62ad3e574648d7a16ef57505f37769
+platform/external/wpa_supplicant_8 a90ab3de3ee3ecef3c35f9467e015d2315469019
+platform/external/wycheproof 45f643a86414dc83f0e88d7bad815ffbf60f29b9
+platform/external/xmp_toolkit d27e6a063875b41b79c766ee987d4c31b682d2ef
+platform/external/xz-embedded 2fb7ff490ab86ac3080846c62e95c61947709695
+platform/external/xz-java c704abb9d4a6aec8e1a557b1365509d34578d2c2
+platform/external/yapf 717c0962c444baee39b6a6a856edca66bf5b6b3a
+platform/external/zlib 41d5da3c9936807d70e12959057df0f2b6c4eb9f
+platform/external/zopfli 750fd11c451fe425642547c2bebe0ddb3a81467b
+platform/external/zxing 03200e9cd5ed780f75301a3894162050c73c14aa
+platform/frameworks/av f028d55cf400743d6e6106e2a1cb06356716ed1b
+platform/frameworks/base e3fd6c2c175095fcdd47504db35038e6f5f654d2
+platform/frameworks/compile/libbcc 80236768d8e30520112e212f18bf45e8cc4cdfd4
+platform/frameworks/compile/mclinker ea900917d72f7dc29b98c002e002012cb36b2978
+platform/frameworks/compile/slang afc7ae7afe0cf0e12910e619ed7e1d55d8660ea4
+platform/frameworks/ex dfb65948b79cc56a8dcc04ad04f63048766ae56a
+platform/frameworks/hardware/interfaces e83168d5b592ae16023df16e5a8f65b5927f3aa0
+platform/frameworks/layoutlib 161d612eba1bca0f2d3030e94c276b5ad11c570e
+platform/frameworks/minikin ee35daf1d1980de4a308a22a561580989648917e
+platform/frameworks/ml 9754e3e9e106e256de8b3cf003d89b5e70e43f9b
+platform/frameworks/multidex 79ad6a47ecc2ce1cd3924d30fe1a9f6324cf94c5
+platform/frameworks/native adac3520f3432a0345b6afad468677f037fb26c1
+platform/frameworks/opt/bitmap d27bcc0cba561c829bacd25ab0c057ac957ec87d
+platform/frameworks/opt/calendar 599da8cf33eae48256b824b7e080ef80d694e727
+platform/frameworks/opt/car/services 720c0fd3e483a77076f69343e3acdbf0ef05bd11
+platform/frameworks/opt/car/setupwizard 52562b166004b1165164fd0e10b952a67c7d8c4b
+platform/frameworks/opt/chips 827299bcb898538d8cbcbfd4337bace0cab49e3e
+platform/frameworks/opt/colorpicker 922a87b2f0241454b8c5750bd6b98d349e1878b6
+platform/frameworks/opt/net/ethernet 5aaac9c91cd3926f0e6021068c1ec8a111f23f03
+platform/frameworks/opt/net/ike 9d5b2239cfa5e6d68220aa591e061066d5d4cb49
+platform/frameworks/opt/net/ims 0ee4b2d799216ad10c670c71c38fec5feedcfbe8
+platform/frameworks/opt/net/voip 3c407a1021a741872be6eb1dc64ca0fc71b9590c
+platform/frameworks/opt/net/wifi 9b914840378ccf39d8e29acce093380d22b4218e
+platform/frameworks/opt/photoviewer 05315c3153e336f8aa2414530d30f239c92df366
+platform/frameworks/opt/setupwizard 046b5c760af7c730cda0173fdea925f68f68272f
+platform/frameworks/opt/telephony 5df2e3161fbf1f4830621f80ea2f8481cea69bbd
+platform/frameworks/opt/timezonepicker 5ef208a977d67cd76475b684b01040c9c42f5caf
+platform/frameworks/opt/vcard b5784bbd04ba9b7f82bf1423e4f9d4bcf92dd8f4
+platform/frameworks/rs 0c55652bee27d8186fafef3a222c53bf67545313
+platform/frameworks/wilhelm e6e86ec3c020f323217a4d7a2704e5091a2aef20
+platform/hardware/broadcom/libbt acf7ebb916833bc9c6a18d3c42bb39582e06a592
+platform/hardware/broadcom/wlan 73807f8bdeb42d04fef4dc59fbd26dd6bf76fb38
+platform/hardware/google/apf 882db0c3570d57b538134961d41e7f650c1b46ed
+platform/hardware/google/av 233159b717cdf077fa399b899e203f7407755da3
+platform/hardware/google/easel fc7b65aa7e2bd372f905c562913223873e1292d2
+platform/hardware/google/interfaces ecd26245b80baf0531be9a24c25dbb64d313c868
+platform/hardware/google/pixel f07b690e743d419615c682d068b048eb1ff8d6a6
+platform/hardware/interfaces 9b0f7abc5529903845302c301dab915a40c8e38d
+platform/hardware/invensense b7fce877eac2519faa46087ef42044003f82f4fd
+platform/hardware/libhardware 4ffb58ca177f468e6f04010869a82429c7889bb6
+platform/hardware/libhardware_legacy 8c512087d7b9e472b411f6b0fb96b1c201ab31df
+platform/hardware/nxp/nfc 4bc9271f5466d161d3990750582b2d94608a450a
+platform/hardware/nxp/secure_element faaa10c1fc398ef8e83585f3ceb87d1631d73915
+platform/hardware/qcom/audio a52d9f2787832b8228cf6d63e61e45cc8f495281
+platform/hardware/qcom/bootctrl af3526f07e46072b2568ad81e75c146b91068aec
+platform/hardware/qcom/bt 58d907279daed3c53aff8ec374de1b8ec7473a00
+platform/hardware/qcom/camera d26c540eb8bac9cda7264df644827b8bf72b6948
+platform/hardware/qcom/data/ipacfg-mgr 25a4747b73c2a52232ff44286810379ad64e54f7
+platform/hardware/qcom/display 6972e30511134b72c7bd0c4c218fc2a6f33b0da3
+platform/hardware/qcom/gps 04a2deb87bb81641bb324d3ae00bf92768e4b0ee
+platform/hardware/qcom/keymaster f379f25dee806d09eaf2f235adde5c9f3a719d7e
+platform/hardware/qcom/media bac5d288c8a32fff17e312dad1e6b718e9cf774a
platform/hardware/qcom/msm8960 c25a431842a26b5756b58a9d4a42c776e0457ba2
platform/hardware/qcom/msm8994 8e0383f6f41a2c49461f381c8d066ea21b20c674
-platform/hardware/qcom/msm8996 396eafc85712eab82894256e816a341c4b257a83
-platform/hardware/qcom/msm8998 5d3b48877790d7f4f4805d58c0dab215d53fab36
-platform/hardware/qcom/msm8x09 bcbf10addeb35787a42dbadd06d4f874e9d8c2be
+platform/hardware/qcom/msm8996 c1b483c685331ecc414ddedbba9367c7143d47fc
+platform/hardware/qcom/msm8998 f50dd49aa1c245ad82629ce940509b46ed00b915
+platform/hardware/qcom/msm8x09 19a1a8facc60213eafc7b9fa26cc725d4895a31b
platform/hardware/qcom/msm8x26 85c1a5282ae28663335e55ce96a4c0487de6c578
platform/hardware/qcom/msm8x27 8ff5c0057cbdecfa09410c1710ba043e191a2862
platform/hardware/qcom/msm8x84 582b414269d8472d17eef65d8a8965aa8105042f
-platform/hardware/qcom/neuralnetworks/hvxservice f6b5fb4627c01ce153c2c223e459a63f1246608b
-platform/hardware/qcom/power a4ceddb5ceb072042dd7b385d97539e6adda0b5f
-platform/hardware/qcom/sdm710/data/ipacfg-mgr bca3dca0c7a8e0e2b943175df6134f43d7457b25
-platform/hardware/qcom/sdm710/display 5db9af6f1965c8b8eaecd3fd660dfa5e200bf8ec
-platform/hardware/qcom/sdm710/gps 72a449e92ca8a9965b40e1d09dbe5a6586f1ddb6
-platform/hardware/qcom/sdm710/media 95fc68cd2e0f8b37060518eb885044c239d08340
-platform/hardware/qcom/sdm710/thermal 3cc9ac6ceaa132ffacea35e9e2b5484e5ebefbf3
-platform/hardware/qcom/sdm710/vr 5f053ecd721599e4180c05a34bac4ef1328e2db7
-platform/hardware/qcom/sdm845/bt 9a88a6aa2c16b94f0f3be4d73f35c7c00f7baba9
-platform/hardware/qcom/sdm845/data/ipacfg-mgr 12333364172e23d509439dcd3d342e1edd31bb95
-platform/hardware/qcom/sdm845/display abd9d06fd9373f7046de0ae2f1b314aeb408e154
-platform/hardware/qcom/sdm845/gps 4d4799412ffcaae5e08c94f540bc2d759258c842
-platform/hardware/qcom/sdm845/media 01da16e501639a6dfb74bb40ab4bb8fe4b094584
-platform/hardware/qcom/sdm845/thermal ec9172540f62f501d543b986b65ea5b964f833e2
-platform/hardware/qcom/sdm845/vr 44952b4eec1f5ab4328d9412523c4576dda121f1
-platform/hardware/qcom/wlan 0b194449e212ad212a707d574340372ed82f3946
-platform/hardware/ril 06ae422afd799a9a0132d38816b569a12533d576
-platform/hardware/st/nfc b6c02595ef01526ea122d3b5894ca7c96b857a5a
-platform/hardware/st/secure_element ee4aaa683421bfc06a58dc60afd3dd0119532874
-platform/hardware/ti/am57x df2fecbf2a3df35abf4771802005baaa075041db
-platform/libcore caf1fc3efd9d7bf2602b95189f2d78cf604d270c
-platform/libnativehelper 11071717176dcd6ca3ee51b017873b411f663833
-platform/manifest 9a14d2aa50fd99969dc518bd43a18b2a5eac6090
-platform/packages/apps/BasicSmsReceiver e6ab5d11c11f4f4b62bc7ba7281e0954256f0923
-platform/packages/apps/Bluetooth 2a3d1420da7f0ca85a9f0b49fcbbc33b9ba693e0
-platform/packages/apps/Browser2 f7f85ef8c40c35c4128175f7f292fb4095e589bb
-platform/packages/apps/Calendar 985c16ab8b9e84a99cd802e9741ba9a70b50eadc
-platform/packages/apps/Camera2 3261a19a17970cc3d136f96c351500c62a3df26c
-platform/packages/apps/Car/Dialer 93f62fe7476814ae2a186be08d83de42ed131591
-platform/packages/apps/Car/Hvac 108564ebabc73f0be4f127df0a8059f9a855dde4
-platform/packages/apps/Car/LatinIME bf86e8a6305881cbbf067e338b6da16681aef495
-platform/packages/apps/Car/Launcher c3c855612341c4c88c2873f01743497c6c064dc3
-platform/packages/apps/Car/LensPicker b012fd84e8cb67928cde067529221e6a06d24f11
-platform/packages/apps/Car/LocalMediaPlayer 1db9ef3cc724c676f8c21d2cdedfa82551c58b94
-platform/packages/apps/Car/Media 8d006a8873a5e41ea1b513a92b4eb51f385e9130
-platform/packages/apps/Car/Messenger c949bcacef5615c13e2e75630247e03afa9c945d
-platform/packages/apps/Car/Notification 580bda9121adb2cea117e41f2756d9ff088de029
-platform/packages/apps/Car/Overview ef89bd021a031ee6877b7fbd0798226fc2d56c39
-platform/packages/apps/Car/Radio a89794e8a5f897e0cb4d799f5ff95ce952138889
-platform/packages/apps/Car/Settings b31b10b33d71a15f9c80ac0e6cfc3c51e2b7301b
-platform/packages/apps/Car/Stream 623ee8d86acdbcf04f4d78b2bed17a0c36b2a271
-platform/packages/apps/Car/SystemUpdater d7833bcca02a63e838d39017699e267e48b5cfbb
-platform/packages/apps/Car/libs fed801b18b50295f4708023c160929deafa0f7f4
-platform/packages/apps/CarrierConfig 99a462b3fd2fa59ff48f2c5a51d13524c505aa64
-platform/packages/apps/CellBroadcastReceiver bb13ac06b045a1e999cba3aa3f6309e53095ad7c
-platform/packages/apps/CertInstaller 542a366225110bcefa042caa35f34c7c562cb510
-platform/packages/apps/Contacts 07d0750264a2e93d39dbe131dfdfbb6765a79b7b
-platform/packages/apps/DeskClock c47ddffa53586ec13e12acc4a539a09513191fa2
-platform/packages/apps/DevCamera 80cdae550c4f898f92444b8f7583e97896153b9f
-platform/packages/apps/Dialer 798b99073a5077d527887124c618dd8aaf6e75bf
-platform/packages/apps/DocumentsUI f7c467f15d01689410d4e867f053191f9a60d466
-platform/packages/apps/Email f9bbd17972ca8ce9bf613f4fd70f6943a7d475f6
-platform/packages/apps/EmergencyInfo 5ae59f07216b6c6350bb28f45fee2eab77d57d95
-platform/packages/apps/Gallery 6f138e004f8912ef794c1bb9856f05cc775ab4df
-platform/packages/apps/Gallery2 54fb90ba4ee65f652ed2c1bae6f0d744a511bf82
-platform/packages/apps/HTMLViewer b22049403bdde84389564601ddc34276366653e9
-platform/packages/apps/KeyChain 8354ce70c815089e756fa0d80a2708ceb4186a29
-platform/packages/apps/Launcher2 45ac509e9c0276b825e7aba2ad2c2625dbb08d13
-platform/packages/apps/Launcher3 10ce6becf4375d34869f8286e81a4ff5991949d0
-platform/packages/apps/LegacyCamera e7ea8e0df41e500bb8791d80af491a90c7317cf3
-platform/packages/apps/ManagedProvisioning 821b10edf80c2a7f837dd9cd6d9d566df899504b
-platform/packages/apps/Messaging a7c35d04665692a0068ad4d3b583be3bb4142b63
-platform/packages/apps/Music 7ad96b6e9cf7572d3dc0a4fff9c0c9ef783b958d
-platform/packages/apps/MusicFX 08c88f68febf296c3cc2b89f524d4085dcc1bea1
-platform/packages/apps/Nfc 0d6451ad527be2931e9440ee1ca9b5eaf8900cd4
-platform/packages/apps/OneTimeInitializer 726476de1f465bcb4ec386b3b5a49261d5b8623d
-platform/packages/apps/PackageInstaller 9818b8be97f4002127179d1fd5f6a61966ddc027
-platform/packages/apps/PhoneCommon b898d0ed986cba10f593b649553f14093fc3e6ae
-platform/packages/apps/Protips aa9c6c1d3257d2b6d7ae6d0e8eaa69822ce0ba55
-platform/packages/apps/Provision b9437291f8fc918859a5195c78104b38ed6d49f3
-platform/packages/apps/QuickSearchBox 054b118c4893818a014cad4cf28d1b69f0c7e9b6
-platform/packages/apps/SafetyRegulatoryInfo ec05df81c739aa4752fff40ad21b3b2c34146daf
-platform/packages/apps/SecureElement 8a359559a0a1d44582bcfa2ab39f899e3f1f8874
-platform/packages/apps/Settings 626cd4448d24f395126a637e3a61058f96f8c698
-platform/packages/apps/SettingsIntelligence 312c7e60f9edbdda34b7648e70669be0c97b6e4b
-platform/packages/apps/SoundRecorder b72758c03a4d5ffbf9cc6e8409108111936c54e6
-platform/packages/apps/SpareParts b4a5cf67d0d90f14ae3ef2d0f88359aa7b0b32af
-platform/packages/apps/Stk 42237c4d97b74cca6410bb13bd0f7d1c6c97acbf
-platform/packages/apps/StorageManager afc069cb3d4ce48a2fa5bdee0b5b8c50b9a46791
-platform/packages/apps/TV 01c5fead6636e3e2ed654c297835be6f14ca09ee
-platform/packages/apps/Tag bf2b0b347ee4c2b6b67f68ceae318f332e848d9c
-platform/packages/apps/Terminal 74180be6cd21f3612d553d17461ffeb13e39c3e5
-platform/packages/apps/Test/connectivity b959b99372a74303edbf2a79d8c9aaaa75aab565
-platform/packages/apps/TimeZoneData d0b25661bfeb1ebbcb742440f6a0fad3f78cb5bb
-platform/packages/apps/TimeZoneUpdater 61da0e20e02e1d9542442127c10351e50a2f4ee8
-platform/packages/apps/Traceur 0f575f5a003923207e3e45b4c23b5cf16551ff50
-platform/packages/apps/TvSettings 00bbfa455a39247c622ba1f2cc0afb1eb953d66a
-platform/packages/apps/UnifiedEmail 651da7193b894f802deb39eab9edd2484eb39ef9
-platform/packages/apps/WallpaperPicker 9f7cb2fcff7c7721486e46aada59fecab9468059
-platform/packages/inputmethods/LatinIME 4475c4b338c65a3972c1a99536e97268509a1295
-platform/packages/modules/CaptivePortalLogin f59697441e74e3efd4aea935ccea563e4322d9cc
-platform/packages/modules/DnsResolver 3b6b92e63cc6a9c53c27d8c71382d2016162a11b
-platform/packages/modules/ExtServices 4728c14aeeaf5ef186758f62c430fe97827e40a0
-platform/packages/modules/ModuleMetadata 1c65c5b782125e20214fa888b919633b8b2ba380
-platform/packages/modules/NetworkPermissionConfig 8b88f9e84b9ab1d00ca98fb84327286873b1f19b
-platform/packages/modules/NetworkStack d34a81d78c418141c59b1f9b9fa6f6902dfa1969
+platform/hardware/qcom/neuralnetworks/hvxservice 6438292d74e047477b970c340412d1290e877ce7
+platform/hardware/qcom/power a05a4736d45f432cd84c875c5a9968a0cd6a4770
+platform/hardware/qcom/sdm845/bt 214e985d1436b711fa3386497730ff47edbb7408
+platform/hardware/qcom/sdm845/data/ipacfg-mgr d17d1956fd422d00319b9f11368fdeece07dc75f
+platform/hardware/qcom/sdm845/display ecd18aa676a87496faebb88b7d9144a3d948b41a
+platform/hardware/qcom/sdm845/gps c63948b2473150b3c3c59e786562d0d9eb6489ac
+platform/hardware/qcom/sdm845/media 9e117bffc6e6586ed06123fe9e576e3cefc03f7e
+platform/hardware/qcom/sdm845/thermal d8bacfb8fd464ac096f96e9da1c76e4f4be2d8f1
+platform/hardware/qcom/sdm845/vr f870de96939cff34f2beebade686029f403d8068
+platform/hardware/qcom/wlan d668cfeffbb3177403ccbb818ab14cdbab1e86ef
+platform/hardware/ril 5bfb718af08a6997ce53f38ac031af2f42f26ef5
+platform/hardware/ti/am57x 9704392be4207fa74bd105248fabafb0b80305b9
+platform/libcore b9c7985eb08715dac5c06e6ddb55c546701975d3
+platform/libnativehelper 5744cd75d3f0c7e0b39c93790843c825a5911d65
+platform/manifest ff84cbccef4a1e789a973c03667721e71080b5eb
+platform/packages/apps/BasicSmsReceiver 14efa0404f946af1cc275124b76cf463b953d18e
+platform/packages/apps/Bluetooth f727616e0978f83adbc30ae30ae1d557e5466575
+platform/packages/apps/Browser2 1bd9a57e3012294e9ddb48d3f094445e25ad7333
+platform/packages/apps/Calendar a6f46ab0cfa4926f55cfa0ae092d901a73a75aac
+platform/packages/apps/Camera2 b4d8c75df00f8fbe1ae722094d2ccd417f6cc8c5
+platform/packages/apps/Car/Cluster fa91357ae2a02acf0d7a8bc06a6e1c418fa26982
+platform/packages/apps/Car/Dialer c5dfb8c550e0508015e141e8ea0350cf67386c63
+platform/packages/apps/Car/Hvac d0ba3282210770f09520d9199b75628b4011eb5c
+platform/packages/apps/Car/LatinIME 1d6f1a20325781b937161b7a456b24c3fb39d861
+platform/packages/apps/Car/Launcher d5e15d6cc386ce40eceea10b36029a258bc19753
+platform/packages/apps/Car/LensPicker 44f2aa45cd012bf26c475881104e9f0cc0f9307d
+platform/packages/apps/Car/LinkViewer 3d4efda0c66429ce9d9a6bdfd231b46b2b685004
+platform/packages/apps/Car/LocalMediaPlayer aa86809220f6bcc488a66c41e36fc17ef7954480
+platform/packages/apps/Car/Media 7d146f0aa06814c8b9820eaed6774f38d278c1b2
+platform/packages/apps/Car/Messenger b0ea0f0d6640a3145c1885d6b73615acb8cc454e
+platform/packages/apps/Car/Notification d6fc2ab550383c9aca268be8eae0ee11aec5b857
+platform/packages/apps/Car/Overview 48b5c71e67657ac2813d4f947d7c8dac97dd5f4b
+platform/packages/apps/Car/Radio 099f9cbcafa1e851f705260ca832f64a82a5eb75
+platform/packages/apps/Car/Settings c041050be79ae117a721eefba5cec152c6937ec5
+platform/packages/apps/Car/Stream 1000556c2b37fd44951dbf4e82fa30dbdba03c04
+platform/packages/apps/Car/SystemUpdater b3805cb5891afbe1d9567e842b0b0265fb031f27
+platform/packages/apps/Car/externallibs bc16257053938c32c75d502cd990b4fec5a76be8
+platform/packages/apps/Car/libs 8f2a0d87b50031521f9ce693937422eb11ad7a41
+platform/packages/apps/Car/tests ff2da2c238119099fb9be4150c899c0f2ce0d997
+platform/packages/apps/CarrierConfig 7934f573249280cf91a6ebf3ff41f2b0003c27f0
+platform/packages/apps/CellBroadcastReceiver 91d61fada117b51c3065fb163754af19e933a43d
+platform/packages/apps/CertInstaller 199ac2a7a8e36d2e9d4f78a8b3e08ec2f72e0e65
+platform/packages/apps/Contacts 13648d7d2250e84701bf5efafa3cacb5cb967645
+platform/packages/apps/DeskClock 208c6507e69ea5dd635a7199fef167ef298bcd22
+platform/packages/apps/DevCamera 2215f5850b5a8d79afee7fd952c817f5dc195208
+platform/packages/apps/Dialer 8408eb4433630c6a0fc1c9b8e568fb86fa21b58a
+platform/packages/apps/DocumentsUI 1feb9033654e63a0587d0e1e60ea541363be592c
+platform/packages/apps/EmergencyInfo afad4476959fd1c2a4450724dff5cdefc02571bc
+platform/packages/apps/Gallery aa2c9a6e8ee99279347b71ae77ca4779aed832c1
+platform/packages/apps/Gallery2 0b47f04a4130068c4f730437294139d235e50f65
+platform/packages/apps/HTMLViewer 88b69d05a44540a1890d6bdc913f8256d07c8bfb
+platform/packages/apps/KeyChain 16394653e90e57ea33fa08e27ed7a8c2c2962d0f
+platform/packages/apps/Launcher3 14f0d573056447460f56875b818b7a06710e9869
+platform/packages/apps/LegacyCamera 70941fec951186fa26ebae305f1df6e7a5ccbc74
+platform/packages/apps/ManagedProvisioning 068137dd58ae82bab043eab53665fee78a734196
+platform/packages/apps/Messaging fa1ebcc45fa3243c476fa7c4f3af59479dafb5bf
+platform/packages/apps/Music 091deb05caa3b5d6f4d23eb14db2539869502dab
+platform/packages/apps/MusicFX 4f201b627e7b6f8444359376be6000c6100b7725
+platform/packages/apps/Nfc 62536fcf8b387a114679bc2970027e0371f7dbe1
+platform/packages/apps/OneTimeInitializer 993900b8d6d32c1163480031e7051dd6c5eeb89d
+platform/packages/apps/PackageInstaller 635893b044d349eeacbe07ab50863dd7f5cbaedf
+platform/packages/apps/PhoneCommon 0744f03ab477e1fbfac713f5ca6cdfc5bed865fa
+platform/packages/apps/Protips 5670db9cda57859c3573a6bd3a6ec16eef3b0a81
+platform/packages/apps/Provision 3b9c02d8e9605335795ba9d70b360b4e1a718b6f
+platform/packages/apps/QuickSearchBox febf5af3de9c35320c336faf391149459db93545
+platform/packages/apps/SafetyRegulatoryInfo 355f6a9b8b66ee6bad46a4655d49181592a4ddea
+platform/packages/apps/SampleLocationAttribution 414210769cbe3ab244ec4af9eef1648e4933f863
+platform/packages/apps/SecureElement 0bf24c9e7c05f6ff9fe729671189a8e0e70528e8
+platform/packages/apps/Settings a8aff3097e08ec513c393a43cc4136f2ae6f4bf4
+platform/packages/apps/SettingsIntelligence 59779c09d49c192fa94433746a99b01620f30483
+platform/packages/apps/SoundRecorder e223922d1d2fa8e3d855bbe76a9e43e3690bd44e
+platform/packages/apps/SpareParts 9dee2352fa1926cdee6b4fe4d89f54c0c1db6204
+platform/packages/apps/Stk c67270cee4546d633c11afdaadd8994a50664e13
+platform/packages/apps/StorageManager 9bb151ee3ea958116146ad732c107bade314857c
+platform/packages/apps/TV 3250e65a5ff000eebe4058dfb9401400c8f84e73
+platform/packages/apps/Tag aba485fb61037f6337a5fe323da460ff7fee8ef3
+platform/packages/apps/Terminal 5df695d271296369188bd507f71e0e1d1d3ffcbc
+platform/packages/apps/Test/connectivity ac81bb332403e8e45c704f1df330d42be09e0381
+platform/packages/apps/ThemePicker 209f1362ded8167f21c7404e7bf6f125ca460a1c
+platform/packages/apps/TimeZoneData 0591bdfe3b5285cde878b142b68a4ebb4d13c772
+platform/packages/apps/TimeZoneUpdater 7642a0d5ae20342c50b0cc6cd40ea5d3b563ff07
+platform/packages/apps/Traceur 3b55dd5326145de21bf61110d59606b12b44719a
+platform/packages/apps/TvSettings ed77b54f6abbd5179730fb6f7893764771307ff4
+platform/packages/apps/UniversalMediaPlayer 427f305c037f0ab66c7a067a4e2ee354b0105a91
+platform/packages/apps/WallpaperPicker 57fabc57aab8937521f6d1f0834c6215d3cf00bb
+platform/packages/apps/WallpaperPicker2 5ee3aa755de0c4da337e7d7de5b8f36eb3368278
+platform/packages/inputmethods/LatinIME 7533b24f3348de14824634da6fb6b9843d456b8d
+platform/packages/modules/CaptivePortalLogin d3532ab2e7b4071d7b8474ac65e1e919651f8a5d
+platform/packages/modules/CellBroadcastService f14154a7e23257c127e793e706748606eaec74d4
+platform/packages/modules/DnsResolver b7b663316b8dcdb48f103a107c013a810b25fd64
+platform/packages/modules/ExtServices 586e3cc277cb999a7a50cf92073072c7365944ed
+platform/packages/modules/ModuleMetadata b37f569f59a5df33940c385d264b29c45e7d2785
+platform/packages/modules/NetworkPermissionConfig 97e51be58862be4561af41f8e241e3a3a7f7ad2a
+platform/packages/modules/NetworkStack d13aa32f2a2f579ff73f3d2c3412937405bf29f5
+platform/packages/modules/TestModule 3523a2f0f9b12d4e60374af63aae14f75a2b4c10
+platform/packages/modules/vndk 23a9453754c589cc4ad2759838eda4d04e73ba0a
platform/packages/providers/ApplicationsProvider 33d26f5eedb3d3011762ce5b2de66e931bf64b35
-platform/packages/providers/BlockedNumberProvider 85bfaf2df50994d2cb862365b0b95195b5846b70
-platform/packages/providers/BookmarkProvider cba6b949f94a89471b6c98ac993798cf16bc40df
-platform/packages/providers/CalendarProvider be73cde5f818dce4779e43306b7544c0d721a2e5
-platform/packages/providers/CallLogProvider d4705c37a2cf8e903839170ee23c8df4457e7511
-platform/packages/providers/ContactsProvider dc9ee164743dbc882d2b8f4badeb0c4a303bd689
-platform/packages/providers/DownloadProvider 7bf82ed160212865e9055bd245fb0ee93589846b
-platform/packages/providers/MediaProvider 2da9b38159028f54d48e8e9a64d5a909783264ab
-platform/packages/providers/PartnerBookmarksProvider c710222f6ed3e3ec0739b0a9901cac7c7191df95
-platform/packages/providers/TelephonyProvider b303b2a76fa84583df2a855f10f33548cf8c9e90
-platform/packages/providers/TvProvider 30f54ea12762efd348189a3b54a0944d143379fe
-platform/packages/providers/UserDictionaryProvider 4625268eabe48f4df112f8bfeab0205c912c0825
-platform/packages/screensavers/Basic 3d7ebbf72aa91289e06e8a0921195eb15d9feedb
-platform/packages/screensavers/PhotoTable cd9b393fbfa9497e7c48a2098f89c8b96f18fbc7
-platform/packages/screensavers/WebView 316f1801d1e96d3e6d845db8da0ddf4b5703a50f
-platform/packages/services/AlternativeNetworkAccess 09b672b56616dce149bddb40d46aa507d678d220
-platform/packages/services/BuiltInPrintService 357e87fe4298f730a76c613d30130d246f399512
-platform/packages/services/Car 7f8ca1a91354ce7743786ed9536930fc7a3336cc
-platform/packages/services/Mms ba46a37457f641605df6dea5ca7a7e221ad44de8
-platform/packages/services/NetworkRecommendation ed682d71476263ac159911f5a371792adbb6977f
-platform/packages/services/Telecomm f5bb24aed2f698e4a6e2d17945a48428c4cc62dc
-platform/packages/services/Telephony 2e132abd4a76f7560348724494d7c140094dc147
-platform/packages/wallpapers/LivePicker 156bf2d82d1395e703633682389038a9a03ffdbc
-platform/pdk 3ab55d12375a929ffddbafb1473306235ee9afeb
-platform/platform_testing 89eab77a606e05dda25d98f3c75e9b13c05203c8
+platform/packages/providers/BlockedNumberProvider 0db766f79c4850e8122ea9d87f7446ced57b32f2
+platform/packages/providers/BookmarkProvider f5868c9cd61ae5ac06cba9b9d8ecd42b4993cd2d
+platform/packages/providers/CalendarProvider 1b129e1b5305950ec857341a5ca790a1682814c4
+platform/packages/providers/CallLogProvider d72862b1f747ebfc2709ab05092250ff0771c9fb
+platform/packages/providers/ContactsProvider a6ddfd85c9765d04f5758aa61cd076a57eab7b09
+platform/packages/providers/DownloadProvider dabbd6c7d15a689ff3b7f82ce80a690106f550ff
+platform/packages/providers/MediaProvider ccbeba60cc4e34f34df29466347819fccc308517
+platform/packages/providers/PartnerBookmarksProvider a0536f962762afc202b13d923c97ece805640b9a
+platform/packages/providers/TelephonyProvider c24b547c538d061f8464365e1eabad938c1f5a60
+platform/packages/providers/TvProvider db349d49a0eb6a7ab661206973c64ad3b9cc099b
+platform/packages/providers/UserDictionaryProvider 259448e1c291a83da84e391b59c00343e7ff524f
+platform/packages/screensavers/Basic 7cdf9584bd1226aede208af8820d0b9d0a2d1850
+platform/packages/screensavers/PhotoTable 3aa0665e92e171a7e4eba41beae06c454ec67bba
+platform/packages/services/AlternativeNetworkAccess a7aa023f305df2fb8134b170c8acf5d704e5ad70
+platform/packages/services/BuiltInPrintService 98c6cbed95610b625bd5e15aee0469baf2edcef2
+platform/packages/services/Car 3482b5448f04ad24d11e6830e558733967dd6a0d
+platform/packages/services/Mms 5bb6325185d21a254b06dbe38188a15e0b5f94b3
+platform/packages/services/Telecomm 695ae844d458239b862447b94ef749634d41a7bf
+platform/packages/services/Telephony ab7fe3009b49db72f98008c1f785cd0e19633985
+platform/packages/wallpapers/LivePicker bb32f719155d2b35c903b1a1509265c69f371265
+platform/pdk fef66d13e3f4e19d7b645f7eab1bdced1b584223
+platform/platform_testing a951a8017e5ab3327e059fd19af03263d8c7c6ca
platform/prebuilts/abi-dumps/ndk defffdac605433940ad70a5a199c35afc5995329
platform/prebuilts/abi-dumps/platform 8051225355fef89762657071cb1610a816732de6
platform/prebuilts/abi-dumps/vndk 04a2482b0661276d994576ebfaac6a9405548148
-platform/prebuilts/android-emulator 8e4032a7a3b77eb8002f1bc32a9144db05218f19
-platform/prebuilts/asuite aa3b22ec2e69a7f93a99476355631e70d1bc493c
-platform/prebuilts/build-tools 9bca2f4ad4b1821aa7c806f80752c2238960ad0c
-platform/prebuilts/bundletool 7d11788eb685c32f83defa62911b5130d243cc3e
-platform/prebuilts/checkcolor b4c98ed89a37499fa580445eab40a5efc77519b6
-platform/prebuilts/checkstyle b86c2b048b0f203ed8097cb30984570b4c31bf3f
-platform/prebuilts/clang-tools 3712a590edc7a2db67dba0b7e386f2e91cea7641
-platform/prebuilts/clang/host/darwin-x86 9388fc62aa3aa8e06b24c9e42a79b1593c6bdbf0
-platform/prebuilts/clang/host/linux-x86 465a76cd6608f4487d1750a474011052d6901e3d
-platform/prebuilts/deqp 55e2964c213ead822f8c840043415aec702e850c
-platform/prebuilts/devtools f1016ef790704553d03b3257f98955d5d9d37e5b
-platform/prebuilts/fuchsia_sdk e901948f06e27d938616ddc4a51a21a874d5b6c3
-platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 f26ca76e4211874c8515c00369bccbaad9f599ce
-platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9 07b25a5af3a236640fa49f78fc61a173ed466420
+platform/prebuilts/android-emulator 8cd67c6e39361dbfae4ea975a332bcd930fc6637
+platform/prebuilts/asuite ade64d23f50d235e5e81b7bc0dab38cda6dd7679
+platform/prebuilts/build-tools 3672cb31be84de8081147fec616252924e48578c
+platform/prebuilts/bundletool c50f45b10d5a2b8b570b6ceb44e14fc7edb93e51
+platform/prebuilts/checkcolor b53de9d3c584022fb0de763f2ad58b020bf385c8
+platform/prebuilts/checkstyle f1fa705246b71cd53c1516936bc1aa65b9387128
+platform/prebuilts/clang-tools 333ee8f64a3c61405d6d934bc611822da1ee7875
+platform/prebuilts/clang/host/darwin-x86 9c6b464fb633d35d4afe035f6c4c35a97c376ca6
+platform/prebuilts/clang/host/linux-x86 99236b4d27108a4c3a4985baf8d9e5e679ae2a73
+platform/prebuilts/devtools 7c5184160baa8c5ff9394757776f88f706d9b7c7
+platform/prebuilts/fuchsia_sdk 20304b0e0a0380b823a5ca910a7a0aab8a975bc7
+platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 aff1ab0381f029d45fcb1bda275ffe5c7ced5896
+platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9 889008f0a8c0f9aab7b6919aa048ee7a41ec6371
platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1 ec5aa66aaa4964c27564d0ec84dc1f18a2d72b7e
-platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9 57b865c1eed539ed0f956193796d87d1262fb29e
-platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9 7d9b053c69e2a965d9e6612cd24d451ab5baba18
-platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 e5d6c65b2f10bc136c200db0a6b5bf8e90910df4
-platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 d8488104d0245ebc827fb2786190d67804b67ac0
-platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8 ca46f736f03adfa62003cb94392ed05ec6d8cc3f
-platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 56592a3d4f46552c7001e99e720c9db5be8521ec
-platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9 d394198a1a0931ed30be6a7ea121e993f002b826
-platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9 4f70d1f7e34d6ea7383265f56198c280a6e542d2
+platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9 0058f3c7c6bbd88dba6eae6c3b39580215227d42
+platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9 1b74bfbae9118a4772b26ece131c9782cf6b1ee1
+platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 d5a47cb0e0950be93da6e7be87a49c009221e0e7
+platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 69cfe3f44911bf2575a58677ff94cf777a29643d
+platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8 b9c7fec85d26fad82f44e29424606ceccec14151
+platform/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8 0a46d9f8e4ec761e2e8dde1310110e1fdc8a58de
+platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9 181f2225aa588bebfbf469c3b7f3bce10cfdbd22
+platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9 e4f842a224f0c4404962a0bfbc1b60e2ff00f450
platform/prebuilts/gdb/darwin-x86 0a8c90248264a8b26970b4473770bcc3df8515fe
platform/prebuilts/gdb/linux-x86 4adfde8bc82dd39f59e0445588c3e599ada477d2
-platform/prebuilts/go/darwin-x86 ea5410f2f771b57189b5c1c3d092987f20795469
-platform/prebuilts/go/linux-x86 49819272adea34367b1feb7aee2b05598ad1671b
-platform/prebuilts/gradle-plugin 0dee4183b424858eb3bdd122867c12a5e8171645
-platform/prebuilts/jdk/jdk8 6941b9ea21ba32e52cca63fd71a92682fda07da8
-platform/prebuilts/jdk/jdk9 4d888dccbd817be9cf92f9edee09487fddf82fcb
-platform/prebuilts/ktlint 782b0efc4c90b86c1d9d456fafd3884149d954de
-platform/prebuilts/manifest-merger 8fdc0943f448fd67d746dcdbaf070d493908c134
-platform/prebuilts/maven_repo/android 000a58783687489ebbe5c55b95987f900395c60d
-platform/prebuilts/maven_repo/bumptech ab84bbd44dc2d3a38e7a77dd261d52ee9ea720f3
+platform/prebuilts/go/darwin-x86 dc8ea791242164a250635562e6703bb15d9eff0a
+platform/prebuilts/go/linux-x86 22e6af84c4de9620daf329830dea48cfbb86205f
+platform/prebuilts/gradle-plugin 0243c438fb77045a00a15f53f4812e132a649d6b
+platform/prebuilts/jdk/jdk11 1bf41ea2b2267888eb539279d9e53658463f5feb
+platform/prebuilts/jdk/jdk8 ebff3bab14fad9aefec53f8c1efa436be119ee80
+platform/prebuilts/jdk/jdk9 e81848b63e8e9e728b679ff0e9914fc1af7a9f93
+platform/prebuilts/ktlint 51197ec4e3a7a7ee1d3b432b0c40e54ec72b3e80
+platform/prebuilts/manifest-merger 967d062d6be542b72e0dfe35890e2ba4abd8103f
+platform/prebuilts/maven_repo/android 93f97e85e68f93990d29def0f26b459c00216b5b
+platform/prebuilts/maven_repo/bumptech 913b608d10e3e0659eb1a93c2fc885de3c72703d
platform/prebuilts/maven_repo/google-play-service-client-libraries-3p 427e6e2267fd43142ddbd1a87268e0112ddb9b11
-platform/prebuilts/misc 227d8303ec28cee6563308500d902d4c5e3e8473
-platform/prebuilts/ndk 433d07f1026b7faa43a044d00f6bf21d7093bf5f
+platform/prebuilts/misc 29951d44ab6c6743bab0e12dd43b62e76d594ae7
+platform/prebuilts/ndk e68c1f2f2e4909d7d92796cd95bd178585e40825
platform/prebuilts/python/darwin-x86/2.7.5 0c5958b1636c47ed7c284f859c8e805fd06a0e63
-platform/prebuilts/python/linux-x86/2.7.5 fecb994c924df1aa7b6b06a51244dec1a5c073bd
-platform/prebuilts/qemu-kernel d34a2470ddc90651cc122c5a114d6aa2475235d0
-platform/prebuilts/r8 71b93828fc0a565ff1e5abcac14d49267bac612f
-platform/prebuilts/rust f7957e3231741d34945dc32791330d851f125ba8
-platform/prebuilts/sdk 7983b898fdf6f7e237d38fbcab60a6984e68aab1
-platform/prebuilts/tools 7e8db8b03dd9431a772b83f008d430f20aa31791
-platform/prebuilts/vndk/v27 2dca685a814ad0612343e31899f8b0ed2979d368
-platform/prebuilts/vndk/v28 3b3f358afaab5b4f635c57e841a49362c887398d
-platform/sdk c824a682897ace6bf4aaea2cb307ee11512b6397
-platform/system/apex e207cf6a164e3c72f8f20789b9fd345fa234753f
-platform/system/ashmemd a1c08fe13abe1ef1dcbed1a511f80600b4b7aad6
-platform/system/bpf 6524dececc60e663d7e290a81a9cbfaf4d5e8229
-platform/system/bpfprogs 7235e6e0f3c1ff780b01dd1d5d16aaea229aaee3
-platform/system/bt 990b46431fb7584c2ef94f4e925e1834c9d2b1a4
-platform/system/ca-certificates 836ee091331429b635ee58f6e12d34009d791a31
-platform/system/chre 7fa22fbc859a3ca4a9fb62d5ea94cbe9092ce7cf
-platform/system/connectivity/wificond d70c3c3e0b9afb5756c83abeb17db4389fc9d1b4
-platform/system/connectivity/wifilogd 8b01effbf158c87658f602328098b90d73aefd29
-platform/system/core a48152fb7fc50ace2222bb6002af87d0d64e662d
-platform/system/extras cccdf456b7f71b60ec5d7bec7bef7a5afd87fdb7
-platform/system/gatekeeper 192791ddac79cf35802cdcfd3b42894ad1760ad1
-platform/system/gsid ada28a4131fc5bba6bb6e1e75683fce292a33509
-platform/system/hardware/interfaces fea698820faab6c0a2127902195f51b47b69b783
-platform/system/hwservicemanager ad53407384e2a37be6286550d524c84d83f52388
-platform/system/iorap 2abdd3a8feea09e85eed119cd8c2ea4f53ae89eb
-platform/system/iot/attestation 53d69f64a4b5a8f59f514b4c337120d466da1349
-platform/system/keymaster 88bc8c377fb8a49b694700338c5f2e25e2158017
-platform/system/libfmq c03ea993f99c8fe4061a7f34a0bcd77bb69a12c4
-platform/system/libhidl 2c8b6846f36a84b9a46f9c176d958bfaed9375d1
-platform/system/libhwbinder 9364d6fb2f23aec5f84c3004538e9432442a6601
-platform/system/libsysprop 9283de549e9f09efdf224efcfb902c9032e64115
-platform/system/libufdt 7bcbd103dbc181c0c6082fefea56b5b72e09eba5
-platform/system/libvintf dc9211b42f8f031896eb5e35792221c98e46c226
-platform/system/linkerconfig f234440c98413f4c9dc735479370bbab42256fb6
-platform/system/media e896be5c3044f95dd64782527817f63e89b52b14
-platform/system/netd 20698093e44399c0e29bc5edd33873ebb251dff5
-platform/system/nfc c5c79500d9913f5c1e83024d67ad2f581fd2fbd6
-platform/system/nvram b37dac1f2de4608273a5dca9374dbbe0b7bb3b3e
-platform/system/security 86a58e4b3d9aa50ffa4b7ab625d32b1a234f4791
-platform/system/sepolicy 29425e3a302da76e25bc40f571a13096eef0b5f5
-platform/system/server_configurable_flags 2f193c7b9c0637e207501ca8b988b71aba8e856b
-platform/system/testing/gtest_extras ce77e1b8a5287dceeeda63a2f8f39a5a9cc856e0
-platform/system/timezone 83a80921be18985b39a4a27760490ef9050594ea
-platform/system/tools/aidl 1779866855da57b87b33777f4c0cbf6b417d971b
-platform/system/tools/hidl 2c272ae5aba32e53257a4394e5d5f500e938ca90
-platform/system/tools/mkbootimg 983425fe948027f60562088f270a80abbfb1018c
-platform/system/tools/sysprop 2f106a08a362cb04696b253d157716ad8e194707
-platform/system/tools/xsdc aa117444efbeddc5fa844012ffb899d7a923a662
-platform/system/ucontainer 55034d4045848b3cdb7c4a55dce4b5e216cddece
-platform/system/update_engine cf31bac300bc1aa4afaeb0c4728322e93364e2d2
-platform/system/vold 3ca773734cdb8a13fbd566c6ee2c278b60a33e47
-platform/test/framework 97070b0b323bde4f988e92e1154d2e84ba56d8d9
-platform/test/mlts/benchmark b3abd7ddecf98162e70cbe77df501e2e7e79eeb1
-platform/test/mlts/models 6844b59d5be85e36e5fcbd48e71e4a7c0b494e92
-platform/test/mts 020d89993700ea6e0f106201bbbcee3fe3af9a23
-platform/test/suite_harness f3280c39473c456cf6f2a6d555dfe1f4442c3f21
+platform/prebuilts/python/linux-x86/2.7.5 93bbb3a3bd580dae06a6b90c820a90bad2395bdc
+platform/prebuilts/qemu-kernel f51e99810955815dc4d45777f5ce4f640c67e3d3
+platform/prebuilts/r8 af261a580e3e6ee1d5b2c60aaf3802416a78166d
+platform/prebuilts/rust 88629bcaaa9b8d0aaaae6c992798db5243638717
+platform/prebuilts/sdk c4037f1ecc023d020d40be9461fd067b196a3cdc
+platform/prebuilts/tools ecdd111ba263462c8058c038cdd26e14a0497971
+platform/prebuilts/vndk/v27 30cdd62ecbed397ab96c7d873b9a01f3ef982fb7
+platform/prebuilts/vndk/v28 5d3eb1ef26d1b58ff76b4b44e8cce7b31cd8b230
+platform/prebuilts/vndk/v29 c212c393a3d9d6cb9f2b68df0e31064c55510914
+platform/sdk af54ec55c8b0baae4dfd6742aa8ed01f1c74b168
+platform/system/apex caec7372d5599a2bf2b833ab87f41f84e5813b31
+platform/system/bpf 68e0102fdd8f94562924bd4900f5fd4edb6d2ad8
+platform/system/bpfprogs e6a094516d045a2c4de7430c2b8d23954d76435c
+platform/system/bt cb28a1875d1705ff1ecac0ddfabfe3b02d6c8194
+platform/system/ca-certificates 0c8d96217930099054db5b349b32cc48854a0fa6
+platform/system/chre 37a9c01fe82bf3d78368f3785571300573c88b20
+platform/system/connectivity/wificond 43eb5729a583b28366c694e7e7b59645c9bf342b
+platform/system/connectivity/wifilogd 97bdaecb391b98a2a79ce9e0fc78b787a8ff9d71
+platform/system/core ec9ab51b698d0b6d7e280614a1951e065cf17f37
+platform/system/extras 7bb773c36b21ccafe5f5f2277ca13e0fdf1b09b6
+platform/system/gatekeeper deab3cc5e5e3a032e9d02fb880c27779b1ccf22e
+platform/system/gsid a9c4cfd60d73175a162ee633e8790482101e7c02
+platform/system/hardware/interfaces 483c70e6dcc5e44a53201bd4ef4b91a9b6d8d8d6
+platform/system/hwservicemanager 6b559333da2b036615f16b2a99459702dfa824ae
+platform/system/iorap 02d8c9224cf3d128e4d984c9d420139c22ffa30c
+platform/system/keymaster 459a235ddf6553f45fdd1b862beb174f4375c443
+platform/system/libfmq 4f5d9cf413d2358df7f4d7773d6f5b25a1f558e3
+platform/system/libhidl 8a700b79c70f0d8d54f707a836bc2569a9618090
+platform/system/libhwbinder 4396e0a5606356cdddb9c59cce96e2d9cf683e08
+platform/system/libsysprop 88b6829a7adc2216ebc9732c7e2bff45c3442e5a
+platform/system/libufdt e3c16049f8653a65c05b5225d4200ba35562b379
+platform/system/libvintf f974183ccb2fd1936fd4080b772d976382af3e9a
+platform/system/linkerconfig 27722a35e6ffc769674b40de431db3c1a2276cec
+platform/system/media 03d79a96f94f46110cc4b8bd9b24c66a67e4291f
+platform/system/netd 7cce653fdd0be1ba3d22b6c437d98ca81b6c0d53
+platform/system/nfc f9021c431f6e11d505dda28c8aded2ef3fcd4836
+platform/system/nvram c63a87feddc9298c4a3630789a8c2ba8bcdb7f67
+platform/system/security a2b21510bca2e3e2f933cfe4571beb5b0b492405
+platform/system/sepolicy be51c96749d7deaaa148d891fbc37ac61231281a
+platform/system/server_configurable_flags e9312e269bbf86a70d10240e608e532260837b24
+platform/system/testing/gtest_extras b4c1221f6a25cfb683ff7b3b5661d85945e9f320
+platform/system/timezone f50d245ff997bc1a53648226029e413ebc81cde0
+platform/system/tools/aidl d0dc73579b9cc69f2c07df12876766127d66713d
+platform/system/tools/hidl f1ec64a959ea71c4cb41739ed99b5f5463a71cfe
+platform/system/tools/mkbootimg 29f913ec2de2ef1252a652ffb0a8740d5d2420d4
+platform/system/tools/sysprop 2c58b927952c4aa37fcd74c695d277cf3e08ad9e
+platform/system/tools/xsdc e54260f78ec146a83d7def12314b21cb5f6cda4d
+platform/system/ucontainer b391adcfc778d09b20a75f82c79a90c795bfb378
+platform/system/update_engine b86455a3be8b0fdc48325a04a92b042c7695670f
+platform/system/vold 356cae1f57b7c0f7b03b03c349129b8e61e458d2
+platform/test/app_compat/csuite a82698d20c210475ffbb9add00cc8502dc012abc
+platform/test/framework 5baa0daf017417df8f151d9ae3c78bfaf004cec2
+platform/test/mlts/benchmark ab3f25231421926549970ad894326d56fe2b615b
+platform/test/mlts/models 420391aec9319a5668f6c9a8c962e185402bfbb0
+platform/test/mts 222441287c1ea2f35ac56ce4bd7b42a8db4f1292
+platform/test/suite_harness c695d106cac35f8c40732d3b14232822b5488a06
platform/test/vti/alert 2270d160e38f0623d708cce36754fe14168dce64
-platform/test/vti/dashboard c3bfb1843a13e91fb74274c69072479e26be6a06
-platform/test/vti/fuzz_test_serving 6cf519a82baf307c8259f50acadd4b324b61425a
-platform/test/vti/test_serving 0c50f138e4cfbddb371adf2753227945144e00c8
-platform/test/vts 4c9453516bff9d362e13b04ed0db313cba1e674a
-platform/test/vts-testcase/fuzz 0894d765f639cfa68f925e45dae8a20ef4cbf70d
-platform/test/vts-testcase/hal d9d2bfa18bbe5c7c4a7392df34cf513527022ee2
-platform/test/vts-testcase/hal-trace b0183bd30a4fb5f838844f2b499809cd7b2dfe4b
-platform/test/vts-testcase/kernel e67601633867a269a2300a7b00a944e1b998ade5
-platform/test/vts-testcase/nbu 885545b381193c920be85fdf926607bff8d7b9d0
-platform/test/vts-testcase/performance 1fd8b9e1dc0319045ba53467b7a14359aa78dad3
-platform/test/vts-testcase/security ece818d67cb41740d3c30e6ecc6df8bcff4f9b3a
-platform/test/vts-testcase/vndk 8f05128127f3c3635ea3d3651de6423210048746
-platform/tools/acloud db865ba583a1f5c9ae070672860f0cff6c6c9b57
+platform/test/vti/dashboard 9f2c217836240213fdc9c38fb8e4ed60dca7508d
+platform/test/vti/fuzz_test_serving 92bbe4107e18344e675d200955112f647262fbc9
+platform/test/vti/test_serving 3cbe267156232991c00e98e6020c09633a20e948
+platform/test/vts 348e7781441182f661e14561ee807012a7e6969d
+platform/test/vts-testcase/fuzz 5ba5080224dcd9ca7c63587fe57c7792a265f63f
+platform/test/vts-testcase/hal 8dbe3e1a9cccf76c613273b7dbe39186d421ce5a
+platform/test/vts-testcase/hal-trace 3782d14cb8ca24996b199e175525eeea47758632
+platform/test/vts-testcase/kernel 320649b61a18cec6ea6e4cf7f3fb42ca1977a490
+platform/test/vts-testcase/nbu 3539c326022330465e5ba2f1c4a4b31559457a87
+platform/test/vts-testcase/performance 6dc641f76d5f74c6483fdc322607601f0893ada0
+platform/test/vts-testcase/security 6d5d69c3f92221395ea3b0d4a4cba1059dfc7426
+platform/test/vts-testcase/vndk 589518b228a4456ed1cfa434016d6d5ced50ddc4
+platform/tools/acloud d0a8d57c4fbca23b3371b844244554d95fed6d0c
platform/tools/adt/idea f32ccd8eb5775bdcf297aee84185440d35a2de41
-platform/tools/apksig de484cde6316107c9d6e76114836aa73efe1cf62
-platform/tools/apkzlib 56017e1e41731c127adfe73c6623c9051522e965
-platform/tools/asuite 1dc6870f1dc1123909e35121f2806768aa343935
+platform/tools/apifinder d45cad98eacb2e95efdd51a75fb8c15bf38c32c6
+platform/tools/apksig 5b2c07b4e22a54fa1682184d9b8a42a17689e0d4
+platform/tools/apkzlib 8c13a7aa3db41cd1979dbb47c100a47671311ae1
+platform/tools/asuite daee2438133fb962baa7aa0847f2c99d8cceabb1
platform/tools/base dd1b8ee994421118019d6faabb4faa1eac88a59a
platform/tools/build ea1d4adbbca405f8e12b91da9d9c7b261f562850
-platform/tools/currysrc b110cfcaa90c12810192f13108eb7ab942e81fdf
-platform/tools/dexter 8061b0722a7f8f2f41c46399456ea7260efc060a
-platform/tools/doc_generation 8f5ef51bfd1111ac29bab1fdf7bacb7ca6b03c7e
-platform/tools/external/fat32lib bfb20bd14658e50514b75da2c104ce0219928f68
-platform/tools/external/gradle a8873f98c59793cddd76755cebcef69f41778af9
-platform/tools/external_updater bc89ef9ab0ff4c93f8492cf5657e1c83ac486cfb
+platform/tools/currysrc b8c604a3c6ac45f9dbbcd10b2e293cc8de0a1eef
+platform/tools/dexter 1cae818a2da387df236379ec3e3355e2f4d39e10
+platform/tools/doc_generation 53260d263897c03edafb6fe41329d71aa109ba99
+platform/tools/external/fat32lib 6e5ab1c563336bddfeacffcdf4cc3a4ba3288e6e
+platform/tools/external_updater bea1f2f1e30ef936e2e539d102239a6f3238a532
platform/tools/idea 9b5d02ac8c92b1e71523cc15cb3d168d57fbd898
-platform/tools/loganalysis 2bbca3fbf4179f7dfb3381fb78ff04bcb3b345a2
-platform/tools/metalava 39a7a6c619b9eb58abeb9570d07ec2b8795a0a8b
+platform/tools/loganalysis 221889f159459e6f8f9b53385420e0c37263074c
+platform/tools/metalava 5c646e01261471d27485b49e7dfe16d8001855cd
platform/tools/motodev 69989786cefbde82527960a1e100ec9afba46a98
platform/tools/ndkports 74fefbc2160250129cbd157272fcfb3c9ac20f18
-platform/tools/repohooks 7daa42dc56d8c158aae1361cce676e771382c362
-platform/tools/security 96eee30239573c26a41485b04e3499308e9b1478
+platform/tools/repohooks 7c9166be1fe45be69887c2d755ec52f08bcf4923
+platform/tools/security 4fd2ee8e43b8742a61a40e0239ef593d35e40d80
platform/tools/studio/cloud 58f06e77e051fff3903adabca7acdaa9dd12ec2d
platform/tools/swt 8996e71047a2bd11efee46ef14e02435ab5fa07a
-platform/tools/test/connectivity be6d1974af85abacb5595ddb00f7ea23e111f2e8
-platform/tools/test/graphicsbenchmark 5d0d75a89e31644dcc095a5e26ece29c6cfaed1d
-platform/tools/tradefederation ce8910f2479e980e623c78d91c54c9f1c746edde
-platform/tools/tradefederation/contrib 72e15ad1b660df97ce7cf191e05c04c154303283
-platform/tools/trebuchet a83b5dec9c2e6b4cca66091a355cc90c284f3d30
-toolchain/benchmark 268e4ff60085cbcca2c2f1c074386307711d4f44
-toolchain/pgo-profiles 93712411a89f63bc3413f3139a30a348ab66075b
-tools/platform-compat fdee6c55cbb28ec8fbd7fb8e6c5ad8bd12d1190a
+platform/tools/test/connectivity bbc8d8942940b144be150b086be55345113f982d
+platform/tools/test/graphicsbenchmark 14cab853814ebecc4a773b38d4b4521adca3cb2e
+platform/tools/tradefederation cbdd6afaca2d07c9910b8fa29886a7ab93f37f9c
+platform/tools/tradefederation/contrib 294aa16ca79994fda7f5b8d28abb180fa9093cf0
+platform/tools/trebuchet 0ad89eb322608262a5a1c782822bbcd603a7e385
+toolchain/benchmark cbcac7eec9d1ea55c6a0e8811ca85f4ada0f95fa
+toolchain/pgo-profiles add21654fdbfbd480d42503b626b3ec3e8d6e07a
+tools/platform-compat 5047c897c9431f0865cafea909ed1a41fb56848b
diff --git a/simpleperf_report_lib.py b/simpleperf_report_lib.py
index ab45b67..3e677be 100644
--- a/simpleperf_report_lib.py
+++ b/simpleperf_report_lib.py
@@ -240,6 +240,7 @@ class ReportLib(object):
self._SetKallsymsFileFunc = self._lib.SetKallsymsFile
self._ShowIpForUnknownSymbolFunc = self._lib.ShowIpForUnknownSymbol
self._ShowArtFramesFunc = self._lib.ShowArtFrames
+ self._MergeJavaMethodsFunc = self._lib.MergeJavaMethods
self._GetNextSampleFunc = self._lib.GetNextSample
self._GetNextSampleFunc.restype = ct.POINTER(SampleStruct)
self._GetEventOfCurrentSampleFunc = self._lib.GetEventOfCurrentSample
@@ -294,6 +295,17 @@ class ReportLib(object):
""" Show frames of internal methods of the Java interpreter. """
self._ShowArtFramesFunc(self.getInstance(), show)
+ def MergeJavaMethods(self, merge=True):
+ """ This option merges jitted java methods with the same name but in different jit
+ symfiles. If possible, it also merges jitted methods with interpreted methods,
+ by mapping jitted methods to their corresponding dex files.
+ Side effects:
+ It only works at method level, not instruction level.
+ It makes symbol.vaddr_in_file and symbol.mapping not accurate for jitted methods.
+ Java methods are merged by default.
+ """
+ self._MergeJavaMethodsFunc(self.getInstance(), merge)
+
def SetKallsymsFile(self, kallsym_file):
""" Set the file path to a copy of the /proc/kallsyms file (for off device decoding) """
cond = self._SetKallsymsFileFunc(self.getInstance(), _char_pt(kallsym_file))
diff --git a/test.py b/test.py
index e24f58f..2adee0e 100755
--- a/test.py
+++ b/test.py
@@ -41,6 +41,7 @@ import filecmp
import fnmatch
import inspect
import json
+import logging
import os
import re
import shutil
@@ -62,12 +63,45 @@ from utils import str_to_bytes
try:
# pylint: disable=unused-import
import google.protobuf
+ # pylint: disable=ungrouped-imports
+ from pprof_proto_generator import load_pprof_profile
HAS_GOOGLE_PROTOBUF = True
except ImportError:
HAS_GOOGLE_PROTOBUF = False
INFERNO_SCRIPT = os.path.join(get_script_dir(), "inferno.bat" if is_windows() else "./inferno.sh")
+
+class TestLogger(object):
+ """ Write test progress in sys.stderr and keep verbose log in log file. """
+ def __init__(self):
+ self.log_file = self.get_log_file(3 if is_python3() else 2)
+ if os.path.isfile(self.log_file):
+ remove(self.log_file)
+ # Logs can come from multiple processes. So use append mode to avoid overwrite.
+ self.log_fh = open(self.log_file, 'a')
+ logging.basicConfig(filename=self.log_file)
+
+ @staticmethod
+ def get_log_file(python_version):
+ return 'test_python_%d.log' % python_version
+
+ def writeln(self, s):
+ return self.write(s + '\n')
+
+ def write(self, s):
+ sys.stderr.write(s)
+ self.log_fh.write(s)
+ # Child processes can also write to log file, so flush it immediately to keep the order.
+ self.flush()
+
+ def flush(self):
+ self.log_fh.flush()
+
+
+TEST_LOGGER = TestLogger()
+
+
def get_device_features():
adb = AdbHelper()
adb.check_run_and_return_output(['push',
@@ -83,6 +117,13 @@ def is_trace_offcpu_supported():
return is_trace_offcpu_supported.value
+def android_version():
+ """ Get Android version on device, like 7 is for Android N, 8 is for Android O."""
+ if not hasattr(android_version, 'value'):
+ android_version.value = AdbHelper().get_android_version()
+ return android_version.value
+
+
def build_testdata():
""" Collect testdata from ../testdata and ../demo. """
from_testdata_path = os.path.join('..', 'testdata')
@@ -91,16 +132,12 @@ def build_testdata():
if (not os.path.isdir(from_testdata_path) or not os.path.isdir(from_demo_path) or
not from_script_testdata_path):
return
- copy_testdata_list = ['perf_with_symbols.data', 'perf_with_trace_offcpu.data',
- 'perf_with_tracepoint_event.data', 'perf_with_interpreter_frames.data']
copy_demo_list = ['SimpleperfExamplePureJava', 'SimpleperfExampleWithNative',
'SimpleperfExampleOfKotlin']
testdata_path = "testdata"
remove(testdata_path)
- os.mkdir(testdata_path)
- for testdata in copy_testdata_list:
- shutil.copy(os.path.join(from_testdata_path, testdata), testdata_path)
+ shutil.copytree(from_testdata_path, testdata_path)
for demo in copy_demo_list:
shutil.copytree(os.path.join(from_demo_path, demo), os.path.join(testdata_path, demo))
for f in os.listdir(from_script_testdata_path):
@@ -113,9 +150,10 @@ class TestBase(unittest.TestCase):
use_shell = args[0].endswith('.bat')
try:
if not return_output:
- returncode = subprocess.call(args, shell=use_shell)
+ returncode = subprocess.call(args, shell=use_shell, stderr=TEST_LOGGER.log_fh)
else:
- subproc = subprocess.Popen(args, stdout=subprocess.PIPE, shell=use_shell)
+ subproc = subprocess.Popen(args, stdout=subprocess.PIPE,
+ stderr=TEST_LOGGER.log_fh, shell=use_shell)
(output_data, _) = subproc.communicate()
output_data = bytes_to_str(output_data)
returncode = subproc.returncode
@@ -168,10 +206,9 @@ class TestExampleBase(TestBase):
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
+ cls.use_compiled_java_code = android_version() <= 8
def setUp(self):
if self.id().find('TraceOffCpu') != -1 and not is_trace_offcpu_supported():
@@ -578,8 +615,13 @@ class TestExampleWithNative(TestExampleBase):
"__start_thread"])
def test_pprof_proto_generator(self):
+ check_strings_with_lines = [
+ "native-lib.cpp",
+ "BusyLoopThread",
+ # Check if dso name in perf.data is replaced by binary path in binary_cache.
+ 'filename: binary_cache/data/app/com.example.simpleperf.simpleperfexamplewithnative-']
self.common_test_pprof_proto_generator(
- check_strings_with_lines=["native-lib.cpp", "BusyLoopThread"],
+ check_strings_with_lines,
check_strings_without_lines=["BusyLoopThread"])
def test_inferno(self):
@@ -948,6 +990,31 @@ class TestReportLib(unittest.TestCase):
report_lib.ShowArtFrames(True)
self.assertTrue(has_art_frame(report_lib))
+ def test_merge_java_methods(self):
+ def parse_dso_names(report_lib):
+ dso_names = set()
+ report_lib.SetRecordFile(os.path.join('testdata', 'perf_with_interpreter_frames.data'))
+ while report_lib.GetNextSample():
+ dso_names.add(report_lib.GetSymbolOfCurrentSample().dso_name)
+ callchain = report_lib.GetCallChainOfCurrentSample()
+ for i in range(callchain.nr):
+ dso_names.add(callchain.entries[i].symbol.dso_name)
+ report_lib.Close()
+ has_jit_symfiles = any('TemporaryFile-' in name for name in dso_names)
+ has_jit_cache = '[JIT cache]' in dso_names
+ return has_jit_symfiles, has_jit_cache
+
+ report_lib = ReportLib()
+ self.assertEqual(parse_dso_names(report_lib), (False, True))
+
+ report_lib = ReportLib()
+ report_lib.MergeJavaMethods(True)
+ self.assertEqual(parse_dso_names(report_lib), (False, True))
+
+ report_lib = ReportLib()
+ report_lib.MergeJavaMethods(False)
+ self.assertEqual(parse_dso_names(report_lib), (True, False))
+
def test_tracing_data(self):
self.report_lib.SetRecordFile(os.path.join('testdata', 'perf_with_tracepoint_event.data'))
has_tracing_data = False
@@ -1016,7 +1083,7 @@ class TestTools(unittest.TestCase):
{
'func_addr': 0x840,
'addr': 0x840,
- 'source': 'system/extras/simpleperf/runtest/two_functions.cpp:7',
+ 'source': 'system/extras/simpleperf/runtest/two_functions.cpp:6',
'function': 'Function1()',
},
{
@@ -1065,7 +1132,7 @@ class TestTools(unittest.TestCase):
expected_lines.append(int(items[1]))
for line in test_addr['function'].split('\n'):
expected_functions.append(line.strip())
- self.assertEquals(len(expected_files), len(expected_functions))
+ self.assertEqual(len(expected_files), len(expected_functions))
actual_source = addr2line.get_addr_source(dso, test_addr['addr'])
self.assertTrue(actual_source is not None)
@@ -1170,20 +1237,20 @@ class TestTools(unittest.TestCase):
def format_path(path):
return path.replace('/', os.sep)
# Find a C++ file with pure file name.
- self.assertEquals(
+ self.assertEqual(
format_path('testdata/SimpleperfExampleWithNative/app/src/main/cpp/native-lib.cpp'),
searcher.get_real_path('native-lib.cpp'))
# Find a C++ file with an absolute file path.
- self.assertEquals(
+ self.assertEqual(
format_path('testdata/SimpleperfExampleWithNative/app/src/main/cpp/native-lib.cpp'),
searcher.get_real_path('/data/native-lib.cpp'))
# Find a Java file.
- self.assertEquals(
+ self.assertEqual(
format_path('testdata/SimpleperfExampleWithNative/app/src/main/java/com/example/' +
'simpleperf/simpleperfexamplewithnative/MainActivity.java'),
searcher.get_real_path('simpleperfexamplewithnative/MainActivity.java'))
# Find a Kotlin file.
- self.assertEquals(
+ self.assertEqual(
format_path('testdata/SimpleperfExampleOfKotlin/app/src/main/java/com/example/' +
'simpleperf/simpleperfexampleofkotlin/MainActivity.kt'),
searcher.get_real_path('MainActivity.kt'))
@@ -1362,7 +1429,7 @@ class TestBinaryCacheBuilder(TestBase):
class TestApiProfiler(TestBase):
def run_api_test(self, package_name, apk_name, expected_reports, min_android_version):
adb = AdbHelper()
- if adb.get_android_version() < ord(min_android_version) - ord('L') + 5:
+ if android_version() < ord(min_android_version) - ord('L') + 5:
log_info('skip this test on Android < %s.' % min_android_version)
return
# step 1: Prepare profiling.
@@ -1489,6 +1556,69 @@ class TestPprofProtoGenerator(TestBase):
self.assertNotIn(key1, output)
self.assertIn(key2, output)
+ def test_build_id(self):
+ """ Test the build ids generated are not padded with zeros. """
+ self.assertIn('build_id: e3e938cc9e40de2cfe1a5ac7595897de(', self.run_generator())
+
+ def test_location_address(self):
+ """ Test if the address of a location is within the memory range of the corresponding
+ mapping.
+ """
+ self.run_cmd(['pprof_proto_generator.py', '-i',
+ os.path.join('testdata', 'perf_with_interpreter_frames.data')])
+
+ profile = load_pprof_profile('pprof.profile')
+ # pylint: disable=no-member
+ for location in profile.location:
+ mapping = profile.mapping[location.mapping_id - 1]
+ self.assertLessEqual(mapping.memory_start, location.address)
+ self.assertGreaterEqual(mapping.memory_limit, location.address)
+
+
+class TestRecordingRealApps(TestBase):
+ def setUp(self):
+ self.adb = AdbHelper(False)
+ self.installed_packages = []
+
+ def tearDown(self):
+ for package in self.installed_packages:
+ self.adb.run(['shell', 'pm', 'uninstall', package])
+
+ def install_apk(self, apk_path, package_name):
+ self.adb.run(['install', '-t', apk_path])
+ self.installed_packages.append(package_name)
+
+ def start_app(self, start_cmd):
+ subprocess.Popen(self.adb.adb_path + ' ' + start_cmd, shell=True,
+ stdout=TEST_LOGGER.log_fh, stderr=TEST_LOGGER.log_fh)
+
+ def record_data(self, package_name, record_arg):
+ self.run_cmd(['app_profiler.py', '--app', package_name, '-r', record_arg])
+
+ def check_symbol_in_record_file(self, symbol_name):
+ self.run_cmd(['report.py', '--children', '-o', 'report.txt'])
+ self.check_strings_in_file('report.txt', [symbol_name])
+
+ def test_recording_displaybitmaps(self):
+ self.install_apk(os.path.join('testdata', 'DisplayBitmaps.apk'),
+ 'com.example.android.displayingbitmaps')
+ self.install_apk(os.path.join('testdata', 'DisplayBitmapsTest.apk'),
+ 'com.example.android.displayingbitmaps.test')
+ self.start_app('shell am instrument -w -r -e debug false -e class ' +
+ 'com.example.android.displayingbitmaps.tests.GridViewTest ' +
+ 'com.example.android.displayingbitmaps.test/' +
+ 'androidx.test.runner.AndroidJUnitRunner')
+ self.record_data('com.example.android.displayingbitmaps', '-e cpu-clock -g --duration 10')
+ if android_version() >= 9:
+ self.check_symbol_in_record_file('androidx.test.espresso')
+
+ def test_recording_endless_tunnel(self):
+ self.install_apk(os.path.join('testdata', 'EndlessTunnel.apk'), 'com.google.sample.tunnel')
+ self.start_app('shell am start -n com.google.sample.tunnel/android.app.NativeActivity -a ' +
+ 'android.intent.action.MAIN -c android.intent.category.LAUNCHER')
+ self.record_data('com.google.sample.tunnel', '-e cpu-clock -g --duration 10')
+ self.check_symbol_in_record_file('PlayScene::DoFrame')
+
def get_all_tests():
tests = []
@@ -1501,16 +1631,18 @@ def get_all_tests():
return sorted(tests)
-def run_tests(tests, repeats):
+def run_tests(tests, repeats, python_version):
os.chdir(get_script_dir())
build_testdata()
argv = [sys.argv[0]] + tests
+ test_runner = unittest.TextTestRunner(stream=TEST_LOGGER, verbosity=2)
for repeat in range(repeats):
- log_info('Run tests with python %d for %dth time\n%s' % (
- 3 if is_python3() else 2, repeat + 1, '\n'.join(tests)))
- test_program = unittest.main(argv=argv, failfast=True, verbosity=2, exit=False)
+ print('Run tests with python %d for %dth time\n%s' % (
+ python_version, repeat + 1, '\n'.join(tests)), file=TEST_LOGGER)
+ test_program = unittest.main(argv=argv, testRunner=test_runner, exit=False)
if not test_program.result.wasSuccessful():
- sys.exit(1)
+ return False
+ return True
def main():
@@ -1520,12 +1652,14 @@ def main():
parser.add_argument('--python-version', choices=['2', '3', 'both'], default='both', help="""
Run tests on which python versions.""")
parser.add_argument('--repeat', type=int, nargs=1, default=[1], help='run test multiple times')
+ parser.add_argument('--no-test-result', dest='report_test_result',
+ action='store_false', help="Don't report test result.")
parser.add_argument('pattern', nargs='*', help='Run tests matching the selected pattern.')
args = parser.parse_args()
tests = get_all_tests()
if args.list_tests:
print('\n'.join(tests))
- return
+ return True
if args.test_from:
start_pos = 0
while start_pos < len(tests) and tests[start_pos] != args.test_from[0]:
@@ -1543,25 +1677,35 @@ def main():
if not tests:
log_exit('No tests are matched.')
- if AdbHelper().get_android_version() < 7:
- log_info("Skip tests on Android version < N.")
- sys.exit(0)
+ if android_version() < 7:
+ print("Skip tests on Android version < N.", file=TEST_LOGGER)
+ return False
if args.python_version == 'both':
python_versions = [2, 3]
else:
python_versions = [int(args.python_version)]
+ test_results = []
current_version = 3 if is_python3() else 2
for version in python_versions:
- if version != current_version:
+ if version == current_version:
+ test_result = run_tests(tests, args.repeat[0], version)
+ else:
argv = ['python3' if version == 3 else 'python']
argv.append(os.path.join(get_script_dir(), 'test.py'))
argv += sys.argv[1:]
- argv += ['--python-version', str(version)]
- subprocess.check_call(argv)
- else:
- run_tests(tests, args.repeat[0])
+ argv += ['--python-version', str(version), '--no-test-result']
+ test_result = subprocess.call(argv) == 0
+ test_results.append(test_result)
+
+ if args.report_test_result:
+ for version, test_result in zip(python_versions, test_results):
+ if not test_result:
+ print('Tests with python %d failed, see %s for details.' %
+ (version, TEST_LOGGER.get_log_file(version)), file=TEST_LOGGER)
+
+ return test_results.count(False) == 0
if __name__ == '__main__':
- main()
+ sys.exit(0 if main() else 1)
diff --git a/utils.py b/utils.py
index 9891e60..e0d40b2 100644
--- a/utils.py
+++ b/utils.py
@@ -148,15 +148,16 @@ EXPECTED_TOOLS = {
'adb': {
'is_binutils': False,
'test_option': 'version',
- 'path_in_ndk': '../platform-tools/adb',
+ 'path_in_ndk': lambda _: '../platform-tools/adb',
},
'readelf': {
'is_binutils': True,
'accept_tool_without_arch': True,
},
- 'addr2line': {
- 'is_binutils': True,
- 'accept_tool_without_arch': True
+ 'llvm-symbolizer': {
+ 'is_binutils': False,
+ 'path_in_ndk':
+ lambda platform: 'toolchains/llvm/prebuilt/%s-x86_64/bin/llvm-symbolizer' % platform,
},
'objdump': {
'is_binutils': True,
@@ -196,7 +197,7 @@ def find_tool_path(toolname, ndk_path=None, arch=None):
toolname_with_arch, path_in_ndk = _get_binutils_path_in_ndk(toolname, arch, platform)
else:
toolname_with_arch = toolname
- path_in_ndk = tool_info['path_in_ndk']
+ path_in_ndk = tool_info['path_in_ndk'](platform)
path_in_ndk = path_in_ndk.replace('/', os.sep)
# 1. Find tool in the given ndk path.
@@ -379,8 +380,6 @@ def is_elf_file(path):
def find_real_dso_path(dso_path_in_record_file, binary_cache_path):
""" Given the path of a shared library in perf.data, find its real path in the file system. """
- if dso_path_in_record_file[0] != '/' or dso_path_in_record_file == '//anon':
- return None
if binary_cache_path:
tmp_path = os.path.join(binary_cache_path, dso_path_in_record_file[1:])
if is_elf_file(tmp_path):
@@ -391,7 +390,7 @@ def find_real_dso_path(dso_path_in_record_file, binary_cache_path):
class Addr2Nearestline(object):
- """ Use addr2line to convert (dso_path, func_addr, addr) to (source_file, line) pairs.
+ """ Use llvm-symbolizer to convert (dso_path, func_addr, addr) to (source_file, line).
For instructions generated by C++ compilers without a matching statement in source code
(like stack corruption check, switch optimization, etc.), addr2line can't generate
line information. However, we want to assign the instruction to the nearest line before
@@ -435,9 +434,9 @@ class Addr2Nearestline(object):
self.source_lines = None
def __init__(self, ndk_path, binary_cache_path, with_function_name):
- self.addr2line_path = find_tool_path('addr2line', ndk_path)
- if not self.addr2line_path:
- log_exit("Can't find addr2line. Please set ndk path with --ndk_path option.")
+ self.symbolizer_path = find_tool_path('llvm-symbolizer', ndk_path)
+ if not self.symbolizer_path:
+ log_exit("Can't find llvm-symbolizer. Please set ndk path with --ndk_path option.")
self.readelf = ReadElf(ndk_path)
self.dso_map = {} # map from dso_path to Dso.
self.binary_cache_path = binary_cache_path
@@ -504,12 +503,11 @@ class Addr2Nearestline(object):
break
if not addr_set:
return
- addr_request = '\n'.join(['%x' % addr for addr in sorted(addr_set)])
+ addr_request = '\n'.join(['0x%x' % addr for addr in sorted(addr_set)])
# 2. Use addr2line to collect line info.
try:
- option = '-ai' + ('fC' if self.with_function_name else '')
- subproc = subprocess.Popen([self.addr2line_path, option, '-e', real_path],
+ subproc = subprocess.Popen(self._build_symbolizer_args(real_path),
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
(stdoutdata, _) = subproc.communicate(str_to_bytes(addr_request))
stdoutdata = bytes_to_str(stdoutdata)
@@ -520,6 +518,9 @@ class Addr2Nearestline(object):
need_function_name = self.with_function_name
cur_function_name = None
for line in stdoutdata.strip().split('\n'):
+ line = line.strip()
+ if not line:
+ continue
if line[:2] == '0x':
# a new address
cur_line_list = addr_map[int(line, 16)] = []
@@ -528,27 +529,16 @@ class Addr2Nearestline(object):
need_function_name = False
else:
need_function_name = self.with_function_name
- # a file:line.
if cur_line_list is None:
continue
- # Handle lines like "C:\Users\...\file:32".
- items = line.rsplit(':', 1)
- if len(items) != 2:
- continue
- if '?' in line:
- # if ? in line, it doesn't have a valid line info.
+ file_path, line_number = self._parse_source_location(line)
+ if not file_path or not line_number:
# An addr can have a list of (file, line), when the addr belongs to an inlined
# function. Sometimes only part of the list has ? mark. In this case, we think
# the line info is valid if the first line doesn't have ? mark.
if not cur_line_list:
cur_line_list = None
continue
- (file_path, line_number) = items
- line_number = line_number.split()[0] # Remove comments after line number
- try:
- line_number = int(line_number)
- except ValueError:
- continue
file_id = self._get_file_id(file_path)
if self.with_function_name:
func_id = self._get_func_id(cur_function_name)
@@ -570,6 +560,29 @@ class Addr2Nearestline(object):
if shifted_addr == addr_obj.func_addr:
break
+ def _build_symbolizer_args(self, binary_path):
+ args = [self.symbolizer_path, '-print-address', '-inlining', '-obj=%s' % binary_path]
+ if self.with_function_name:
+ args += ['-functions=linkage', '-demangle']
+ else:
+ args.append('-functions=none')
+ return args
+
+ def _parse_source_location(self, line):
+ file_path, line_number = None, None
+ # Handle lines in format filename:line:column, like "runtest/two_functions.cpp:14:25".
+ # Filename may contain ':' like "C:\Users\...\file".
+ items = line.rsplit(':', 2)
+ if len(items) == 3:
+ file_path, line_number = items[:2]
+ if not file_path or ('?' in file_path) or not line_number or ('?' in line_number):
+ return None, None
+ try:
+ line_number = int(line_number)
+ except ValueError:
+ return None, None
+ return file_path, line_number
+
def _get_file_id(self, file_path):
file_id = self.file_name_to_id.get(file_path)
if file_id is None:
@@ -740,7 +753,7 @@ class ReadElf(object):
pass
return 'unknown'
- def get_build_id(self, elf_file_path):
+ def get_build_id(self, elf_file_path, with_padding=True):
""" Get build id of an elf file. """
if is_elf_file(elf_file_path):
try:
@@ -749,16 +762,22 @@ class ReadElf(object):
result = re.search(r'Build ID:\s*(\S+)', output)
if result:
build_id = result.group(1)
- if len(build_id) < 40:
- build_id += '0' * (40 - len(build_id))
- else:
- build_id = build_id[:40]
- build_id = '0x' + build_id
+ if with_padding:
+ build_id = self.pad_build_id(build_id)
return build_id
except subprocess.CalledProcessError:
pass
return ""
+ @staticmethod
+ def pad_build_id(build_id):
+ """ Pad build id to 40 hex numbers (20 bytes). """
+ if len(build_id) < 40:
+ build_id += '0' * (40 - len(build_id))
+ else:
+ build_id = build_id[:40]
+ return '0x' + build_id
+
def get_sections(self, elf_file_path):
""" Get sections of an elf file. """
section_names = []