Merge "Update transform hint from relayout window (2/2)" into sc-dev
diff --git a/cmds/installd/InstalldNativeService.cpp b/cmds/installd/InstalldNativeService.cpp
index 0595322..59311a0 100644
--- a/cmds/installd/InstalldNativeService.cpp
+++ b/cmds/installd/InstalldNativeService.cpp
@@ -2357,7 +2357,7 @@
// TODO: Consider returning error codes.
binder::Status InstalldNativeService::mergeProfiles(int32_t uid, const std::string& packageName,
- const std::string& profileName, bool* _aidl_return) {
+ const std::string& profileName, int* _aidl_return) {
ENFORCE_UID(AID_SYSTEM);
CHECK_ARGUMENT_PACKAGE_NAME(packageName);
std::lock_guard<std::recursive_mutex> lock(mLock);
@@ -2657,7 +2657,8 @@
}
binder::Status InstalldNativeService::deleteOdex(const std::string& apkPath,
- const std::string& instructionSet, const std::optional<std::string>& outputPath) {
+ const std::string& instructionSet, const std::optional<std::string>& outputPath,
+ int64_t* _aidl_return) {
ENFORCE_UID(AID_SYSTEM);
CHECK_ARGUMENT_PATH(apkPath);
CHECK_ARGUMENT_PATH(outputPath);
@@ -2667,8 +2668,8 @@
const char* instruction_set = instructionSet.c_str();
const char* oat_dir = outputPath ? outputPath->c_str() : nullptr;
- bool res = delete_odex(apk_path, instruction_set, oat_dir);
- return res ? ok() : error();
+ *_aidl_return = delete_odex(apk_path, instruction_set, oat_dir);
+ return *_aidl_return == -1 ? error() : ok();
}
// This kernel feature is experimental.
diff --git a/cmds/installd/InstalldNativeService.h b/cmds/installd/InstalldNativeService.h
index 4966b96..ea0c945 100644
--- a/cmds/installd/InstalldNativeService.h
+++ b/cmds/installd/InstalldNativeService.h
@@ -125,7 +125,7 @@
binder::Status rmdex(const std::string& codePath, const std::string& instructionSet);
binder::Status mergeProfiles(int32_t uid, const std::string& packageName,
- const std::string& profileName, bool* _aidl_return);
+ const std::string& profileName, int* _aidl_return);
binder::Status dumpProfiles(int32_t uid, const std::string& packageName,
const std::string& profileName, const std::string& codePath, bool* _aidl_return);
binder::Status copySystemProfile(const std::string& systemProfile,
@@ -150,7 +150,7 @@
binder::Status moveAb(const std::string& apkPath, const std::string& instructionSet,
const std::string& outputPath);
binder::Status deleteOdex(const std::string& apkPath, const std::string& instructionSet,
- const std::optional<std::string>& outputPath);
+ const std::optional<std::string>& outputPath, int64_t* _aidl_return);
binder::Status installApkVerity(const std::string& filePath,
android::base::unique_fd verityInput, int32_t contentSize);
binder::Status assertFsverityRootHashMatches(const std::string& filePath,
diff --git a/cmds/installd/binder/android/os/IInstalld.aidl b/cmds/installd/binder/android/os/IInstalld.aidl
index 2538e22..3d32f61 100644
--- a/cmds/installd/binder/android/os/IInstalld.aidl
+++ b/cmds/installd/binder/android/os/IInstalld.aidl
@@ -69,7 +69,7 @@
void rmdex(@utf8InCpp String codePath, @utf8InCpp String instructionSet);
- boolean mergeProfiles(int uid, @utf8InCpp String packageName, @utf8InCpp String profileName);
+ int mergeProfiles(int uid, @utf8InCpp String packageName, @utf8InCpp String profileName);
boolean dumpProfiles(int uid, @utf8InCpp String packageName, @utf8InCpp String profileName,
@utf8InCpp String codePath);
boolean copySystemProfile(@utf8InCpp String systemProfile, int uid,
@@ -91,7 +91,7 @@
@utf8InCpp String toBase);
void moveAb(@utf8InCpp String apkPath, @utf8InCpp String instructionSet,
@utf8InCpp String outputPath);
- void deleteOdex(@utf8InCpp String apkPath, @utf8InCpp String instructionSet,
+ long deleteOdex(@utf8InCpp String apkPath, @utf8InCpp String instructionSet,
@nullable @utf8InCpp String outputPath);
void installApkVerity(@utf8InCpp String filePath, in FileDescriptor verityInput,
int contentSize);
diff --git a/cmds/installd/dexopt.cpp b/cmds/installd/dexopt.cpp
index cc0434d..15f0c5b 100644
--- a/cmds/installd/dexopt.cpp
+++ b/cmds/installd/dexopt.cpp
@@ -53,6 +53,7 @@
#include "execv_helper.h"
#include "globals.h"
#include "installd_deps.h"
+#include "installd_constants.h"
#include "otapreopt_utils.h"
#include "run_dex2oat.h"
#include "unique_file.h"
@@ -416,11 +417,12 @@
static constexpr int PROFMAN_BIN_RETURN_CODE_SUCCESS = 0;
static constexpr int PROFMAN_BIN_RETURN_CODE_COMPILE = 1;
-static constexpr int PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION = 2;
+static constexpr int PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION_NOT_ENOUGH_DELTA = 2;
static constexpr int PROFMAN_BIN_RETURN_CODE_BAD_PROFILES = 3;
static constexpr int PROFMAN_BIN_RETURN_CODE_ERROR_IO = 4;
static constexpr int PROFMAN_BIN_RETURN_CODE_ERROR_LOCKING = 5;
static constexpr int PROFMAN_BIN_RETURN_CODE_ERROR_DIFFERENT_VERSIONS = 6;
+static constexpr int PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION_EMPTY_PROFILES = 7;
class RunProfman : public ExecVHelper {
public:
@@ -555,15 +557,7 @@
std::vector<unique_fd> apk_fds_;
};
-
-
-// Decides if profile guided compilation is needed or not based on existing profiles.
-// The location is the package name for primary apks or the dex path for secondary dex files.
-// Returns true if there is enough information in the current profiles that makes it
-// worth to recompile the given location.
-// If the return value is true all the current profiles would have been merged into
-// the reference profiles accessible with open_reference_profile().
-static bool analyze_profiles(uid_t uid, const std::string& package_name,
+static int analyze_profiles(uid_t uid, const std::string& package_name,
const std::string& location, bool is_secondary_dex) {
std::vector<unique_fd> profiles_fd;
unique_fd reference_profile_fd;
@@ -572,7 +566,7 @@
if (profiles_fd.empty() || (reference_profile_fd.get() < 0)) {
// Skip profile guided compilation because no profiles were found.
// Or if the reference profile info couldn't be opened.
- return false;
+ return PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES;
}
RunProfman profman_merge;
@@ -594,6 +588,7 @@
/* parent */
int return_code = wait_child(pid);
bool need_to_compile = false;
+ bool empty_profiles = false;
bool should_clear_current_profiles = false;
bool should_clear_reference_profile = false;
if (!WIFEXITED(return_code)) {
@@ -606,11 +601,17 @@
should_clear_current_profiles = true;
should_clear_reference_profile = false;
break;
- case PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION:
+ case PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION_NOT_ENOUGH_DELTA:
need_to_compile = false;
should_clear_current_profiles = false;
should_clear_reference_profile = false;
break;
+ case PROFMAN_BIN_RETURN_CODE_SKIP_COMPILATION_EMPTY_PROFILES:
+ need_to_compile = false;
+ empty_profiles = true;
+ should_clear_current_profiles = false;
+ should_clear_reference_profile = false;
+ break;
case PROFMAN_BIN_RETURN_CODE_BAD_PROFILES:
LOG(WARNING) << "Bad profiles for location " << location;
need_to_compile = false;
@@ -653,16 +654,29 @@
if (should_clear_reference_profile) {
clear_reference_profile(package_name, location, is_secondary_dex);
}
- return need_to_compile;
+ int result = 0;
+ if (need_to_compile) {
+ result = PROFILES_ANALYSIS_OPTIMIZE;
+ } else if (empty_profiles) {
+ result = PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES;
+ } else {
+ result = PROFILES_ANALYSIS_DONT_OPTIMIZE_SMALL_DELTA;
+ }
+ return result;
}
// Decides if profile guided compilation is needed or not based on existing profiles.
-// The analysis is done for the primary apks of the given package.
-// Returns true if there is enough information in the current profiles that makes it
-// worth to recompile the package.
-// If the return value is true all the current profiles would have been merged into
-// the reference profiles accessible with open_reference_profile().
-bool analyze_primary_profiles(uid_t uid, const std::string& package_name,
+// The analysis is done for a single profile name (which corresponds to a single code path).
+//
+// Returns PROFILES_ANALYSIS_OPTIMIZE if there is enough information in the current profiles
+// that makes it worth to recompile the package.
+// If the return value is PROFILES_ANALYSIS_OPTIMIZE all the current profiles would have been
+// merged into the reference profiles accessible with open_reference_profile().
+//
+// Return PROFILES_ANALYSIS_DONT_OPTIMIZE_SMALL_DELTA if the package should not optimize.
+// As a special case returns PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES if all profiles are
+// empty.
+int analyze_primary_profiles(uid_t uid, const std::string& package_name,
const std::string& profile_name) {
return analyze_profiles(uid, package_name, profile_name, /*is_secondary_dex*/false);
}
@@ -1166,7 +1180,7 @@
int zip_fd,
const std::string& instruction_set,
const std::string& compiler_filter,
- bool profile_was_updated,
+ int profile_analysis_result,
bool downgrade,
const char* class_loader_context,
const std::string& class_loader_context_fds) {
@@ -1182,7 +1196,8 @@
std::string zip_fd_arg = "--zip-fd=" + std::to_string(zip_fd);
std::string isa_arg = "--isa=" + instruction_set;
std::string compiler_filter_arg = "--compiler-filter=" + compiler_filter;
- const char* assume_profile_changed = "--assume-profile-changed";
+ std::string profile_analysis_arg = "--profile-analysis-result="
+ + std::to_string(profile_analysis_result);
const char* downgrade_flag = "--downgrade";
std::string class_loader_context_arg = "--class-loader-context=";
if (class_loader_context != nullptr) {
@@ -1204,9 +1219,8 @@
AddArg(vdex_fd_arg);
}
AddArg(zip_fd_arg);
- if (profile_was_updated) {
- AddArg(assume_profile_changed);
- }
+ AddArg(profile_analysis_arg);
+
if (downgrade) {
AddArg(downgrade_flag);
}
@@ -1578,7 +1592,7 @@
}
// Analyze profiles.
- bool profile_was_updated = analyze_profiles(uid, pkgname, dex_path,
+ int profile_analysis_result = analyze_profiles(uid, pkgname, dex_path,
/*is_secondary_dex*/true);
// Run dexoptanalyzer to get dexopt_needed code. This is not expected to return.
@@ -1589,7 +1603,8 @@
oat_file_fd.get(),
zip_fd.get(),
instruction_set,
- compiler_filter, profile_was_updated,
+ compiler_filter,
+ profile_analysis_result,
downgrade,
class_loader_context,
join_fds(context_zip_fds));
@@ -2237,38 +2252,52 @@
return success;
}
-bool delete_odex(const char* apk_path, const char* instruction_set, const char* oat_dir) {
+int64_t delete_odex(const char* apk_path, const char* instruction_set, const char* oat_dir) {
// Delete the oat/odex file.
char out_path[PKG_PATH_MAX];
if (!create_oat_out_path(apk_path, instruction_set, oat_dir,
/*is_secondary_dex*/false, out_path)) {
- return false;
+ LOG(ERROR) << "Cannot create apk path for " << apk_path;
+ return -1;
}
// In case of a permission failure report the issue. Otherwise just print a warning.
- auto unlink_and_check = [](const char* path) -> bool {
- int result = unlink(path);
- if (result != 0) {
- if (errno == EACCES || errno == EPERM) {
- PLOG(ERROR) << "Could not unlink " << path;
- return false;
+ auto unlink_and_check = [](const char* path) -> int64_t {
+ struct stat file_stat;
+ if (stat(path, &file_stat) != 0) {
+ if (errno != ENOENT) {
+ PLOG(ERROR) << "Could not stat " << path;
+ return -1;
}
- PLOG(WARNING) << "Could not unlink " << path;
+ return 0;
}
- return true;
+
+ if (unlink(path) != 0) {
+ if (errno != ENOENT) {
+ PLOG(ERROR) << "Could not unlink " << path;
+ return -1;
+ }
+ }
+ return static_cast<int64_t>(file_stat.st_size);
};
// Delete the oat/odex file.
- bool return_value_oat = unlink_and_check(out_path);
+ int64_t return_value_oat = unlink_and_check(out_path);
// Derive and delete the app image.
- bool return_value_art = unlink_and_check(create_image_filename(out_path).c_str());
+ int64_t return_value_art = unlink_and_check(create_image_filename(out_path).c_str());
// Derive and delete the vdex file.
- bool return_value_vdex = unlink_and_check(create_vdex_filename(out_path).c_str());
+ int64_t return_value_vdex = unlink_and_check(create_vdex_filename(out_path).c_str());
- // Report success.
- return return_value_oat && return_value_art && return_value_vdex;
+ // Report result
+ if (return_value_oat == -1
+ || return_value_art == -1
+ || return_value_vdex == -1) {
+ return -1;
+ }
+
+ return return_value_oat + return_value_art + return_value_vdex;
}
static bool is_absolute_path(const std::string& path) {
diff --git a/cmds/installd/dexopt.h b/cmds/installd/dexopt.h
index d35953c..5a637b1 100644
--- a/cmds/installd/dexopt.h
+++ b/cmds/installd/dexopt.h
@@ -54,15 +54,20 @@
// Clear all current profiles identified by the given profile name (all users).
bool clear_primary_current_profiles(const std::string& pkgname, const std::string& profile_name);
-// Decide if profile guided compilation is needed or not based on existing profiles.
+// Decides if profile guided compilation is needed or not based on existing profiles.
// The analysis is done for a single profile name (which corresponds to a single code path).
-// Returns true if there is enough information in the current profiles that makes it
-// worth to recompile the package.
-// If the return value is true all the current profiles would have been merged into
-// the reference profiles accessible with open_reference_profile().
-bool analyze_primary_profiles(uid_t uid,
- const std::string& pkgname,
- const std::string& profile_name);
+//
+// Returns PROFILES_ANALYSIS_OPTIMIZE if there is enough information in the current profiles
+// that makes it worth to recompile the package.
+// If the return value is PROFILES_ANALYSIS_OPTIMIZE all the current profiles would have been
+// merged into the reference profiles accessible with open_reference_profile().
+//
+// Return PROFILES_ANALYSIS_DONT_OPTIMIZE_SMALL_DELTA if the package should not optimize.
+// As a special case returns PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES if all profiles are
+// empty.
+int analyze_primary_profiles(uid_t uid,
+ const std::string& pkgname,
+ const std::string& profile_name);
// Create a snapshot of the profile information for the given package profile.
// If appId is -1, the method creates the profile snapshot for the boot image.
@@ -104,7 +109,8 @@
const std::string& code_path,
const std::optional<std::string>& dex_metadata);
-bool delete_odex(const char* apk_path, const char* instruction_set, const char* output_path);
+// Returns the total bytes that were freed, or -1 in case of errors.
+int64_t delete_odex(const char* apk_path, const char* instruction_set, const char* output_path);
bool reconcile_secondary_dex_file(const std::string& dex_path,
const std::string& pkgname, int uid, const std::vector<std::string>& isas,
diff --git a/cmds/installd/installd_constants.h b/cmds/installd/installd_constants.h
index b5ee481..00d8441 100644
--- a/cmds/installd/installd_constants.h
+++ b/cmds/installd/installd_constants.h
@@ -77,6 +77,12 @@
constexpr int FLAG_STORAGE_DE = 1 << 0;
constexpr int FLAG_STORAGE_CE = 1 << 1;
+// TODO: import them from dexoptanalyzer.h
+// NOTE: keep in sync with Installer.java
+constexpr int PROFILES_ANALYSIS_OPTIMIZE = 1;
+constexpr int PROFILES_ANALYSIS_DONT_OPTIMIZE_SMALL_DELTA = 2;
+constexpr int PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES = 3;
+
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))
} // namespace installd
diff --git a/cmds/installd/run_dex2oat.cpp b/cmds/installd/run_dex2oat.cpp
index a27fd10..e847626 100644
--- a/cmds/installd/run_dex2oat.cpp
+++ b/cmds/installd/run_dex2oat.cpp
@@ -324,6 +324,12 @@
AddRuntimeArg(MapPropertyToArg("dalvik.vm.dex2oat-Xms", "-Xms%s"));
AddRuntimeArg(MapPropertyToArg("dalvik.vm.dex2oat-Xmx", "-Xmx%s"));
+
+ // Enable compiling dex files in isolation on low ram devices.
+ // It takes longer but reduces the memory footprint.
+ if (GetBoolProperty("ro.config.low_ram", false)) {
+ AddArg("--compile-individually");
+ }
}
void RunDex2Oat::Exec(int exit_code) {
diff --git a/cmds/installd/tests/installd_dexopt_test.cpp b/cmds/installd/tests/installd_dexopt_test.cpp
index 216347e..7e7e513 100644
--- a/cmds/installd/tests/installd_dexopt_test.cpp
+++ b/cmds/installd/tests/installd_dexopt_test.cpp
@@ -38,6 +38,7 @@
#include "binder_test_utils.h"
#include "dexopt.h"
#include "InstalldNativeService.h"
+#include "installd_constants.h"
#include "globals.h"
#include "tests/test_utils.h"
#include "utils.h"
@@ -517,7 +518,8 @@
// Check the access to the compiler output.
// - speed-profile artifacts are not world-wide readable.
// - files are owned by the system uid.
- std::string odex = GetPrimaryDexArtifact(oat_dir, apk_path_, "odex");
+ std::string odex = GetPrimaryDexArtifact(oat_dir, apk_path_,
+ oat_dir == nullptr ? "dex" : "odex");
std::string vdex = GetPrimaryDexArtifact(oat_dir, apk_path_, "vdex");
std::string art = GetPrimaryDexArtifact(oat_dir, apk_path_, "art");
@@ -545,7 +547,7 @@
}
}
return android_data_dir + DALVIK_CACHE + '/' + kRuntimeIsa + "/" + path
- + "@classes.dex";
+ + "@classes." + type;
} else {
std::string::size_type name_end = dex_path.rfind('.');
std::string::size_type name_start = dex_path.rfind('/');
@@ -553,6 +555,53 @@
dex_path.substr(name_start + 1, name_end - name_start) + type;
}
}
+
+ int64_t GetSize(const std::string& path) {
+ struct stat file_stat;
+ if (stat(path.c_str(), &file_stat) == 0) {
+ return static_cast<int64_t>(file_stat.st_size);
+ }
+ PLOG(ERROR) << "Cannot stat path: " << path;
+ return -1;
+ }
+
+ void TestDeleteOdex(bool in_dalvik_cache) {
+ const char* oat_dir = in_dalvik_cache ? nullptr : app_oat_dir_.c_str();
+ CompilePrimaryDexOk(
+ "speed-profile",
+ DEXOPT_BOOTCOMPLETE | DEXOPT_PROFILE_GUIDED | DEXOPT_PUBLIC
+ | DEXOPT_GENERATE_APP_IMAGE,
+ oat_dir,
+ kTestAppGid,
+ DEX2OAT_FROM_SCRATCH,
+ /*binder_result=*/nullptr,
+ empty_dm_file_.c_str());
+
+
+ int64_t odex_size = GetSize(GetPrimaryDexArtifact(oat_dir, apk_path_,
+ in_dalvik_cache ? "dex" : "odex"));
+ int64_t vdex_size = GetSize(GetPrimaryDexArtifact(oat_dir, apk_path_, "vdex"));
+ int64_t art_size = GetSize(GetPrimaryDexArtifact(oat_dir, apk_path_, "art"));
+
+ LOG(ERROR) << "test odex " << odex_size;
+ LOG(ERROR) << "test vdex_size " << vdex_size;
+ LOG(ERROR) << "test art_size " << art_size;
+ int64_t expected_bytes_freed = odex_size + vdex_size + art_size;
+
+ int64_t bytes_freed;
+ binder::Status result = service_->deleteOdex(
+ apk_path_,
+ kRuntimeIsa,
+ in_dalvik_cache ? std::nullopt : std::make_optional<std::string>(app_oat_dir_.c_str()),
+ &bytes_freed);
+ ASSERT_TRUE(result.isOk()) << result.toString8().c_str();
+
+ ASSERT_GE(odex_size, 0);
+ ASSERT_GE(vdex_size, 0);
+ ASSERT_GE(art_size, 0);
+
+ ASSERT_EQ(expected_bytes_freed, bytes_freed);
+ }
};
@@ -701,6 +750,16 @@
empty_dm_file_.c_str());
}
+TEST_F(DexoptTest, DeleteDexoptArtifactsData) {
+ LOG(INFO) << "DeleteDexoptArtifactsData";
+ TestDeleteOdex(/*in_dalvik_cache=*/ false);
+}
+
+TEST_F(DexoptTest, DeleteDexoptArtifactsDalvikCache) {
+ LOG(INFO) << "DeleteDexoptArtifactsDalvikCache";
+ TestDeleteOdex(/*in_dalvik_cache=*/ true);
+}
+
TEST_F(DexoptTest, ResolveStartupConstStrings) {
LOG(INFO) << "DexoptDex2oatResolveStartupStrings";
const std::string property = "persist.device_config.runtime.dex2oat_resolve_startup_strings";
@@ -951,14 +1010,14 @@
void mergePackageProfiles(const std::string& package_name,
const std::string& code_path,
- bool expected_result) {
- bool result;
+ int expected_result) {
+ int result;
ASSERT_BINDER_SUCCESS(service_->mergeProfiles(
kTestAppUid, package_name, code_path, &result));
ASSERT_EQ(expected_result, result);
- if (!expected_result) {
- // Do not check the files if we expect to fail.
+ // There's nothing to check if the files are empty.
+ if (result == PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES) {
return;
}
@@ -1077,7 +1136,7 @@
LOG(INFO) << "ProfileMergeOk";
SetupProfiles(/*setup_ref*/ true);
- mergePackageProfiles(package_name_, "primary.prof", /*expected_result*/ true);
+ mergePackageProfiles(package_name_, "primary.prof", PROFILES_ANALYSIS_OPTIMIZE);
}
// The reference profile is created on the fly. We need to be able to
@@ -1086,14 +1145,15 @@
LOG(INFO) << "ProfileMergeOkNoReference";
SetupProfiles(/*setup_ref*/ false);
- mergePackageProfiles(package_name_, "primary.prof", /*expected_result*/ true);
+ mergePackageProfiles(package_name_, "primary.prof", PROFILES_ANALYSIS_OPTIMIZE);
}
TEST_F(ProfileTest, ProfileMergeFailWrongPackage) {
LOG(INFO) << "ProfileMergeFailWrongPackage";
SetupProfiles(/*setup_ref*/ true);
- mergePackageProfiles("not.there", "primary.prof", /*expected_result*/ false);
+ mergePackageProfiles("not.there", "primary.prof",
+ PROFILES_ANALYSIS_DONT_OPTIMIZE_EMPTY_PROFILES);
}
TEST_F(ProfileTest, ProfileDirOk) {
diff --git a/include/input/Input.h b/include/input/Input.h
index d4defa8..e8678d2 100644
--- a/include/input/Input.h
+++ b/include/input/Input.h
@@ -24,6 +24,9 @@
*/
#include <android/input.h>
+#ifdef __linux__
+#include <android/os/IInputConstants.h>
+#endif
#include <math.h>
#include <stdint.h>
#include <ui/Transform.h>
@@ -219,7 +222,16 @@
POLICY_FLAG_GESTURE = 0x00000008,
POLICY_FLAG_RAW_MASK = 0x0000ffff,
+#ifdef __linux__
+ POLICY_FLAG_INPUTFILTER_TRUSTED = android::os::IInputConstants::POLICY_FLAG_INPUTFILTER_TRUSTED,
+ POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY =
+ android::os::IInputConstants::POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY,
+#else
+ POLICY_FLAG_INPUTFILTER_TRUSTED = 0x10000,
+
+ POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY = 0x20000,
+#endif
/* These flags are set by the input dispatcher. */
// Indicates that the input event was injected.
diff --git a/include/input/InputDevice.h b/include/input/InputDevice.h
index 7f0324a..1955104 100644
--- a/include/input/InputDevice.h
+++ b/include/input/InputDevice.h
@@ -318,6 +318,8 @@
const std::string& name, InputDeviceConfigurationFileType type);
enum ReservedInputDeviceId : int32_t {
+ // Device id assigned to input events generated inside accessibility service
+ ACCESSIBILITY_DEVICE_ID = -2,
// Device id of a special "virtual" keyboard that is always present.
VIRTUAL_KEYBOARD_ID = -1,
// Device id of the "built-in" keyboard if there is one.
diff --git a/libs/binder/Android.bp b/libs/binder/Android.bp
index 91cd90d..ec697a0 100644
--- a/libs/binder/Android.bp
+++ b/libs/binder/Android.bp
@@ -68,8 +68,6 @@
cc_library {
name: "libbinder",
- version_script: "libbinder.map",
-
// for vndbinder
vendor_available: true,
vndk: {
@@ -135,6 +133,34 @@
enabled: false,
},
},
+ android_arm64: {
+ // b/189438896 Sampling PGO restricted to arm64, arm32 in sc-dev
+ pgo: {
+ sampling: true,
+ profile_file: "libbinder/libbinder.profdata",
+ },
+ // b/189438896 Add exported symbols in a map file for ABI stability
+ version_script: "libbinder.arm64.map",
+ target: {
+ vendor: {
+ version_script: "libbinder.arm64.vendor.map",
+ },
+ },
+ },
+ android_arm: {
+ // b/189438896 Sampling PGO restricted to arm64, arm32 in sc-dev
+ pgo: {
+ sampling: true,
+ profile_file: "libbinder/libbinder.profdata",
+ },
+ // b/189438896 Add exported symbols in a map file for ABI stability
+ version_script: "libbinder.arm32.map",
+ target: {
+ vendor: {
+ version_script: "libbinder.arm32.vendor.map",
+ },
+ },
+ },
vendor: {
exclude_srcs: libbinder_device_interface_sources,
},
@@ -206,11 +232,6 @@
"performance*",
"portability*",
],
-
- pgo: {
- sampling: true,
- profile_file: "libbinder/libbinder.profdata",
- },
}
// AIDL interface between libbinder and framework.jar
diff --git a/libs/binder/libbinder.arm32.map b/libs/binder/libbinder.arm32.map
new file mode 100644
index 0000000..64fdd91
--- /dev/null
+++ b/libs/binder/libbinder.arm32.map
@@ -0,0 +1,1615 @@
+LIBBINDER {
+ global:
+ getBinderKernelReferences;
+ kDefaultDriver;
+ _ZN7android10AllocationC1ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEEij;
+ _ZN7android10AllocationC2ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEEij;
+ _ZN7android10AllocationD0Ev;
+ _ZN7android10AllocationD1Ev;
+ _ZN7android10AllocationD2Ev;
+ _ZN7android10IInterface8asBinderEPKS0_;
+ _ZN7android10IInterface8asBinderERKNS_2spIS0_EE;
+ _ZN7android10IInterfaceC2Ev;
+ _ZN7android10IInterfaceD0Ev;
+ _ZN7android10IInterfaceD1Ev;
+ _ZN7android10IInterfaceD2Ev;
+ _ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEEij;
+ _ZN7android10MemoryBaseC2ERKNS_2spINS_11IMemoryHeapEEEij;
+ _ZN7android10MemoryBaseD0Ev;
+ _ZN7android10MemoryBaseD1Ev;
+ _ZN7android10MemoryBaseD2Ev;
+ _ZN7android10RpcAddress14readFromParcelERKNS_6ParcelE;
+ _ZN7android10RpcAddress15fromRawEmbeddedEPKNS_14RpcWireAddressE;
+ _ZN7android10RpcAddress4zeroEv;
+ _ZN7android10RpcAddress6uniqueEv;
+ _ZN7android10RpcAddressC1Ev;
+ _ZN7android10RpcAddressC2Ev;
+ _ZN7android10RpcAddressD1Ev;
+ _ZN7android10RpcAddressD2Ev;
+ _ZN7android10RpcSession12setForServerERKNS_2wpINS_9RpcServerEEEi;
+ _ZN7android10RpcSession13getRootObjectEv;
+ _ZN7android10RpcSession13sendDecStrongERKNS_10RpcAddressE;
+ _ZN7android10RpcSession15setupInetClientEPKcj;
+ _ZN7android10RpcSession15terminateLockedEv;
+ _ZN7android10RpcSession16setupVsockClientEjj;
+ _ZN7android10RpcSession17setupSocketClientERKNS_16RpcSocketAddressE;
+ _ZN7android10RpcSession19addClientConnectionENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession19ExclusiveConnection14findConnectionEiPNS_2spINS0_13RpcConnectionEEES5_RNSt3__16vectorIS4_NS6_9allocatorIS4_EEEEj;
+ _ZN7android10RpcSession19ExclusiveConnectionC1ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionC2ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionD1Ev;
+ _ZN7android10RpcSession19ExclusiveConnectionD2Ev;
+ _ZN7android10RpcSession19getRemoteMaxThreadsEPj;
+ _ZN7android10RpcSession20setupOneSocketClientERKNS_16RpcSocketAddressEi;
+ _ZN7android10RpcSession21setupUnixDomainClientEPKc;
+ _ZN7android10RpcSession22addNullDebuggingClientEv;
+ _ZN7android10RpcSession22removeServerConnectionERKNS_2spINS0_13RpcConnectionEEE;
+ _ZN7android10RpcSession24assignServerToThisThreadENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4joinENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4makeEv;
+ _ZN7android10RpcSession6readIdEv;
+ _ZN7android10RpcSession6serverEv;
+ _ZN7android10RpcSession7preJoinENSt3__16threadE;
+ _ZN7android10RpcSession8transactERKNS_10RpcAddressEjRKNS_6ParcelEPS4_j;
+ _ZN7android10RpcSessionC1Ev;
+ _ZN7android10RpcSessionC2Ev;
+ _ZN7android10RpcSessionD0Ev;
+ _ZN7android10RpcSessionD1Ev;
+ _ZN7android10RpcSessionD2Ev;
+ _ZN7android10TextOutputC2Ev;
+ _ZN7android10TextOutputD0Ev;
+ _ZN7android10TextOutputD1Ev;
+ _ZN7android10TextOutputD2Ev;
+ _ZN7android10zeroMemoryEPhj;
+ _ZN7android11BnInterfaceINS_11IMemoryHeapEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_14IShellCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_15IResultReceiverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_21IPermissionControllerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IClientCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IServiceManagerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os16IServiceCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm21IPackageManagerNativeEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm22IPackageChangeObserverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7IMemoryEE10onAsBinderEv;
+ _ZN7android11IMemoryHeap10descriptorE;
+ _ZN7android11IMemoryHeap11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android11IMemoryHeap12default_implE;
+ _ZN7android11IMemoryHeap14getDefaultImplEv;
+ _ZN7android11IMemoryHeap14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android11IMemoryHeapC2Ev;
+ _ZN7android11IMemoryHeapD0Ev;
+ _ZN7android11IMemoryHeapD1Ev;
+ _ZN7android11IMemoryHeapD2Ev;
+ _ZN7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android12BnMemoryHeapC2Ev;
+ _ZN7android12BnMemoryHeapD0Ev;
+ _ZN7android12BnMemoryHeapD1Ev;
+ _ZN7android12BnMemoryHeapD2Ev;
+ _ZN7android12BpMemoryHeapC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapD0Ev;
+ _ZN7android12BpMemoryHeapD1Ev;
+ _ZN7android12BpMemoryHeapD2Ev;
+ _ZN7android12gTextBuffersE;
+ _ZN7android12MemoryDealer10deallocateEj;
+ _ZN7android12MemoryDealer22getAllocationAlignmentEv;
+ _ZN7android12MemoryDealer8allocateEj;
+ _ZN7android12MemoryDealerC1EjPKcj;
+ _ZN7android12MemoryDealerC2EjPKcj;
+ _ZN7android12MemoryDealerD0Ev;
+ _ZN7android12MemoryDealerD1Ev;
+ _ZN7android12MemoryDealerD2Ev;
+ _ZN7android12printHexDataEiPKvjjijbPFvPvPKcES2_;
+ _ZN7android12ProcessState10selfOrNullEv;
+ _ZN7android12ProcessState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android12ProcessState13getDriverNameEv;
+ _ZN7android12ProcessState14initWithDriverEPKc;
+ _ZN7android12ProcessState15startThreadPoolEv;
+ _ZN7android12ProcessState16getContextObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android12ProcessState17spawnPooledThreadEb;
+ _ZN7android12ProcessState18giveThreadPoolNameEv;
+ _ZN7android12ProcessState18lookupHandleLockedEi;
+ _ZN7android12ProcessState18setCallRestrictionENS0_15CallRestrictionE;
+ _ZN7android12ProcessState19getKernelReferencesEjPj;
+ _ZN7android12ProcessState20becomeContextManagerEv;
+ _ZN7android12ProcessState20makeBinderThreadNameEv;
+ _ZN7android12ProcessState23getStrongProxyForHandleEi;
+ _ZN7android12ProcessState24getStrongRefCountForNodeERKNS_2spINS_8BpBinderEEE;
+ _ZN7android12ProcessState25enableOnewaySpamDetectionEb;
+ _ZN7android12ProcessState27setThreadPoolMaxThreadCountEj;
+ _ZN7android12ProcessState4initEPKcb;
+ _ZN7android12ProcessState4selfEv;
+ _ZN7android12ProcessStateC1EPKc;
+ _ZN7android12ProcessStateC2EPKc;
+ _ZN7android12ProcessStateD0Ev;
+ _ZN7android12ProcessStateD1Ev;
+ _ZN7android12ProcessStateD2Ev;
+ _ZN7android13printTypeCodeEjPFvPvPKcES0_;
+ _ZN7android14IPCThreadState10freeBufferEPNS_6ParcelEPKhjPKyj;
+ _ZN7android14IPCThreadState10selfOrNullEv;
+ _ZN7android14IPCThreadState11clearCallerEv;
+ _ZN7android14IPCThreadState11stopProcessEb;
+ _ZN7android14IPCThreadState12setupPollingEPi;
+ _ZN7android14IPCThreadState13decWeakHandleEi;
+ _ZN7android14IPCThreadState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android14IPCThreadState13flushCommandsEv;
+ _ZN7android14IPCThreadState13flushIfNeededEv;
+ _ZN7android14IPCThreadState13incWeakHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState14clearLastErrorEv;
+ _ZN7android14IPCThreadState14executeCommandEi;
+ _ZN7android14IPCThreadState14joinThreadPoolEb;
+ _ZN7android14IPCThreadState14talkWithDriverEb;
+ _ZN7android14IPCThreadState15decStrongHandleEi;
+ _ZN7android14IPCThreadState15incStrongHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState15waitForResponseEPNS_6ParcelEPi;
+ _ZN7android14IPCThreadState16threadDestructorEPv;
+ _ZN7android14IPCThreadState18setCallRestrictionENS_12ProcessState15CallRestrictionE;
+ _ZN7android14IPCThreadState19setStrictModePolicyEi;
+ _ZN7android14IPCThreadState19setTheContextObjectERKNS_2spINS_7BBinderEEE;
+ _ZN7android14IPCThreadState20clearCallingIdentityEv;
+ _ZN7android14IPCThreadState20getAndExecuteCommandEv;
+ _ZN7android14IPCThreadState20getProcessFreezeInfoEiPbS1_;
+ _ZN7android14IPCThreadState20handlePolledCommandsEv;
+ _ZN7android14IPCThreadState20processPendingDerefsEv;
+ _ZN7android14IPCThreadState20writeTransactionDataEijijRKNS_6ParcelEPi;
+ _ZN7android14IPCThreadState22attemptIncStrongHandleEi;
+ _ZN7android14IPCThreadState22clearCallingWorkSourceEv;
+ _ZN7android14IPCThreadState22clearDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState22processPostWriteDerefsEv;
+ _ZN7android14IPCThreadState22restoreCallingIdentityEx;
+ _ZN7android14IPCThreadState23setCallingWorkSourceUidEj;
+ _ZN7android14IPCThreadState24clearPropagateWorkSourceEv;
+ _ZN7android14IPCThreadState24requestDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState24restoreCallingWorkSourceEx;
+ _ZN7android14IPCThreadState25blockUntilThreadAvailableEv;
+ _ZN7android14IPCThreadState27disableBackgroundSchedulingEb;
+ _ZN7android14IPCThreadState28backgroundSchedulingDisabledEv;
+ _ZN7android14IPCThreadState29setLastTransactionBinderFlagsEi;
+ _ZN7android14IPCThreadState41setCallingWorkSourceUidWithoutPropagationEj;
+ _ZN7android14IPCThreadState4selfEv;
+ _ZN7android14IPCThreadState6freezeEibj;
+ _ZN7android14IPCThreadState7processEv;
+ _ZN7android14IPCThreadState8shutdownEv;
+ _ZN7android14IPCThreadState8transactEijRKNS_6ParcelEPS1_j;
+ _ZN7android14IPCThreadState9sendReplyERKNS_6ParcelEj;
+ _ZN7android14IPCThreadStateC1Ev;
+ _ZN7android14IPCThreadStateC2Ev;
+ _ZN7android14IPCThreadStateD1Ev;
+ _ZN7android14IPCThreadStateD2Ev;
+ _ZN7android14IShellCallback10descriptorE;
+ _ZN7android14IShellCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android14IShellCallback12default_implE;
+ _ZN7android14IShellCallback14getDefaultImplEv;
+ _ZN7android14IShellCallback14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android14IShellCallbackC2Ev;
+ _ZN7android14IShellCallbackD0Ev;
+ _ZN7android14IShellCallbackD1Ev;
+ _ZN7android14IShellCallbackD2Ev;
+ _ZN7android14MemoryHeapBase4initEiPvjiPKc;
+ _ZN7android14MemoryHeapBase5mapfdEibjl;
+ _ZN7android14MemoryHeapBase7disposeEv;
+ _ZN7android14MemoryHeapBaseC1Eijjl;
+ _ZN7android14MemoryHeapBaseC1EjjPKc;
+ _ZN7android14MemoryHeapBaseC1EPKcjj;
+ _ZN7android14MemoryHeapBaseC1Ev;
+ _ZN7android14MemoryHeapBaseC2Eijjl;
+ _ZN7android14MemoryHeapBaseC2EjjPKc;
+ _ZN7android14MemoryHeapBaseC2EPKcjj;
+ _ZN7android14MemoryHeapBaseC2Ev;
+ _ZN7android14MemoryHeapBaseD0Ev;
+ _ZN7android14MemoryHeapBaseD1Ev;
+ _ZN7android14MemoryHeapBaseD2Ev;
+ _ZN7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android15checkPermissionERKNS_8String16Eij;
+ _ZN7android15IResultReceiver10descriptorE;
+ _ZN7android15IResultReceiver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android15IResultReceiver12default_implE;
+ _ZN7android15IResultReceiver14getDefaultImplEv;
+ _ZN7android15IResultReceiver14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android15IResultReceiverC2Ev;
+ _ZN7android15IResultReceiverD0Ev;
+ _ZN7android15IResultReceiverD1Ev;
+ _ZN7android15IResultReceiverD2Ev;
+ _ZN7android15IServiceManagerC2Ev;
+ _ZN7android15IServiceManagerD0Ev;
+ _ZN7android15IServiceManagerD1Ev;
+ _ZN7android15IServiceManagerD2Ev;
+ _ZN7android15PermissionCache10purgeCacheEv;
+ _ZN7android15PermissionCache15checkPermissionERKNS_8String16Eij;
+ _ZN7android15PermissionCache22checkCallingPermissionERKNS_8String16E;
+ _ZN7android15PermissionCache22checkCallingPermissionERKNS_8String16EPiS4_;
+ _ZN7android15PermissionCache5cacheERKNS_8String16Ejb;
+ _ZN7android15PermissionCache5purgeEv;
+ _ZN7android15PermissionCacheC1Ev;
+ _ZN7android15PermissionCacheC2Ev;
+ _ZN7android15stringForIndentEi;
+ _ZN7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android18BufferedTextOutput10moveIndentEi;
+ _ZN7android18BufferedTextOutput10pushBundleEv;
+ _ZN7android18BufferedTextOutput5printEPKcj;
+ _ZN7android18BufferedTextOutput9popBundleEv;
+ _ZN7android18BufferedTextOutputC2Ej;
+ _ZN7android18BufferedTextOutputD0Ev;
+ _ZN7android18BufferedTextOutputD1Ev;
+ _ZN7android18BufferedTextOutputD2Ev;
+ _ZN7android18ServiceManagerShim10addServiceERKNS_8String16ERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android18ServiceManagerShim10isDeclaredERKNS_8String16E;
+ _ZN7android18ServiceManagerShim12listServicesEi;
+ _ZN7android18ServiceManagerShim14waitForServiceERKNS_8String16E;
+ _ZN7android18ServiceManagerShim16updatableViaApexERKNS_8String16E;
+ _ZN7android18ServiceManagerShim20getDeclaredInstancesERKNS_8String16E;
+ _ZN7android18ServiceManagerShimC1ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18ServiceManagerShimC2ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18the_context_objectE;
+ _ZN7android20PermissionController10getServiceEv;
+ _ZN7android20PermissionController13getPackageUidERKNS_8String16Ei;
+ _ZN7android20PermissionController15checkPermissionERKNS_8String16Eii;
+ _ZN7android20PermissionController17getPackagesForUidEjRNS_6VectorINS_8String16EEE;
+ _ZN7android20PermissionController19isRuntimePermissionERKNS_8String16E;
+ _ZN7android20PermissionController6noteOpERKNS_8String16EiS3_;
+ _ZN7android20PermissionControllerC1Ev;
+ _ZN7android20PermissionControllerC2Ev;
+ _ZN7android21defaultServiceManagerEv;
+ _ZN7android21IPermissionController10descriptorE;
+ _ZN7android21IPermissionController11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android21IPermissionController12default_implE;
+ _ZN7android21IPermissionController14getDefaultImplEv;
+ _ZN7android21IPermissionController14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android21IPermissionControllerC2Ev;
+ _ZN7android21IPermissionControllerD0Ev;
+ _ZN7android21IPermissionControllerD1Ev;
+ _ZN7android21IPermissionControllerD2Ev;
+ _ZN7android22BnPermissionController10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android22checkCallingPermissionERKNS_8String16E;
+ _ZN7android22checkCallingPermissionERKNS_8String16EPiS3_;
+ _ZN7android22SimpleBestFitAllocator10deallocateEj;
+ _ZN7android22SimpleBestFitAllocator12kMemoryAlignE;
+ _ZN7android22SimpleBestFitAllocator5allocEjj;
+ _ZN7android22SimpleBestFitAllocator7deallocEj;
+ _ZN7android22SimpleBestFitAllocator8allocateEjj;
+ _ZN7android22SimpleBestFitAllocatorC1Ej;
+ _ZN7android22SimpleBestFitAllocatorC2Ej;
+ _ZN7android22SimpleBestFitAllocatorD1Ev;
+ _ZN7android22SimpleBestFitAllocatorD2Ev;
+ _ZN7android24setDefaultServiceManagerERKNS_2spINS_15IServiceManagerEEE;
+ _ZN7android2os15IClientCallback10descriptorE;
+ _ZN7android2os15IClientCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IClientCallback12default_implE;
+ _ZN7android2os15IClientCallback14getDefaultImplEv;
+ _ZN7android2os15IClientCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IClientCallbackC2Ev;
+ _ZN7android2os15IClientCallbackD0Ev;
+ _ZN7android2os15IClientCallbackD1Ev;
+ _ZN7android2os15IClientCallbackD2Ev;
+ _ZN7android2os15IServiceManager10descriptorE;
+ _ZN7android2os15IServiceManager11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IServiceManager12default_implE;
+ _ZN7android2os15IServiceManager14getDefaultImplEv;
+ _ZN7android2os15IServiceManager14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IServiceManagerC2Ev;
+ _ZN7android2os15IServiceManagerD0Ev;
+ _ZN7android2os15IServiceManagerD1Ev;
+ _ZN7android2os15IServiceManagerD2Ev;
+ _ZN7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnClientCallbackC2Ev;
+ _ZN7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnServiceManagerC2Ev;
+ _ZN7android2os16BpClientCallback9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android2os16BpClientCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpClientCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10addServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android2os16BpServiceManager10getServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10isDeclaredERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPb;
+ _ZN7android2os16BpServiceManager12checkServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager12listServicesEiPNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE;
+ _ZN7android2os16BpServiceManager16updatableViaApexERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_8optionalIS8_EE;
+ _ZN7android2os16BpServiceManager19getServiceDebugInfoEPNSt3__16vectorINS0_16ServiceDebugInfoENS2_9allocatorIS4_EEEE;
+ _ZN7android2os16BpServiceManager20getDeclaredInstancesERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_6vectorIS8_NS6_IS8_EEEE;
+ _ZN7android2os16BpServiceManager20tryUnregisterServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager22registerClientCallbackERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEERKNSB_INS0_15IClientCallbackEEE;
+ _ZN7android2os16BpServiceManager24registerForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManager26unregisterForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManagerC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManagerC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback10descriptorE;
+ _ZN7android2os16IServiceCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback12default_implE;
+ _ZN7android2os16IServiceCallback14getDefaultImplEv;
+ _ZN7android2os16IServiceCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os16IServiceCallbackC2Ev;
+ _ZN7android2os16IServiceCallbackD0Ev;
+ _ZN7android2os16IServiceCallbackD1Ev;
+ _ZN7android2os16IServiceCallbackD2Ev;
+ _ZN7android2os16ParcelableHolder14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os16ServiceDebugInfo14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os17BnServiceCallbackC2Ev;
+ _ZN7android2os17BpServiceCallback14onRegistrationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17PersistableBundle10putBooleanERKNS_8String16Eb;
+ _ZN7android2os17PersistableBundle12putIntVectorERKNS_8String16ERKNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZN7android2os17PersistableBundle13putLongVectorERKNS_8String16ERKNSt3__16vectorIxNS5_9allocatorIxEEEE;
+ _ZN7android2os17PersistableBundle14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17PersistableBundle15putDoubleVectorERKNS_8String16ERKNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZN7android2os17PersistableBundle15putStringVectorERKNS_8String16ERKNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZN7android2os17PersistableBundle16putBooleanVectorERKNS_8String16ERKNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZN7android2os17PersistableBundle19readFromParcelInnerEPKNS_6ParcelEj;
+ _ZN7android2os17PersistableBundle20putPersistableBundleERKNS_8String16ERKS1_;
+ _ZN7android2os17PersistableBundle5eraseERKNS_8String16E;
+ _ZN7android2os17PersistableBundle6putIntERKNS_8String16Ei;
+ _ZN7android2os17PersistableBundle7putLongERKNS_8String16Ex;
+ _ZN7android2os17PersistableBundle9putDoubleERKNS_8String16Ed;
+ _ZN7android2os17PersistableBundle9putStringERKNS_8String16ES4_;
+ _ZN7android2os20ParcelFileDescriptor14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os20ParcelFileDescriptorC1ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC1Ev;
+ _ZN7android2os20ParcelFileDescriptorC2ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC2Ev;
+ _ZN7android2os20ParcelFileDescriptorD0Ev;
+ _ZN7android2os20ParcelFileDescriptorD1Ev;
+ _ZN7android2os20ParcelFileDescriptorD2Ev;
+ _ZN7android2spINS_21IPermissionControllerEED2Ev;
+ _ZN7android2spINS_7BBinderEED2Ev;
+ _ZN7android2spINS_7IBinderEEaSEOS2_;
+ _ZN7android2spINS_7IBinderEEaSERKS2_;
+ _ZN7android2spINS_9HeapCacheEED2Ev;
+ _ZN7android4aerrE;
+ _ZN7android4alogE;
+ _ZN7android4aoutE;
+ _ZN7android6binder20LazyServiceRegistrar10reRegisterEv;
+ _ZN7android6binder20LazyServiceRegistrar11getInstanceEv;
+ _ZN7android6binder20LazyServiceRegistrar12forcePersistEb;
+ _ZN7android6binder20LazyServiceRegistrar13tryUnregisterEv;
+ _ZN7android6binder20LazyServiceRegistrar15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEbi;
+ _ZN7android6binder20LazyServiceRegistrar25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder20LazyServiceRegistrarC1Ev;
+ _ZN7android6binder20LazyServiceRegistrarC2Ev;
+ _ZN7android6binder6Status11fromStatusTEi;
+ _ZN7android6binder6Status12setExceptionEiRKNS_7String8E;
+ _ZN7android6binder6Status14readFromParcelERKNS_6ParcelE;
+ _ZN7android6binder6Status14setFromStatusTEi;
+ _ZN7android6binder6Status17exceptionToStringEi;
+ _ZN7android6binder6Status17fromExceptionCodeEi;
+ _ZN7android6binder6Status17fromExceptionCodeEiPKc;
+ _ZN7android6binder6Status17fromExceptionCodeEiRKNS_7String8E;
+ _ZN7android6binder6Status23setServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEi;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiPKc;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status2okEv;
+ _ZN7android6binder6StatusC1Eii;
+ _ZN7android6binder6StatusC1EiiRKNS_7String8E;
+ _ZN7android6binder6StatusC2Eii;
+ _ZN7android6binder6StatusC2EiiRKNS_7String8E;
+ _ZN7android6binder8internal21ClientCounterCallback10reRegisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback12forcePersistEb;
+ _ZN7android6binder8internal21ClientCounterCallback13tryUnregisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal21ClientCounterCallback25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal21ClientCounterCallbackC1Ev;
+ _ZN7android6binder8internal21ClientCounterCallbackC2Ev;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl10reRegisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl11tryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl12forcePersistEb;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl13tryUnregisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl16maybeTryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl23assertRegisteredServiceERKNS_2spINS_7IBinderEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android6Parcel10appendFromEPKS0_jj;
+ _ZN7android6Parcel10markForRpcERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android6Parcel10writeFloatEf;
+ _ZN7android6Parcel10writeInt32Ei;
+ _ZN7android6Parcel10writeInt64Ex;
+ _ZN7android6Parcel11compareDataERKS0_;
+ _ZN7android6Parcel11finishWriteEj;
+ _ZN7android6Parcel11setDataSizeEj;
+ _ZN7android6Parcel11writeDoubleEd;
+ _ZN7android6Parcel11writeObjectERK18flat_binder_objectb;
+ _ZN7android6Parcel11writeUint32Ej;
+ _ZN7android6Parcel11writeUint64Ey;
+ _ZN7android6Parcel12pushAllowFdsEb;
+ _ZN7android6Parcel12restartWriteEj;
+ _ZN7android6Parcel12writeCStringEPKc;
+ _ZN7android6Parcel12writeInplaceEj;
+ _ZN7android6Parcel12writePointerEj;
+ _ZN7android6Parcel12writeString8EPKcj;
+ _ZN7android6Parcel12writeString8ERKNS_7String8E;
+ _ZN7android6Parcel13continueWriteEj;
+ _ZN7android6Parcel13flattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13markForBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13writeString16EPKDsj;
+ _ZN7android6Parcel13writeString16ERKNS_8String16E;
+ _ZN7android6Parcel13writeString16ERKNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZN7android6Parcel13writeString16ERKNSt3__18optionalINS_8String16EEE;
+ _ZN7android6Parcel13writeUnpaddedEPKvj;
+ _ZN7android6Parcel14acquireObjectsEv;
+ _ZN7android6Parcel14freeDataNoInitEv;
+ _ZN7android6Parcel14releaseObjectsEv;
+ _ZN7android6Parcel14writeByteArrayEjPKh;
+ _ZN7android6Parcel15restoreAllowFdsEb;
+ _ZN7android6Parcel15setDataCapacityEj;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZN7android6Parcel15writeInt32ArrayEjPKi;
+ _ZN7android6Parcel15writeParcelableERKNS_10ParcelableE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__110unique_ptrINS1_6vectorIxNS1_9allocatorIxEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__16vectorIxNS1_9allocatorIxEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__18optionalINS1_6vectorIxNS1_9allocatorIxEEEEEE;
+ _ZN7android6Parcel16writeNoExceptionEv;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZN7android6Parcel17writeNativeHandleEPK13native_handle;
+ _ZN7android6Parcel17writeStrongBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__110unique_ptrINS1_6vectorIyNS1_9allocatorIyEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__16vectorIyNS1_9allocatorIyEEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__18optionalINS1_6vectorIyNS1_9allocatorIyEEEEEE;
+ _ZN7android6Parcel18getGlobalAllocSizeEv;
+ _ZN7android6Parcel19finishFlattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel19getGlobalAllocCountEv;
+ _ZN7android6Parcel19ipcSetDataReferenceEPKhjPKyjPFvPS0_S2_jS4_jE;
+ _ZN7android6Parcel19writeFileDescriptorEib;
+ _ZN7android6Parcel19writeInterfaceTokenEPKDsj;
+ _ZN7android6Parcel19writeInterfaceTokenERKNS_8String16E;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZN7android6Parcel20closeFileDescriptorsEv;
+ _ZN7android6Parcel22writeDupFileDescriptorEi;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZN7android6Parcel25writeParcelFileDescriptorEib;
+ _ZN7android6Parcel25writeUniqueFileDescriptorERKNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android6Parcel26writeRawNullableParcelableEPKNS_10ParcelableE;
+ _ZN7android6Parcel27replaceCallingWorkSourceUidEj;
+ _ZN7android6Parcel28writeDupParcelFileDescriptorEi;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZN7android6Parcel35writeDupImmutableBlobFileDescriptorEi;
+ _ZN7android6Parcel4Blob4initEiPvjb;
+ _ZN7android6Parcel4Blob5clearEv;
+ _ZN7android6Parcel4Blob7releaseEv;
+ _ZN7android6Parcel4BlobC1Ev;
+ _ZN7android6Parcel4BlobC2Ev;
+ _ZN7android6Parcel4BlobD1Ev;
+ _ZN7android6Parcel4BlobD2Ev;
+ _ZN7android6Parcel5writeEPKvj;
+ _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE;
+ _ZN7android6Parcel7setDataEPKhj;
+ _ZN7android6Parcel8freeDataEv;
+ _ZN7android6Parcel8growDataEj;
+ _ZN7android6Parcel8setErrorEi;
+ _ZN7android6Parcel9initStateEv;
+ _ZN7android6Parcel9writeBlobEjbPNS0_12WritableBlobE;
+ _ZN7android6Parcel9writeBoolEb;
+ _ZN7android6Parcel9writeByteEa;
+ _ZN7android6Parcel9writeCharEDs;
+ _ZN7android6ParcelC1Ev;
+ _ZN7android6ParcelC2Ev;
+ _ZN7android6ParcelD1Ev;
+ _ZN7android6ParcelD2Ev;
+ _ZN7android7BBinder10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinder10pingBinderEv;
+ _ZN7android7BBinder11getDebugPidEv;
+ _ZN7android7BBinder11isInheritRtEv;
+ _ZN7android7BBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android7BBinder11localBinderEv;
+ _ZN7android7BBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android7BBinder12detachObjectEPKv;
+ _ZN7android7BBinder12getExtensionEv;
+ _ZN7android7BBinder12setExtensionERKNS_2spINS_7IBinderEEE;
+ _ZN7android7BBinder12setInheritRtEb;
+ _ZN7android7BBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android7BBinder15isRequestingSidEv;
+ _ZN7android7BBinder16setRequestingSidEb;
+ _ZN7android7BBinder17getOrCreateExtrasEv;
+ _ZN7android7BBinder21getMinSchedulerPolicyEv;
+ _ZN7android7BBinder21setMinSchedulerPolicyEii;
+ _ZN7android7BBinder23getMinSchedulerPriorityEv;
+ _ZN7android7BBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinderC1Ev;
+ _ZN7android7BBinderC2Ev;
+ _ZN7android7BBinderD0Ev;
+ _ZN7android7BBinderD1Ev;
+ _ZN7android7BBinderD2Ev;
+ _ZN7android7content2pm18PackageChangeEvent14readFromParcelEPKNS_6ParcelE;
+ _ZN7android7content2pm21IPackageManagerNative10descriptorE;
+ _ZN7android7content2pm21IPackageManagerNative11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm21IPackageManagerNative12default_implE;
+ _ZN7android7content2pm21IPackageManagerNative14getDefaultImplEv;
+ _ZN7android7content2pm21IPackageManagerNative14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm21IPackageManagerNativeC2Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD2Ev;
+ _ZN7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm22BnPackageManagerNativeC2Ev;
+ _ZN7android7content2pm22BpPackageManagerNative14getAllPackagesEPNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative15getNamesForUidsERKNSt3__16vectorIiNS3_9allocatorIiEEEEPNS4_INS3_12basic_stringIcNS3_11char_traitsIcEENS5_IcEEEENS5_ISE_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative16getLocationFlagsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPi;
+ _ZN7android7content2pm22BpPackageManagerNative16hasSystemFeatureERKNS_8String16EiPb;
+ _ZN7android7content2pm22BpPackageManagerNative19isPackageDebuggableERKNS_8String16EPb;
+ _ZN7android7content2pm22BpPackageManagerNative22getInstallerForPackageERKNS_8String16EPNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative24getVersionCodeForPackageERKNS_8String16EPx;
+ _ZN7android7content2pm22BpPackageManagerNative27hasSha256SigningCertificateERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_6vectorIhNS7_IhEEEEPb;
+ _ZN7android7content2pm22BpPackageManagerNative28getModuleMetadataPackageNameEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29getTargetSdkVersionForPackageERKNS_8String16EPi;
+ _ZN7android7content2pm22BpPackageManagerNative29isAudioPlaybackCaptureAllowedERKNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEPNS4_IbNS8_IbEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29registerPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNative31unregisterPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver10descriptorE;
+ _ZN7android7content2pm22IPackageChangeObserver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver12default_implE;
+ _ZN7android7content2pm22IPackageChangeObserver14getDefaultImplEv;
+ _ZN7android7content2pm22IPackageChangeObserver14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm22IPackageChangeObserverC2Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD2Ev;
+ _ZN7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm23BnPackageChangeObserverC2Ev;
+ _ZN7android7content2pm23BpPackageChangeObserver16onPackageChangedERKNS1_18PackageChangeEventE;
+ _ZN7android7content2pm23BpPackageChangeObserverC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm23BpPackageChangeObserverC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7HexDumpC1EPKvjj;
+ _ZN7android7HexDumpC2EPKvjj;
+ _ZN7android7IBinder11getDebugPidEPi;
+ _ZN7android7IBinder11localBinderEv;
+ _ZN7android7IBinder12getExtensionEPNS_2spIS0_EE;
+ _ZN7android7IBinder12remoteBinderEv;
+ _ZN7android7IBinder12shellCommandERKNS_2spIS0_EEiiiRNS_6VectorINS_8String16EEERKNS1_INS_14IShellCallbackEEERKNS1_INS_15IResultReceiverEEE;
+ _ZN7android7IBinder19queryLocalInterfaceERKNS_8String16E;
+ _ZN7android7IBinderC2Ev;
+ _ZN7android7IBinderD0Ev;
+ _ZN7android7IBinderD1Ev;
+ _ZN7android7IBinderD2Ev;
+ _ZN7android7IMemory10descriptorE;
+ _ZN7android7IMemory11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7IMemory12default_implE;
+ _ZN7android7IMemory14getDefaultImplEv;
+ _ZN7android7IMemory14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android7IMemoryC2Ev;
+ _ZN7android7IMemoryD0Ev;
+ _ZN7android7IMemoryD1Ev;
+ _ZN7android7IMemoryD2Ev;
+ _ZN7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BnMemoryC2Ev;
+ _ZN7android8BnMemoryD0Ev;
+ _ZN7android8BnMemoryD1Ev;
+ _ZN7android8BnMemoryD2Ev;
+ _ZN7android8BpBinder10onFirstRefEv;
+ _ZN7android8BpBinder10pingBinderEv;
+ _ZN7android8BpBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android8BpBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android8BpBinder12detachObjectEPKv;
+ _ZN7android8BpBinder12remoteBinderEv;
+ _ZN7android8BpBinder12sendObituaryEv;
+ _ZN7android8BpBinder12sTrackingMapE;
+ _ZN7android8BpBinder13getCountByUidERNS_6VectorIjEES3_;
+ _ZN7android8BpBinder13ObjectManager4killEv;
+ _ZN7android8BpBinder13ObjectManager6attachEPKvPvS4_PFvS3_S4_S4_E;
+ _ZN7android8BpBinder13ObjectManager6detachEPKv;
+ _ZN7android8BpBinder13ObjectManagerC1Ev;
+ _ZN7android8BpBinder13ObjectManagerC2Ev;
+ _ZN7android8BpBinder13ObjectManagerD1Ev;
+ _ZN7android8BpBinder13ObjectManagerD2Ev;
+ _ZN7android8BpBinder13sTrackingLockE;
+ _ZN7android8BpBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android8BpBinder14reportOneDeathERKNS0_8ObituaryE;
+ _ZN7android8BpBinder14sLimitCallbackE;
+ _ZN7android8BpBinder15onLastStrongRefEPKv;
+ _ZN7android8BpBinder15sNumTrackedUidsE;
+ _ZN7android8BpBinder16enableCountByUidEv;
+ _ZN7android8BpBinder16setLimitCallbackEPFviE;
+ _ZN7android8BpBinder17disableCountByUidEv;
+ _ZN7android8BpBinder18sCountByUidEnabledE;
+ _ZN7android8BpBinder19getBinderProxyCountEj;
+ _ZN7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZN7android8BpBinder20setCountByUidEnabledEb;
+ _ZN7android8BpBinder26sBinderProxyThrottleCreateE;
+ _ZN7android8BpBinder29sBinderProxyCountLowWatermarkE;
+ _ZN7android8BpBinder29setBinderProxyCountWatermarksEii;
+ _ZN7android8BpBinder30sBinderProxyCountHighWatermarkE;
+ _ZN7android8BpBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android8BpBinder6createEi;
+ _ZN7android8BpBinder6createERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8BpBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BpBinderC1EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC1EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC1EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderC2EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC2EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC2EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderD0Ev;
+ _ZN7android8BpBinderD1Ev;
+ _ZN7android8BpBinderD2Ev;
+ _ZN7android8BpMemoryC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryD0Ev;
+ _ZN7android8BpMemoryD1Ev;
+ _ZN7android8BpMemoryD2Ev;
+ _ZN7android8internal9Stability11getCategoryEPNS_7IBinderE;
+ _ZN7android8internal9Stability11levelStringENS1_5LevelE;
+ _ZN7android8internal9Stability13getLocalLevelEv;
+ _ZN7android8internal9Stability15isDeclaredLevelENS1_5LevelE;
+ _ZN7android8internal9Stability17debugLogStabilityERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability19markCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability22tryMarkCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability24requiresVintfDeclarationERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability25forceDowngradeToStabilityERKNS_2spINS_7IBinderEEENS1_5LevelE;
+ _ZN7android8internal9Stability30forceDowngradeToLocalStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToSystemStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToVendorStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability5checkENS1_8CategoryENS1_5LevelE;
+ _ZN7android8internal9Stability7setReprEPNS_7IBinderEij;
+ _ZN7android8internal9Stability8Category11debugStringEv;
+ _ZN7android8internal9Stability8markVndkEPNS_7IBinderE;
+ _ZN7android8internal9Stability9markVintfEPNS_7IBinderE;
+ _ZN7android8RpcState11CommandDataC1Ej;
+ _ZN7android8RpcState11CommandDataC2Ej;
+ _ZN7android8RpcState12countBindersEv;
+ _ZN7android8RpcState12getSessionIdERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPi;
+ _ZN7android8RpcState12waitForReplyERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPNS_6ParcelE;
+ _ZN7android8RpcState13getMaxThreadsERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPj;
+ _ZN7android8RpcState13getRootObjectERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState13sendDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState15onBinderLeavingERKNS_2spINS_10RpcSessionEEERKNS1_INS_7IBinderEEEPNS_10RpcAddressE;
+ _ZN7android8RpcState15processTransactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState16onBinderEnteringERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState16processDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState20getAndExecuteCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState20processServerCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState23processTransactInternalERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEENS0_11CommandDataE;
+ _ZN7android8RpcState4dumpEv;
+ _ZN7android8RpcState6rpcRecERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPvj;
+ _ZN7android8RpcState7rpcSendERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPKvj;
+ _ZN7android8RpcState8transactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressEjRKNS_6ParcelERKNS_2spINS_10RpcSessionEEEPSA_j;
+ _ZN7android8RpcState9terminateEv;
+ _ZN7android8RpcStateC1Ev;
+ _ZN7android8RpcStateC2Ev;
+ _ZN7android8RpcStateD1Ev;
+ _ZN7android8RpcStateD2Ev;
+ _ZN7android9BpRefBase10onFirstRefEv;
+ _ZN7android9BpRefBase15onLastStrongRefEPKv;
+ _ZN7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZN7android9BpRefBaseC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseD0Ev;
+ _ZN7android9BpRefBaseD1Ev;
+ _ZN7android9BpRefBaseD2Ev;
+ _ZN7android9HeapCache10binderDiedERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCache10dump_heapsEv;
+ _ZN7android9HeapCache8get_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9find_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCacheC1Ev;
+ _ZN7android9HeapCacheC2Ev;
+ _ZN7android9HeapCacheD0Ev;
+ _ZN7android9HeapCacheD1Ev;
+ _ZN7android9HeapCacheD2Ev;
+ _ZN7android9hexStringEPKvj;
+ _ZN7android9RpcServer12listSessionsEv;
+ _ZN7android9RpcServer13getMaxThreadsEv;
+ _ZN7android9RpcServer13getRootObjectEv;
+ _ZN7android9RpcServer13releaseServerEv;
+ _ZN7android9RpcServer13setMaxThreadsEj;
+ _ZN7android9RpcServer13setRootObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android9RpcServer15setupInetServerEjPj;
+ _ZN7android9RpcServer16setupVsockServerEj;
+ _ZN7android9RpcServer17setRootObjectWeakERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9RpcServer17setupSocketServerERKNS_16RpcSocketAddressE;
+ _ZN7android9RpcServer19establishConnectionEONS_2spIS0_EENS_4base14unique_fd_implINS4_13DefaultCloserEEE;
+ _ZN7android9RpcServer19setupExternalServerENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android9RpcServer20onSessionTerminatingERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android9RpcServer21setupUnixDomainServerEPKc;
+ _ZN7android9RpcServer24numUninitializedSessionsEv;
+ _ZN7android9RpcServer4joinEv;
+ _ZN7android9RpcServer4makeEv;
+ _ZN7android9RpcServer61iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProductionEv;
+ _ZN7android9RpcServer9acceptOneEv;
+ _ZN7android9RpcServer9hasServerEv;
+ _ZN7android9RpcServerC1Ev;
+ _ZN7android9RpcServerC2Ev;
+ _ZN7android9RpcServerD0Ev;
+ _ZN7android9RpcServerD1Ev;
+ _ZN7android9RpcServerD2Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEE11getInstanceEv;
+ _ZN7android9SingletonINS_15PermissionCacheEE11hasInstanceEv;
+ _ZN7android9SingletonINS_15PermissionCacheEE5sLockE;
+ _ZN7android9SingletonINS_15PermissionCacheEE9sInstanceE;
+ _ZN7android9SingletonINS_15PermissionCacheEEC1Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEEC2Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEED1Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEED2Ev;
+ _ZN7androidlsERNS_10TextOutputERKNS_7HexDumpE;
+ _ZN7androidlsERNS_10TextOutputERKNS_8TypeCodeE;
+ _ZN7androidlsIA15_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA24_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA2_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA34_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA3_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA43_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA4_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA5_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA8_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA9_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIjEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEERNS_10TextOutputES9_RKT_;
+ _ZN7androidlsIPcEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIPvEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIyEERNS_10TextOutputES2_RKT_;
+ _ZNK7android10MemoryBase9getMemoryEPiPj;
+ _ZNK7android10RpcAddress13writeToParcelEPNS_6ParcelE;
+ _ZNK7android10RpcAddress15viewRawEmbeddedEv;
+ _ZNK7android10RpcAddress6isZeroEv;
+ _ZNK7android10RpcAddress8toStringEv;
+ _ZNK7android10RpcAddressltERKS0_;
+ _ZNK7android11IMemoryHeap22getInterfaceDescriptorEv;
+ _ZNK7android12BpMemoryHeap12assertMappedEv;
+ _ZNK7android12BpMemoryHeap18assertReallyMappedEv;
+ _ZNK7android12BpMemoryHeap7getBaseEv;
+ _ZNK7android12BpMemoryHeap7getSizeEv;
+ _ZNK7android12BpMemoryHeap8getFlagsEv;
+ _ZNK7android12BpMemoryHeap9getHeapIDEv;
+ _ZNK7android12BpMemoryHeap9getOffsetEv;
+ _ZNK7android12MemoryDealer4dumpEPKc;
+ _ZNK7android12MemoryDealer4heapEv;
+ _ZNK7android12MemoryDealer9allocatorEv;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE10do_compareEPKvS5_;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE15do_move_forwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE16do_move_backwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE7do_copyEPvPKvj;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE8do_splatEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_compareEPKvSA_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE15do_move_forwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE16do_move_backwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE7do_copyEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE8do_splatEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_compareES3_S3_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE15do_move_forwardEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE16do_move_backwardEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE7do_copyEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE8do_splatEPvS3_j;
+ _ZNK7android12SortedVectorINS_8String16EE10do_compareEPKvS4_;
+ _ZNK7android12SortedVectorINS_8String16EE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_8String16EE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_8String16EE15do_move_forwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_8String16EE16do_move_backwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_8String16EE7do_copyEPvPKvj;
+ _ZNK7android12SortedVectorINS_8String16EE8do_splatEPvPKvj;
+ _ZNK7android14IPCThreadState13getCallingPidEv;
+ _ZNK7android14IPCThreadState13getCallingSidEv;
+ _ZNK7android14IPCThreadState13getCallingUidEv;
+ _ZNK7android14IPCThreadState18getCallRestrictionEv;
+ _ZNK7android14IPCThreadState19getStrictModePolicyEv;
+ _ZNK7android14IPCThreadState22getServingStackPointerEv;
+ _ZNK7android14IPCThreadState23getCallingWorkSourceUidEv;
+ _ZNK7android14IPCThreadState25shouldPropagateWorkSourceEv;
+ _ZNK7android14IPCThreadState29getLastTransactionBinderFlagsEv;
+ _ZNK7android14IShellCallback22getInterfaceDescriptorEv;
+ _ZNK7android14MemoryHeapBase7getBaseEv;
+ _ZNK7android14MemoryHeapBase7getSizeEv;
+ _ZNK7android14MemoryHeapBase8getFlagsEv;
+ _ZNK7android14MemoryHeapBase9getDeviceEv;
+ _ZNK7android14MemoryHeapBase9getHeapIDEv;
+ _ZNK7android14MemoryHeapBase9getOffsetEv;
+ _ZNK7android15IResultReceiver22getInterfaceDescriptorEv;
+ _ZNK7android15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android15PermissionCache5checkEPbRKNS_8String16Ej;
+ _ZNK7android18BufferedTextOutput9getBufferEv;
+ _ZNK7android18ServiceManagerShim10getServiceERKNS_8String16E;
+ _ZNK7android18ServiceManagerShim12checkServiceERKNS_8String16E;
+ _ZNK7android21IPermissionController22getInterfaceDescriptorEv;
+ _ZNK7android22SimpleBestFitAllocator4dumpEPKc;
+ _ZNK7android22SimpleBestFitAllocator4dumpERNS_7String8EPKc;
+ _ZNK7android22SimpleBestFitAllocator4sizeEv;
+ _ZNK7android22SimpleBestFitAllocator6dump_lEPKc;
+ _ZNK7android22SimpleBestFitAllocator6dump_lERNS_7String8EPKc;
+ _ZNK7android2os15IClientCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android2os16IServiceCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os16ParcelableHolder13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os16ServiceDebugInfo13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle10getBooleanERKNS_8String16EPb;
+ _ZNK7android2os17PersistableBundle10getIntKeysEv;
+ _ZNK7android2os17PersistableBundle11getLongKeysEv;
+ _ZNK7android2os17PersistableBundle12getIntVectorERKNS_8String16EPNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZNK7android2os17PersistableBundle13getDoubleKeysEv;
+ _ZNK7android2os17PersistableBundle13getLongVectorERKNS_8String16EPNSt3__16vectorIxNS5_9allocatorIxEEEE;
+ _ZNK7android2os17PersistableBundle13getStringKeysEv;
+ _ZNK7android2os17PersistableBundle13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle14getBooleanKeysEv;
+ _ZNK7android2os17PersistableBundle15getDoubleVectorERKNS_8String16EPNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZNK7android2os17PersistableBundle15getStringVectorERKNS_8String16EPNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZNK7android2os17PersistableBundle16getBooleanVectorERKNS_8String16EPNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZNK7android2os17PersistableBundle16getIntVectorKeysEv;
+ _ZNK7android2os17PersistableBundle17getLongVectorKeysEv;
+ _ZNK7android2os17PersistableBundle18writeToParcelInnerEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle19getDoubleVectorKeysEv;
+ _ZNK7android2os17PersistableBundle19getStringVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getBooleanVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getPersistableBundleERKNS_8String16EPS1_;
+ _ZNK7android2os17PersistableBundle24getPersistableBundleKeysEv;
+ _ZNK7android2os17PersistableBundle4sizeEv;
+ _ZNK7android2os17PersistableBundle5emptyEv;
+ _ZNK7android2os17PersistableBundle6getIntERKNS_8String16EPi;
+ _ZNK7android2os17PersistableBundle7getLongERKNS_8String16EPx;
+ _ZNK7android2os17PersistableBundle9getDoubleERKNS_8String16EPd;
+ _ZNK7android2os17PersistableBundle9getStringERKNS_8String16EPS2_;
+ _ZNK7android2os20ParcelFileDescriptor13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status9toString8Ev;
+ _ZNK7android6Parcel10errorCheckEv;
+ _ZNK7android6Parcel10ipcObjectsEv;
+ _ZNK7android6Parcel10readDoubleEPd;
+ _ZNK7android6Parcel10readDoubleEv;
+ _ZNK7android6Parcel10readObjectEb;
+ _ZNK7android6Parcel10readUint32EPj;
+ _ZNK7android6Parcel10readUint32Ev;
+ _ZNK7android6Parcel10readUint64EPy;
+ _ZNK7android6Parcel10readUint64Ev;
+ _ZNK7android6Parcel10scanForFdsEv;
+ _ZNK7android6Parcel11ipcDataSizeEv;
+ _ZNK7android6Parcel11readCStringEv;
+ _ZNK7android6Parcel11readInplaceEj;
+ _ZNK7android6Parcel11readPointerEPj;
+ _ZNK7android6Parcel11readPointerEv;
+ _ZNK7android6Parcel11readString8EPNS_7String8E;
+ _ZNK7android6Parcel11readString8Ev;
+ _ZNK7android6Parcel12dataCapacityEv;
+ _ZNK7android6Parcel12dataPositionEv;
+ _ZNK7android6Parcel12objectsCountEv;
+ _ZNK7android6Parcel12readString16EPNS_8String16E;
+ _ZNK7android6Parcel12readString16EPNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZNK7android6Parcel12readString16EPNSt3__18optionalINS_8String16EEE;
+ _ZNK7android6Parcel12readString16Ev;
+ _ZNK7android6Parcel13markSensitiveEv;
+ _ZNK7android6Parcel14checkInterfaceEPNS_7IBinderE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZNK7android6Parcel14readParcelableEPNS_10ParcelableE;
+ _ZNK7android6Parcel15ipcObjectsCountEv;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__110unique_ptrINS1_6vectorIxNS1_9allocatorIxEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__16vectorIxNS1_9allocatorIxEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__18optionalINS1_6vectorIxNS1_9allocatorIxEEEEEE;
+ _ZNK7android6Parcel15setDataPositionEj;
+ _ZNK7android6Parcel15unflattenBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16enforceInterfaceEPKDsjPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16enforceInterfaceERKNS_8String16EPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZNK7android6Parcel16readNativeHandleEv;
+ _ZNK7android6Parcel16readStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16readStrongBinderEv;
+ _ZNK7android6Parcel16readStrongBinderINS_2os15IClientCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_2os16IServiceCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_7content2pm22IPackageChangeObserverEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__110unique_ptrINS1_6vectorIyNS1_9allocatorIyEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__16vectorIyNS1_9allocatorIyEEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__18optionalINS1_6vectorIyNS1_9allocatorIyEEEEEE;
+ _ZNK7android6Parcel16validateReadDataEj;
+ _ZNK7android6Parcel17getBlobAshmemSizeEv;
+ _ZNK7android6Parcel17getOpenAshmemSizeEv;
+ _ZNK7android6Parcel17readExceptionCodeEv;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZNK7android6Parcel18hasFileDescriptorsEv;
+ _ZNK7android6Parcel18readFileDescriptorEv;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZNK7android6Parcel18readString8InplaceEPj;
+ _ZNK7android6Parcel19readString16InplaceEPj;
+ _ZNK7android6Parcel21finishUnflattenBinderERKNS_2spINS_7IBinderEEEPS3_;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZNK7android6Parcel24readCallingWorkSourceUidEv;
+ _ZNK7android6Parcel24readNullableStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel24readParcelFileDescriptorEv;
+ _ZNK7android6Parcel24readUniqueFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZNK7android6Parcel30readUniqueParcelFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel37updateWorkSourceRequestHeaderPositionEv;
+ _ZNK7android6Parcel4dataEv;
+ _ZNK7android6Parcel4readEPvj;
+ _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE;
+ _ZNK7android6Parcel5printERNS_10TextOutputEj;
+ _ZNK7android6Parcel7ipcDataEv;
+ _ZNK7android6Parcel8allowFdsEv;
+ _ZNK7android6Parcel8dataSizeEv;
+ _ZNK7android6Parcel8isForRpcEv;
+ _ZNK7android6Parcel8readBlobEjPNS0_12ReadableBlobE;
+ _ZNK7android6Parcel8readBoolEPb;
+ _ZNK7android6Parcel8readBoolEv;
+ _ZNK7android6Parcel8readByteEPa;
+ _ZNK7android6Parcel8readByteEv;
+ _ZNK7android6Parcel8readCharEPDs;
+ _ZNK7android6Parcel8readCharEv;
+ _ZNK7android6Parcel9dataAvailEv;
+ _ZNK7android6Parcel9readFloatEPf;
+ _ZNK7android6Parcel9readFloatEv;
+ _ZNK7android6Parcel9readInt32EPi;
+ _ZNK7android6Parcel9readInt32Ev;
+ _ZNK7android6Parcel9readInt64EPx;
+ _ZNK7android6Parcel9readInt64Ev;
+ _ZNK7android6VectorIiE10do_destroyEPvj;
+ _ZNK7android6VectorIiE12do_constructEPvj;
+ _ZNK7android6VectorIiE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIiE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIiE7do_copyEPvPKvj;
+ _ZNK7android6VectorIiE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE12do_constructEPvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE12do_constructEPvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE12do_constructEPvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE10do_destroyEPvj;
+ _ZNK7android6VectorINS_8String16EE12do_constructEPvj;
+ _ZNK7android6VectorINS_8String16EE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7BBinderEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7BBinderEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE8do_splatEPvPKvj;
+ _ZNK7android7BBinder10findObjectEPKv;
+ _ZNK7android7BBinder13isBinderAliveEv;
+ _ZNK7android7BBinder22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm18PackageChangeEvent13writeToParcelEPNS_6ParcelE;
+ _ZNK7android7content2pm21IPackageManagerNative22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm22IPackageChangeObserver22getInterfaceDescriptorEv;
+ _ZNK7android7IBinder13checkSubclassEPKv;
+ _ZNK7android7IMemory11fastPointerERKNS_2spINS_7IBinderEEEi;
+ _ZNK7android7IMemory15unsecurePointerEv;
+ _ZNK7android7IMemory22getInterfaceDescriptorEv;
+ _ZNK7android7IMemory4sizeEv;
+ _ZNK7android7IMemory6offsetEv;
+ _ZNK7android7IMemory7pointerEv;
+ _ZNK7android8BpBinder10findObjectEPKv;
+ _ZNK7android8BpBinder10rpcAddressEv;
+ _ZNK7android8BpBinder10rpcSessionEv;
+ _ZNK7android8BpBinder11isRpcBinderEv;
+ _ZNK7android8BpBinder12binderHandleEv;
+ _ZNK7android8BpBinder13isBinderAliveEv;
+ _ZNK7android8BpBinder13ObjectManager4findEPKv;
+ _ZNK7android8BpBinder18isDescriptorCachedEv;
+ _ZNK7android8BpBinder22getInterfaceDescriptorEv;
+ _ZNK7android8BpMemory9getMemoryEPiPj;
+ _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE14__count_uniqueIS7_EEjRKT_;
+ _ZNSt3__111__sift_downIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeESB_;
+ _ZNSt3__111unique_lockINS_5mutexEE6unlockEv;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE14__erase_uniqueIiEEjRKT_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE25__emplace_unique_key_argsIiJRKNS_21piecewise_construct_tENS_5tupleIJRKiEEENSI_IJEEEEEENS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEERKT_DpOT0_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6rehashEj;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS2_PvEEEE;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE8__rehashEj;
+ _ZNSt3__113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__113unordered_mapIijNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKijEEEEEixERS7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEMN7android9RpcServerEFvONS7_2spIS8_EENS7_4base14unique_fd_implINSC_13DefaultCloserEEEEPS8_SA_SF_EEEEEPvSK_;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_j;
+ _ZNSt3__127__tree_balance_after_insertIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__13mapIiN7android2spINS1_10RpcSessionEEENS_4lessIiEENS_9allocatorINS_4pairIKiS4_EEEEEixERS9_;
+ _ZNSt3__13mapIN7android8String16EbNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_bEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16EdNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_dEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16EiNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_iEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16ENS1_2os17PersistableBundleENS_4lessIS2_EENS_9allocatorINS_4pairIKS2_S4_EEEEEixERS9_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIS2_NS_9allocatorIS2_EEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ES2_NS_4lessIS2_EENS_9allocatorINS_4pairIKS2_S2_EEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16ExNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_xEEEEEixERS7_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE12__find_equalIS2_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISC_EERKT_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE25__emplace_unique_key_argsIS2_JRKS2_EEENS_4pairINS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE7destroyEPNS_11__tree_nodeIS2_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JNS_4pairIKS3_S5_EEEEENSF_INS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SG_EEiEERPNS_15__tree_end_nodeISI_EESJ_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISI_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__assign_multiINS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEEEvT_SL_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE15__emplace_multiIJRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSI_IJEEEEEENS_4pairINS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEENS_21__tree_const_iteratorIS6_SO_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE5eraseENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_xEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_xEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_11__thread_idENS_6threadEEENS_19__map_value_compareIS2_S4_NS_4lessIS2_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE12__find_equalIS7_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISO_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE25__emplace_unique_key_argsIS7_JRKNS_21piecewise_construct_tENS_5tupleIJRKS7_EEENSO_IJEEEEEENS_4pairINS_15__tree_iteratorISD_PNS_11__tree_nodeISD_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE7destroyEPNS_11__tree_nodeISD_PvEE;
+ _ZNSt3__16vectorIaNS_9allocatorIaEEE6insertIPKaEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIaNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPaEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb0ELj0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb1ELj0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE7reserveEj;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE9push_backERKb;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEEaSERKS3_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6assignIPdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6insertIPKdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPdEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEEC2ERKS3_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE24__emplace_back_slow_pathIJDsEEEvDpOT_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE7reserveEj;
+ _ZNSt3__16vectorIfNS_9allocatorIfEEE6insertIPKfEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIfNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPfEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIhNS_9allocatorIhEEE6insertIPKhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPhEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6assignIPiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6insertIPKiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPiEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIN7android2os16ServiceDebugInfoENS_9allocatorIS3_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSession13RpcConnectionEEENS_9allocatorIS5_EEE21__push_back_slow_pathIRKS5_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSessionEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android4base14unique_fd_implINS2_13DefaultCloserEEENS_9allocatorIS5_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android8RpcState10BinderNode9AsyncTodoENS_9allocatorIS4_EEE21__push_back_slow_pathIS4_EEvOT_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE8__appendEj;
+ _ZNSt3__16vectorINS_10unique_ptrIN7android8String16ENS_14default_deleteIS3_EEEENS_9allocatorIS6_EEE8__appendEj;
+ _ZNSt3__16vectorINS_10unique_ptrINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_14default_deleteIS7_EEEENS5_ISA_EEE8__appendEj;
+ _ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE8__appendEj;
+ _ZNSt3__16vectorINS_8optionalIN7android8String16EEENS_9allocatorIS4_EEE8__appendEj;
+ _ZNSt3__16vectorINS_8optionalINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEE8__appendEj;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEE6assignIPxEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIxNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEE6insertIPKxEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIxNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPxEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEEC2ERKS3_;
+ _ZNSt3__16vectorIyNS_9allocatorIyEEE6insertIPKyEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIyNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPyEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__19__sift_upIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeE;
+ _ZTCN7android10AllocationE0_NS_10IInterfaceE;
+ _ZTCN7android10AllocationE0_NS_10MemoryBaseE;
+ _ZTCN7android10AllocationE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10AllocationE0_NS_7IMemoryE;
+ _ZTCN7android10AllocationE0_NS_8BnMemoryE;
+ _ZTCN7android10AllocationE4_NS_7BBinderE;
+ _ZTCN7android10AllocationE4_NS_7IBinderE;
+ _ZTCN7android10MemoryBaseE0_NS_10IInterfaceE;
+ _ZTCN7android10MemoryBaseE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10MemoryBaseE0_NS_7IMemoryE;
+ _ZTCN7android10MemoryBaseE0_NS_8BnMemoryE;
+ _ZTCN7android10MemoryBaseE4_NS_7BBinderE;
+ _ZTCN7android10MemoryBaseE4_NS_7IBinderE;
+ _ZTCN7android10PoolThreadE0_NS_6ThreadE;
+ _ZTCN7android11IMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BnMemoryHeapE4_NS_7BBinderE;
+ _ZTCN7android12BnMemoryHeapE4_NS_7IBinderE;
+ _ZTCN7android12BpMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11BpInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BpMemoryHeapE4_NS_9BpRefBaseE;
+ _ZTCN7android14IShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_11IMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_12BnMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE36_NS_7BBinderE;
+ _ZTCN7android14MemoryHeapBaseE36_NS_7IBinderE;
+ _ZTCN7android15BnShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BnShellCallbackE0_NS_11BnInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BnShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BnShellCallbackE4_NS_7BBinderE;
+ _ZTCN7android15BnShellCallbackE4_NS_7IBinderE;
+ _ZTCN7android15BpShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BpShellCallbackE0_NS_11BpInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BpShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BpShellCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android15IResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_11BnInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BnResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BnResultReceiverE4_NS_7BBinderE;
+ _ZTCN7android16BnResultReceiverE4_NS_7IBinderE;
+ _ZTCN7android16BpResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BpResultReceiverE0_NS_11BpInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BpResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BpResultReceiverE4_NS_9BpRefBaseE;
+ _ZTCN7android18ServiceManagerShimE0_NS_10IInterfaceE;
+ _ZTCN7android18ServiceManagerShimE0_NS_15IServiceManagerE;
+ _ZTCN7android21IPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BnPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BnPermissionControllerE0_NS_11BnInterfaceINS_21IPermissionControllerEEE;
+ _ZTCN7android22BnPermissionControllerE0_NS_21IPermissionControllerE;
+ _ZTCN7android22BnPermissionControllerE4_NS_7BBinderE;
+ _ZTCN7android22BnPermissionControllerE4_NS_7IBinderE;
+ _ZTCN7android22BpPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BpPermissionControllerE0_NS_11BpInterfaceINS_21IPermissionControllerEEE;
+ _ZTCN7android22BpPermissionControllerE0_NS_21IPermissionControllerE;
+ _ZTCN7android22BpPermissionControllerE4_NS_9BpRefBaseE;
+ _ZTCN7android2os15IClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_11BnInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BnClientCallbackE4_NS_7BBinderE;
+ _ZTCN7android2os16BnClientCallbackE4_NS_7IBinderE;
+ _ZTCN7android2os16BnServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_11BnInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BnServiceManagerE4_NS_7BBinderE;
+ _ZTCN7android2os16BnServiceManagerE4_NS_7IBinderE;
+ _ZTCN7android2os16BpClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_11BpInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BpClientCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android2os16BpServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_11BpInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BpServiceManagerE4_NS_9BpRefBaseE;
+ _ZTCN7android2os16IServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_11BnInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BnServiceCallbackE4_NS_7BBinderE;
+ _ZTCN7android2os17BnServiceCallbackE4_NS_7IBinderE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_11BpInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BpServiceCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_10IInterfaceE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_11BnInterfaceINS_2os15IClientCallbackEEE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os15IClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os16BnClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE4_NS_7BBinderE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE4_NS_7IBinderE;
+ _ZTCN7android7BBinderE0_NS_7IBinderE;
+ _ZTCN7android7content2pm21IPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_11BnInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE4_NS_7BBinderE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE4_NS_7IBinderE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_11BpInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE4_NS_9BpRefBaseE;
+ _ZTCN7android7content2pm22IPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_11BnInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE4_NS_7BBinderE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE4_NS_7IBinderE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_11BpInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE4_NS_9BpRefBaseE;
+ _ZTCN7android7IMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BnMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BnMemoryE4_NS_7BBinderE;
+ _ZTCN7android8BnMemoryE4_NS_7IBinderE;
+ _ZTCN7android8BpBinderE0_NS_7IBinderE;
+ _ZTCN7android8BpMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BpMemoryE0_NS_11BpInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BpMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BpMemoryE4_NS_9BpRefBaseE;
+ _ZTCN7android9HeapCacheE0_NS_7IBinder14DeathRecipientE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE8_NS_13basic_ostreamIcS2_EE;
+ _ZThn4_N7android10AllocationD0Ev;
+ _ZThn4_N7android10AllocationD1Ev;
+ _ZThn4_N7android10MemoryBaseD0Ev;
+ _ZThn4_N7android10MemoryBaseD1Ev;
+ _ZThn4_N7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android12BnMemoryHeapD0Ev;
+ _ZThn4_N7android12BnMemoryHeapD1Ev;
+ _ZThn4_N7android12BpMemoryHeapD0Ev;
+ _ZThn4_N7android12BpMemoryHeapD1Ev;
+ _ZThn4_N7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android22BnPermissionController10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn4_N7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn4_N7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android8BnMemoryD0Ev;
+ _ZThn4_N7android8BnMemoryD1Ev;
+ _ZThn4_N7android8BpMemoryD0Ev;
+ _ZThn4_N7android8BpMemoryD1Ev;
+ _ZTTN7android10AllocationE;
+ _ZTTN7android10IInterfaceE;
+ _ZTTN7android10MemoryBaseE;
+ _ZTTN7android10PoolThreadE;
+ _ZTTN7android10RpcSessionE;
+ _ZTTN7android11IMemoryHeapE;
+ _ZTTN7android12BnMemoryHeapE;
+ _ZTTN7android12BpMemoryHeapE;
+ _ZTTN7android12ProcessStateE;
+ _ZTTN7android14IShellCallbackE;
+ _ZTTN7android14MemoryHeapBaseE;
+ _ZTTN7android15BnShellCallbackE;
+ _ZTTN7android15BpShellCallbackE;
+ _ZTTN7android15IResultReceiverE;
+ _ZTTN7android15IServiceManagerE;
+ _ZTTN7android16BnResultReceiverE;
+ _ZTTN7android16BpResultReceiverE;
+ _ZTTN7android18ServiceManagerShimE;
+ _ZTTN7android21IPermissionControllerE;
+ _ZTTN7android22BnPermissionControllerE;
+ _ZTTN7android22BpPermissionControllerE;
+ _ZTTN7android2os15IClientCallbackE;
+ _ZTTN7android2os15IServiceManagerE;
+ _ZTTN7android2os16BnClientCallbackE;
+ _ZTTN7android2os16BnServiceManagerE;
+ _ZTTN7android2os16BpClientCallbackE;
+ _ZTTN7android2os16BpServiceManagerE;
+ _ZTTN7android2os16IServiceCallbackE;
+ _ZTTN7android2os17BnServiceCallbackE;
+ _ZTTN7android2os17BpServiceCallbackE;
+ _ZTTN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTTN7android7BBinderE;
+ _ZTTN7android7content2pm21IPackageManagerNativeE;
+ _ZTTN7android7content2pm22BnPackageManagerNativeE;
+ _ZTTN7android7content2pm22BpPackageManagerNativeE;
+ _ZTTN7android7content2pm22IPackageChangeObserverE;
+ _ZTTN7android7content2pm23BnPackageChangeObserverE;
+ _ZTTN7android7content2pm23BpPackageChangeObserverE;
+ _ZTTN7android7IBinderE;
+ _ZTTN7android7IMemoryE;
+ _ZTTN7android8BnMemoryE;
+ _ZTTN7android8BpBinderE;
+ _ZTTN7android8BpMemoryE;
+ _ZTTN7android9BpRefBaseE;
+ _ZTTN7android9HeapCacheE;
+ _ZTTN7android9RpcServerE;
+ _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTv0_n12_N7android10AllocationD0Ev;
+ _ZTv0_n12_N7android10AllocationD1Ev;
+ _ZTv0_n12_N7android10IInterfaceD0Ev;
+ _ZTv0_n12_N7android10IInterfaceD1Ev;
+ _ZTv0_n12_N7android10MemoryBaseD0Ev;
+ _ZTv0_n12_N7android10MemoryBaseD1Ev;
+ _ZTv0_n12_N7android10RpcSessionD0Ev;
+ _ZTv0_n12_N7android10RpcSessionD1Ev;
+ _ZTv0_n12_N7android11IMemoryHeapD0Ev;
+ _ZTv0_n12_N7android11IMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12BnMemoryHeapD0Ev;
+ _ZTv0_n12_N7android12BnMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12BpMemoryHeapD0Ev;
+ _ZTv0_n12_N7android12BpMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12ProcessStateD0Ev;
+ _ZTv0_n12_N7android12ProcessStateD1Ev;
+ _ZTv0_n12_N7android14IShellCallbackD0Ev;
+ _ZTv0_n12_N7android14IShellCallbackD1Ev;
+ _ZTv0_n12_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n12_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n12_N7android15IResultReceiverD0Ev;
+ _ZTv0_n12_N7android15IResultReceiverD1Ev;
+ _ZTv0_n12_N7android15IServiceManagerD0Ev;
+ _ZTv0_n12_N7android15IServiceManagerD1Ev;
+ _ZTv0_n12_N7android21IPermissionControllerD0Ev;
+ _ZTv0_n12_N7android21IPermissionControllerD1Ev;
+ _ZTv0_n12_N7android2os15IClientCallbackD0Ev;
+ _ZTv0_n12_N7android2os15IClientCallbackD1Ev;
+ _ZTv0_n12_N7android2os15IServiceManagerD0Ev;
+ _ZTv0_n12_N7android2os15IServiceManagerD1Ev;
+ _ZTv0_n12_N7android2os16IServiceCallbackD0Ev;
+ _ZTv0_n12_N7android2os16IServiceCallbackD1Ev;
+ _ZTv0_n12_N7android7BBinderD0Ev;
+ _ZTv0_n12_N7android7BBinderD1Ev;
+ _ZTv0_n12_N7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZTv0_n12_N7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZTv0_n12_N7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZTv0_n12_N7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZTv0_n12_N7android7IBinderD0Ev;
+ _ZTv0_n12_N7android7IBinderD1Ev;
+ _ZTv0_n12_N7android7IMemoryD0Ev;
+ _ZTv0_n12_N7android7IMemoryD1Ev;
+ _ZTv0_n12_N7android8BnMemoryD0Ev;
+ _ZTv0_n12_N7android8BnMemoryD1Ev;
+ _ZTv0_n12_N7android8BpBinderD0Ev;
+ _ZTv0_n12_N7android8BpBinderD1Ev;
+ _ZTv0_n12_N7android8BpMemoryD0Ev;
+ _ZTv0_n12_N7android8BpMemoryD1Ev;
+ _ZTv0_n12_N7android9BpRefBaseD0Ev;
+ _ZTv0_n12_N7android9BpRefBaseD1Ev;
+ _ZTv0_n12_N7android9HeapCacheD0Ev;
+ _ZTv0_n12_N7android9HeapCacheD1Ev;
+ _ZTv0_n12_N7android9RpcServerD0Ev;
+ _ZTv0_n12_N7android9RpcServerD1Ev;
+ _ZTv0_n16_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n16_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n16_N7android8BpBinder10onFirstRefEv;
+ _ZTv0_n16_N7android9BpRefBase10onFirstRefEv;
+ _ZTv0_n20_N7android8BpBinder15onLastStrongRefEPKv;
+ _ZTv0_n20_N7android9BpRefBase15onLastStrongRefEPKv;
+ _ZTv0_n24_N7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZTv0_n24_N7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZTv0_n28_NK7android14MemoryHeapBase9getHeapIDEv;
+ _ZTv0_n32_NK7android14MemoryHeapBase7getBaseEv;
+ _ZTv0_n36_NK7android14MemoryHeapBase7getSizeEv;
+ _ZTv0_n40_NK7android14MemoryHeapBase8getFlagsEv;
+ _ZTv0_n44_NK7android14MemoryHeapBase9getOffsetEv;
+ _ZTvn4_n16_N7android14MemoryHeapBaseD0Ev;
+ _ZTvn4_n16_N7android14MemoryHeapBaseD1Ev;
+ _ZTVN7android10AllocationE;
+ _ZTVN7android10IInterfaceE;
+ _ZTVN7android10MemoryBaseE;
+ _ZTVN7android10PoolThreadE;
+ _ZTVN7android10RpcSession13RpcConnectionE;
+ _ZTVN7android10RpcSessionE;
+ _ZTVN7android10TextOutputE;
+ _ZTVN7android11IMemoryHeapE;
+ _ZTVN7android12BnMemoryHeapE;
+ _ZTVN7android12BpMemoryHeapE;
+ _ZTVN7android12FdTextOutputE;
+ _ZTVN7android12MemoryDealerE;
+ _ZTVN7android12ProcessStateE;
+ _ZTVN7android12SortedVectorINS_15PermissionCache5EntryEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEEE;
+ _ZTVN7android12SortedVectorINS_8String16EEE;
+ _ZTVN7android13LogTextOutputE;
+ _ZTVN7android14IShellCallbackE;
+ _ZTVN7android14MemoryHeapBaseE;
+ _ZTVN7android15BnShellCallbackE;
+ _ZTVN7android15BpShellCallbackE;
+ _ZTVN7android15IResultReceiverE;
+ _ZTVN7android15IServiceManagerE;
+ _ZTVN7android16BnResultReceiverE;
+ _ZTVN7android16BpResultReceiverE;
+ _ZTVN7android17InetSocketAddressE;
+ _ZTVN7android17UnixSocketAddressE;
+ _ZTVN7android18BufferedTextOutput11BufferStateE;
+ _ZTVN7android18BufferedTextOutputE;
+ _ZTVN7android18ServiceManagerShimE;
+ _ZTVN7android18VsockSocketAddressE;
+ _ZTVN7android21IPermissionControllerE;
+ _ZTVN7android22BnPermissionControllerE;
+ _ZTVN7android22BpPermissionControllerE;
+ _ZTVN7android2os15IClientCallbackE;
+ _ZTVN7android2os15IServiceManagerE;
+ _ZTVN7android2os16BnClientCallbackE;
+ _ZTVN7android2os16BnServiceManagerE;
+ _ZTVN7android2os16BpClientCallbackE;
+ _ZTVN7android2os16BpServiceManagerE;
+ _ZTVN7android2os16IServiceCallbackE;
+ _ZTVN7android2os16ParcelableHolderE;
+ _ZTVN7android2os16ServiceDebugInfoE;
+ _ZTVN7android2os17BnServiceCallbackE;
+ _ZTVN7android2os17BpServiceCallbackE;
+ _ZTVN7android2os17PersistableBundleE;
+ _ZTVN7android2os20ParcelFileDescriptorE;
+ _ZTVN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTVN7android6VectorIiEE;
+ _ZTVN7android6VectorINS_12ProcessState12handle_entryEEE;
+ _ZTVN7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEEE;
+ _ZTVN7android6VectorINS_8BpBinder8ObituaryEEE;
+ _ZTVN7android6VectorINS_8String16EEE;
+ _ZTVN7android6VectorIPNS_7BBinderEEE;
+ _ZTVN7android6VectorIPNS_7RefBase12weakref_typeEEE;
+ _ZTVN7android6VectorIPNS_7RefBaseEEE;
+ _ZTVN7android7BBinderE;
+ _ZTVN7android7content2pm18PackageChangeEventE;
+ _ZTVN7android7content2pm21IPackageManagerNativeE;
+ _ZTVN7android7content2pm22BnPackageManagerNativeE;
+ _ZTVN7android7content2pm22BpPackageManagerNativeE;
+ _ZTVN7android7content2pm22IPackageChangeObserverE;
+ _ZTVN7android7content2pm23BnPackageChangeObserverE;
+ _ZTVN7android7content2pm23BpPackageChangeObserverE;
+ _ZTVN7android7IBinderE;
+ _ZTVN7android7IMemoryE;
+ _ZTVN7android8BnMemoryE;
+ _ZTVN7android8BpBinderE;
+ _ZTVN7android8BpMemoryE;
+ _ZTVN7android9BpRefBaseE;
+ _ZTVN7android9HeapCacheE;
+ _ZTVN7android9RpcServerE;
+ _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEEE;
+ local:
+ *;
+};
diff --git a/libs/binder/libbinder.arm32.vendor.map b/libs/binder/libbinder.arm32.vendor.map
new file mode 100644
index 0000000..8d5a323
--- /dev/null
+++ b/libs/binder/libbinder.arm32.vendor.map
@@ -0,0 +1,1540 @@
+# b/190148312: Populate with correct list of ABI symbols
+LIBBINDER {
+ global:
+ getBinderKernelReferences;
+ kDefaultDriver;
+ _ZN7android10AllocationC1ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEEij;
+ _ZN7android10AllocationC2ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEEij;
+ _ZN7android10AllocationD0Ev;
+ _ZN7android10AllocationD1Ev;
+ _ZN7android10AllocationD2Ev;
+ _ZN7android10IInterface8asBinderEPKS0_;
+ _ZN7android10IInterface8asBinderERKNS_2spIS0_EE;
+ _ZN7android10IInterfaceC2Ev;
+ _ZN7android10IInterfaceD0Ev;
+ _ZN7android10IInterfaceD1Ev;
+ _ZN7android10IInterfaceD2Ev;
+ _ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEEij;
+ _ZN7android10MemoryBaseC2ERKNS_2spINS_11IMemoryHeapEEEij;
+ _ZN7android10MemoryBaseD0Ev;
+ _ZN7android10MemoryBaseD1Ev;
+ _ZN7android10MemoryBaseD2Ev;
+ _ZN7android10RpcAddress14readFromParcelERKNS_6ParcelE;
+ _ZN7android10RpcAddress15fromRawEmbeddedEPKNS_14RpcWireAddressE;
+ _ZN7android10RpcAddress4zeroEv;
+ _ZN7android10RpcAddress6uniqueEv;
+ _ZN7android10RpcAddressC1Ev;
+ _ZN7android10RpcAddressC2Ev;
+ _ZN7android10RpcAddressD1Ev;
+ _ZN7android10RpcAddressD2Ev;
+ _ZN7android10RpcSession12setForServerERKNS_2wpINS_9RpcServerEEEi;
+ _ZN7android10RpcSession13getRootObjectEv;
+ _ZN7android10RpcSession13sendDecStrongERKNS_10RpcAddressE;
+ _ZN7android10RpcSession15setupInetClientEPKcj;
+ _ZN7android10RpcSession15terminateLockedEv;
+ _ZN7android10RpcSession16setupVsockClientEjj;
+ _ZN7android10RpcSession17setupSocketClientERKNS_16RpcSocketAddressE;
+ _ZN7android10RpcSession19addClientConnectionENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession19ExclusiveConnection14findConnectionEiPNS_2spINS0_13RpcConnectionEEES5_RNSt3__16vectorIS4_NS6_9allocatorIS4_EEEEj;
+ _ZN7android10RpcSession19ExclusiveConnectionC1ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionC2ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionD1Ev;
+ _ZN7android10RpcSession19ExclusiveConnectionD2Ev;
+ _ZN7android10RpcSession19getRemoteMaxThreadsEPj;
+ _ZN7android10RpcSession20setupOneSocketClientERKNS_16RpcSocketAddressEi;
+ _ZN7android10RpcSession21setupUnixDomainClientEPKc;
+ _ZN7android10RpcSession22addNullDebuggingClientEv;
+ _ZN7android10RpcSession22removeServerConnectionERKNS_2spINS0_13RpcConnectionEEE;
+ _ZN7android10RpcSession24assignServerToThisThreadENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4joinENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4makeEv;
+ _ZN7android10RpcSession6readIdEv;
+ _ZN7android10RpcSession6serverEv;
+ _ZN7android10RpcSession7preJoinENSt3__16threadE;
+ _ZN7android10RpcSession8transactERKNS_10RpcAddressEjRKNS_6ParcelEPS4_j;
+ _ZN7android10RpcSessionC1Ev;
+ _ZN7android10RpcSessionC2Ev;
+ _ZN7android10RpcSessionD0Ev;
+ _ZN7android10RpcSessionD1Ev;
+ _ZN7android10RpcSessionD2Ev;
+ _ZN7android10TextOutputC2Ev;
+ _ZN7android10TextOutputD0Ev;
+ _ZN7android10TextOutputD1Ev;
+ _ZN7android10TextOutputD2Ev;
+ _ZN7android10zeroMemoryEPhj;
+ _ZN7android11BnInterfaceINS_11IMemoryHeapEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_14IShellCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_15IResultReceiverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IClientCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IServiceManagerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os16IServiceCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm21IPackageManagerNativeEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm22IPackageChangeObserverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7IMemoryEE10onAsBinderEv;
+ _ZN7android11IMemoryHeap10descriptorE;
+ _ZN7android11IMemoryHeap11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android11IMemoryHeap12default_implE;
+ _ZN7android11IMemoryHeap14getDefaultImplEv;
+ _ZN7android11IMemoryHeap14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android11IMemoryHeapC2Ev;
+ _ZN7android11IMemoryHeapD0Ev;
+ _ZN7android11IMemoryHeapD1Ev;
+ _ZN7android11IMemoryHeapD2Ev;
+ _ZN7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android12BnMemoryHeapC2Ev;
+ _ZN7android12BnMemoryHeapD0Ev;
+ _ZN7android12BnMemoryHeapD1Ev;
+ _ZN7android12BnMemoryHeapD2Ev;
+ _ZN7android12BpMemoryHeapC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapD0Ev;
+ _ZN7android12BpMemoryHeapD1Ev;
+ _ZN7android12BpMemoryHeapD2Ev;
+ _ZN7android12gTextBuffersE;
+ _ZN7android12MemoryDealer10deallocateEj;
+ _ZN7android12MemoryDealer22getAllocationAlignmentEv;
+ _ZN7android12MemoryDealer8allocateEj;
+ _ZN7android12MemoryDealerC1EjPKcj;
+ _ZN7android12MemoryDealerC2EjPKcj;
+ _ZN7android12MemoryDealerD0Ev;
+ _ZN7android12MemoryDealerD1Ev;
+ _ZN7android12MemoryDealerD2Ev;
+ _ZN7android12printHexDataEiPKvjjijbPFvPvPKcES2_;
+ _ZN7android12ProcessState10selfOrNullEv;
+ _ZN7android12ProcessState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android12ProcessState13getDriverNameEv;
+ _ZN7android12ProcessState14initWithDriverEPKc;
+ _ZN7android12ProcessState15startThreadPoolEv;
+ _ZN7android12ProcessState16getContextObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android12ProcessState17spawnPooledThreadEb;
+ _ZN7android12ProcessState18giveThreadPoolNameEv;
+ _ZN7android12ProcessState18lookupHandleLockedEi;
+ _ZN7android12ProcessState18setCallRestrictionENS0_15CallRestrictionE;
+ _ZN7android12ProcessState19getKernelReferencesEjPj;
+ _ZN7android12ProcessState20becomeContextManagerEv;
+ _ZN7android12ProcessState20makeBinderThreadNameEv;
+ _ZN7android12ProcessState23getStrongProxyForHandleEi;
+ _ZN7android12ProcessState24getStrongRefCountForNodeERKNS_2spINS_8BpBinderEEE;
+ _ZN7android12ProcessState25enableOnewaySpamDetectionEb;
+ _ZN7android12ProcessState27setThreadPoolMaxThreadCountEj;
+ _ZN7android12ProcessState4initEPKcb;
+ _ZN7android12ProcessState4selfEv;
+ _ZN7android12ProcessStateC1EPKc;
+ _ZN7android12ProcessStateC2EPKc;
+ _ZN7android12ProcessStateD0Ev;
+ _ZN7android12ProcessStateD1Ev;
+ _ZN7android12ProcessStateD2Ev;
+ _ZN7android13printTypeCodeEjPFvPvPKcES0_;
+ _ZN7android14IPCThreadState10freeBufferEPNS_6ParcelEPKhjPKyj;
+ _ZN7android14IPCThreadState10selfOrNullEv;
+ _ZN7android14IPCThreadState11clearCallerEv;
+ _ZN7android14IPCThreadState11stopProcessEb;
+ _ZN7android14IPCThreadState12setupPollingEPi;
+ _ZN7android14IPCThreadState13decWeakHandleEi;
+ _ZN7android14IPCThreadState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android14IPCThreadState13flushCommandsEv;
+ _ZN7android14IPCThreadState13flushIfNeededEv;
+ _ZN7android14IPCThreadState13incWeakHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState14clearLastErrorEv;
+ _ZN7android14IPCThreadState14executeCommandEi;
+ _ZN7android14IPCThreadState14joinThreadPoolEb;
+ _ZN7android14IPCThreadState14talkWithDriverEb;
+ _ZN7android14IPCThreadState15decStrongHandleEi;
+ _ZN7android14IPCThreadState15incStrongHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState15waitForResponseEPNS_6ParcelEPi;
+ _ZN7android14IPCThreadState16threadDestructorEPv;
+ _ZN7android14IPCThreadState18setCallRestrictionENS_12ProcessState15CallRestrictionE;
+ _ZN7android14IPCThreadState19setStrictModePolicyEi;
+ _ZN7android14IPCThreadState19setTheContextObjectERKNS_2spINS_7BBinderEEE;
+ _ZN7android14IPCThreadState20clearCallingIdentityEv;
+ _ZN7android14IPCThreadState20getAndExecuteCommandEv;
+ _ZN7android14IPCThreadState20getProcessFreezeInfoEiPbS1_;
+ _ZN7android14IPCThreadState20handlePolledCommandsEv;
+ _ZN7android14IPCThreadState20processPendingDerefsEv;
+ _ZN7android14IPCThreadState20writeTransactionDataEijijRKNS_6ParcelEPi;
+ _ZN7android14IPCThreadState22attemptIncStrongHandleEi;
+ _ZN7android14IPCThreadState22clearCallingWorkSourceEv;
+ _ZN7android14IPCThreadState22clearDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState22processPostWriteDerefsEv;
+ _ZN7android14IPCThreadState22restoreCallingIdentityEx;
+ _ZN7android14IPCThreadState23setCallingWorkSourceUidEj;
+ _ZN7android14IPCThreadState24clearPropagateWorkSourceEv;
+ _ZN7android14IPCThreadState24requestDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState24restoreCallingWorkSourceEx;
+ _ZN7android14IPCThreadState25blockUntilThreadAvailableEv;
+ _ZN7android14IPCThreadState27disableBackgroundSchedulingEb;
+ _ZN7android14IPCThreadState28backgroundSchedulingDisabledEv;
+ _ZN7android14IPCThreadState29setLastTransactionBinderFlagsEi;
+ _ZN7android14IPCThreadState41setCallingWorkSourceUidWithoutPropagationEj;
+ _ZN7android14IPCThreadState4selfEv;
+ _ZN7android14IPCThreadState6freezeEibj;
+ _ZN7android14IPCThreadState7processEv;
+ _ZN7android14IPCThreadState8shutdownEv;
+ _ZN7android14IPCThreadState8transactEijRKNS_6ParcelEPS1_j;
+ _ZN7android14IPCThreadState9sendReplyERKNS_6ParcelEj;
+ _ZN7android14IPCThreadStateC1Ev;
+ _ZN7android14IPCThreadStateC2Ev;
+ _ZN7android14IPCThreadStateD1Ev;
+ _ZN7android14IPCThreadStateD2Ev;
+ _ZN7android14IShellCallback10descriptorE;
+ _ZN7android14IShellCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android14IShellCallback12default_implE;
+ _ZN7android14IShellCallback14getDefaultImplEv;
+ _ZN7android14IShellCallback14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android14IShellCallbackC2Ev;
+ _ZN7android14IShellCallbackD0Ev;
+ _ZN7android14IShellCallbackD1Ev;
+ _ZN7android14IShellCallbackD2Ev;
+ _ZN7android14MemoryHeapBase4initEiPvjiPKc;
+ _ZN7android14MemoryHeapBase5mapfdEibjl;
+ _ZN7android14MemoryHeapBase7disposeEv;
+ _ZN7android14MemoryHeapBaseC1Eijjl;
+ _ZN7android14MemoryHeapBaseC1EjjPKc;
+ _ZN7android14MemoryHeapBaseC1EPKcjj;
+ _ZN7android14MemoryHeapBaseC1Ev;
+ _ZN7android14MemoryHeapBaseC2Eijjl;
+ _ZN7android14MemoryHeapBaseC2EjjPKc;
+ _ZN7android14MemoryHeapBaseC2EPKcjj;
+ _ZN7android14MemoryHeapBaseC2Ev;
+ _ZN7android14MemoryHeapBaseD0Ev;
+ _ZN7android14MemoryHeapBaseD1Ev;
+ _ZN7android14MemoryHeapBaseD2Ev;
+ _ZN7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android15IResultReceiver10descriptorE;
+ _ZN7android15IResultReceiver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android15IResultReceiver12default_implE;
+ _ZN7android15IResultReceiver14getDefaultImplEv;
+ _ZN7android15IResultReceiver14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android15IResultReceiverC2Ev;
+ _ZN7android15IResultReceiverD0Ev;
+ _ZN7android15IResultReceiverD1Ev;
+ _ZN7android15IResultReceiverD2Ev;
+ _ZN7android15IServiceManagerC2Ev;
+ _ZN7android15IServiceManagerD0Ev;
+ _ZN7android15IServiceManagerD1Ev;
+ _ZN7android15IServiceManagerD2Ev;
+ _ZN7android15stringForIndentEi;
+ _ZN7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android18BufferedTextOutput10moveIndentEi;
+ _ZN7android18BufferedTextOutput10pushBundleEv;
+ _ZN7android18BufferedTextOutput5printEPKcj;
+ _ZN7android18BufferedTextOutput9popBundleEv;
+ _ZN7android18BufferedTextOutputC2Ej;
+ _ZN7android18BufferedTextOutputD0Ev;
+ _ZN7android18BufferedTextOutputD1Ev;
+ _ZN7android18BufferedTextOutputD2Ev;
+ _ZN7android18ServiceManagerShim10addServiceERKNS_8String16ERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android18ServiceManagerShim10isDeclaredERKNS_8String16E;
+ _ZN7android18ServiceManagerShim12listServicesEi;
+ _ZN7android18ServiceManagerShim14waitForServiceERKNS_8String16E;
+ _ZN7android18ServiceManagerShim16updatableViaApexERKNS_8String16E;
+ _ZN7android18ServiceManagerShim20getDeclaredInstancesERKNS_8String16E;
+ _ZN7android18ServiceManagerShimC1ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18ServiceManagerShimC2ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18the_context_objectE;
+ _ZN7android21defaultServiceManagerEv;
+ _ZN7android22SimpleBestFitAllocator10deallocateEj;
+ _ZN7android22SimpleBestFitAllocator12kMemoryAlignE;
+ _ZN7android22SimpleBestFitAllocator5allocEjj;
+ _ZN7android22SimpleBestFitAllocator7deallocEj;
+ _ZN7android22SimpleBestFitAllocator8allocateEjj;
+ _ZN7android22SimpleBestFitAllocatorC1Ej;
+ _ZN7android22SimpleBestFitAllocatorC2Ej;
+ _ZN7android22SimpleBestFitAllocatorD1Ev;
+ _ZN7android22SimpleBestFitAllocatorD2Ev;
+ _ZN7android24setDefaultServiceManagerERKNS_2spINS_15IServiceManagerEEE;
+ _ZN7android2os15IClientCallback10descriptorE;
+ _ZN7android2os15IClientCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IClientCallback12default_implE;
+ _ZN7android2os15IClientCallback14getDefaultImplEv;
+ _ZN7android2os15IClientCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IClientCallbackC2Ev;
+ _ZN7android2os15IClientCallbackD0Ev;
+ _ZN7android2os15IClientCallbackD1Ev;
+ _ZN7android2os15IClientCallbackD2Ev;
+ _ZN7android2os15IServiceManager10descriptorE;
+ _ZN7android2os15IServiceManager11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IServiceManager12default_implE;
+ _ZN7android2os15IServiceManager14getDefaultImplEv;
+ _ZN7android2os15IServiceManager14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IServiceManagerC2Ev;
+ _ZN7android2os15IServiceManagerD0Ev;
+ _ZN7android2os15IServiceManagerD1Ev;
+ _ZN7android2os15IServiceManagerD2Ev;
+ _ZN7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnClientCallbackC2Ev;
+ _ZN7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnServiceManagerC2Ev;
+ _ZN7android2os16BpClientCallback9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android2os16BpClientCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpClientCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10addServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android2os16BpServiceManager10getServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10isDeclaredERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPb;
+ _ZN7android2os16BpServiceManager12checkServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager12listServicesEiPNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE;
+ _ZN7android2os16BpServiceManager16updatableViaApexERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_8optionalIS8_EE;
+ _ZN7android2os16BpServiceManager19getServiceDebugInfoEPNSt3__16vectorINS0_16ServiceDebugInfoENS2_9allocatorIS4_EEEE;
+ _ZN7android2os16BpServiceManager20getDeclaredInstancesERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_6vectorIS8_NS6_IS8_EEEE;
+ _ZN7android2os16BpServiceManager20tryUnregisterServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager22registerClientCallbackERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEERKNSB_INS0_15IClientCallbackEEE;
+ _ZN7android2os16BpServiceManager24registerForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManager26unregisterForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManagerC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManagerC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback10descriptorE;
+ _ZN7android2os16IServiceCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback12default_implE;
+ _ZN7android2os16IServiceCallback14getDefaultImplEv;
+ _ZN7android2os16IServiceCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os16IServiceCallbackC2Ev;
+ _ZN7android2os16IServiceCallbackD0Ev;
+ _ZN7android2os16IServiceCallbackD1Ev;
+ _ZN7android2os16IServiceCallbackD2Ev;
+ _ZN7android2os16ParcelableHolder14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os16ServiceDebugInfo14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os17BnServiceCallbackC2Ev;
+ _ZN7android2os17BpServiceCallback14onRegistrationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17PersistableBundle10putBooleanERKNS_8String16Eb;
+ _ZN7android2os17PersistableBundle12putIntVectorERKNS_8String16ERKNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZN7android2os17PersistableBundle13putLongVectorERKNS_8String16ERKNSt3__16vectorIxNS5_9allocatorIxEEEE;
+ _ZN7android2os17PersistableBundle14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17PersistableBundle15putDoubleVectorERKNS_8String16ERKNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZN7android2os17PersistableBundle15putStringVectorERKNS_8String16ERKNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZN7android2os17PersistableBundle16putBooleanVectorERKNS_8String16ERKNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZN7android2os17PersistableBundle19readFromParcelInnerEPKNS_6ParcelEj;
+ _ZN7android2os17PersistableBundle20putPersistableBundleERKNS_8String16ERKS1_;
+ _ZN7android2os17PersistableBundle5eraseERKNS_8String16E;
+ _ZN7android2os17PersistableBundle6putIntERKNS_8String16Ei;
+ _ZN7android2os17PersistableBundle7putLongERKNS_8String16Ex;
+ _ZN7android2os17PersistableBundle9putDoubleERKNS_8String16Ed;
+ _ZN7android2os17PersistableBundle9putStringERKNS_8String16ES4_;
+ _ZN7android2os20ParcelFileDescriptor14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os20ParcelFileDescriptorC1ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC1Ev;
+ _ZN7android2os20ParcelFileDescriptorC2ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC2Ev;
+ _ZN7android2os20ParcelFileDescriptorD0Ev;
+ _ZN7android2os20ParcelFileDescriptorD1Ev;
+ _ZN7android2os20ParcelFileDescriptorD2Ev;
+ _ZN7android2spINS_7BBinderEED2Ev;
+ _ZN7android2spINS_7IBinderEEaSEOS2_;
+ _ZN7android2spINS_7IBinderEEaSERKS2_;
+ _ZN7android2spINS_9HeapCacheEED2Ev;
+ _ZN7android4aerrE;
+ _ZN7android4alogE;
+ _ZN7android4aoutE;
+ _ZN7android6binder20LazyServiceRegistrar10reRegisterEv;
+ _ZN7android6binder20LazyServiceRegistrar11getInstanceEv;
+ _ZN7android6binder20LazyServiceRegistrar12forcePersistEb;
+ _ZN7android6binder20LazyServiceRegistrar13tryUnregisterEv;
+ _ZN7android6binder20LazyServiceRegistrar15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEbi;
+ _ZN7android6binder20LazyServiceRegistrar25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder20LazyServiceRegistrarC1Ev;
+ _ZN7android6binder20LazyServiceRegistrarC2Ev;
+ _ZN7android6binder6Status11fromStatusTEi;
+ _ZN7android6binder6Status12setExceptionEiRKNS_7String8E;
+ _ZN7android6binder6Status14readFromParcelERKNS_6ParcelE;
+ _ZN7android6binder6Status14setFromStatusTEi;
+ _ZN7android6binder6Status17exceptionToStringEi;
+ _ZN7android6binder6Status17fromExceptionCodeEi;
+ _ZN7android6binder6Status17fromExceptionCodeEiPKc;
+ _ZN7android6binder6Status17fromExceptionCodeEiRKNS_7String8E;
+ _ZN7android6binder6Status23setServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEi;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiPKc;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status2okEv;
+ _ZN7android6binder6StatusC1Eii;
+ _ZN7android6binder6StatusC1EiiRKNS_7String8E;
+ _ZN7android6binder6StatusC2Eii;
+ _ZN7android6binder6StatusC2EiiRKNS_7String8E;
+ _ZN7android6binder8internal21ClientCounterCallback10reRegisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback12forcePersistEb;
+ _ZN7android6binder8internal21ClientCounterCallback13tryUnregisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal21ClientCounterCallback25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal21ClientCounterCallbackC1Ev;
+ _ZN7android6binder8internal21ClientCounterCallbackC2Ev;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl10reRegisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl11tryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl12forcePersistEb;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl13tryUnregisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl16maybeTryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl23assertRegisteredServiceERKNS_2spINS_7IBinderEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android6Parcel10appendFromEPKS0_jj;
+ _ZN7android6Parcel10markForRpcERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android6Parcel10writeFloatEf;
+ _ZN7android6Parcel10writeInt32Ei;
+ _ZN7android6Parcel10writeInt64Ex;
+ _ZN7android6Parcel11compareDataERKS0_;
+ _ZN7android6Parcel11finishWriteEj;
+ _ZN7android6Parcel11setDataSizeEj;
+ _ZN7android6Parcel11writeDoubleEd;
+ _ZN7android6Parcel11writeObjectERK18flat_binder_objectb;
+ _ZN7android6Parcel11writeUint32Ej;
+ _ZN7android6Parcel11writeUint64Ey;
+ _ZN7android6Parcel12pushAllowFdsEb;
+ _ZN7android6Parcel12restartWriteEj;
+ _ZN7android6Parcel12writeCStringEPKc;
+ _ZN7android6Parcel12writeInplaceEj;
+ _ZN7android6Parcel12writePointerEj;
+ _ZN7android6Parcel12writeString8EPKcj;
+ _ZN7android6Parcel12writeString8ERKNS_7String8E;
+ _ZN7android6Parcel13continueWriteEj;
+ _ZN7android6Parcel13flattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13markForBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13writeString16EPKDsj;
+ _ZN7android6Parcel13writeString16ERKNS_8String16E;
+ _ZN7android6Parcel13writeString16ERKNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZN7android6Parcel13writeString16ERKNSt3__18optionalINS_8String16EEE;
+ _ZN7android6Parcel13writeUnpaddedEPKvj;
+ _ZN7android6Parcel14acquireObjectsEv;
+ _ZN7android6Parcel14freeDataNoInitEv;
+ _ZN7android6Parcel14releaseObjectsEv;
+ _ZN7android6Parcel14writeByteArrayEjPKh;
+ _ZN7android6Parcel15restoreAllowFdsEb;
+ _ZN7android6Parcel15setDataCapacityEj;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZN7android6Parcel15writeInt32ArrayEjPKi;
+ _ZN7android6Parcel15writeParcelableERKNS_10ParcelableE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__110unique_ptrINS1_6vectorIxNS1_9allocatorIxEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__16vectorIxNS1_9allocatorIxEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__18optionalINS1_6vectorIxNS1_9allocatorIxEEEEEE;
+ _ZN7android6Parcel16writeNoExceptionEv;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZN7android6Parcel17writeNativeHandleEPK13native_handle;
+ _ZN7android6Parcel17writeStrongBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__110unique_ptrINS1_6vectorIyNS1_9allocatorIyEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__16vectorIyNS1_9allocatorIyEEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__18optionalINS1_6vectorIyNS1_9allocatorIyEEEEEE;
+ _ZN7android6Parcel18getGlobalAllocSizeEv;
+ _ZN7android6Parcel19finishFlattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel19getGlobalAllocCountEv;
+ _ZN7android6Parcel19ipcSetDataReferenceEPKhjPKyjPFvPS0_S2_jS4_jE;
+ _ZN7android6Parcel19writeFileDescriptorEib;
+ _ZN7android6Parcel19writeInterfaceTokenEPKDsj;
+ _ZN7android6Parcel19writeInterfaceTokenERKNS_8String16E;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZN7android6Parcel20closeFileDescriptorsEv;
+ _ZN7android6Parcel22writeDupFileDescriptorEi;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZN7android6Parcel25writeParcelFileDescriptorEib;
+ _ZN7android6Parcel25writeUniqueFileDescriptorERKNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android6Parcel26writeRawNullableParcelableEPKNS_10ParcelableE;
+ _ZN7android6Parcel27replaceCallingWorkSourceUidEj;
+ _ZN7android6Parcel28writeDupParcelFileDescriptorEi;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZN7android6Parcel35writeDupImmutableBlobFileDescriptorEi;
+ _ZN7android6Parcel4Blob4initEiPvjb;
+ _ZN7android6Parcel4Blob5clearEv;
+ _ZN7android6Parcel4Blob7releaseEv;
+ _ZN7android6Parcel4BlobC1Ev;
+ _ZN7android6Parcel4BlobC2Ev;
+ _ZN7android6Parcel4BlobD1Ev;
+ _ZN7android6Parcel4BlobD2Ev;
+ _ZN7android6Parcel5writeEPKvj;
+ _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE;
+ _ZN7android6Parcel7setDataEPKhj;
+ _ZN7android6Parcel8freeDataEv;
+ _ZN7android6Parcel8growDataEj;
+ _ZN7android6Parcel8setErrorEi;
+ _ZN7android6Parcel9initStateEv;
+ _ZN7android6Parcel9writeBlobEjbPNS0_12WritableBlobE;
+ _ZN7android6Parcel9writeBoolEb;
+ _ZN7android6Parcel9writeByteEa;
+ _ZN7android6Parcel9writeCharEDs;
+ _ZN7android6ParcelC1Ev;
+ _ZN7android6ParcelC2Ev;
+ _ZN7android6ParcelD1Ev;
+ _ZN7android6ParcelD2Ev;
+ _ZN7android7BBinder10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinder10pingBinderEv;
+ _ZN7android7BBinder11getDebugPidEv;
+ _ZN7android7BBinder11isInheritRtEv;
+ _ZN7android7BBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android7BBinder11localBinderEv;
+ _ZN7android7BBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android7BBinder12detachObjectEPKv;
+ _ZN7android7BBinder12getExtensionEv;
+ _ZN7android7BBinder12setExtensionERKNS_2spINS_7IBinderEEE;
+ _ZN7android7BBinder12setInheritRtEb;
+ _ZN7android7BBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android7BBinder15isRequestingSidEv;
+ _ZN7android7BBinder16setRequestingSidEb;
+ _ZN7android7BBinder17getOrCreateExtrasEv;
+ _ZN7android7BBinder21getMinSchedulerPolicyEv;
+ _ZN7android7BBinder21setMinSchedulerPolicyEii;
+ _ZN7android7BBinder23getMinSchedulerPriorityEv;
+ _ZN7android7BBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinderC1Ev;
+ _ZN7android7BBinderC2Ev;
+ _ZN7android7BBinderD0Ev;
+ _ZN7android7BBinderD1Ev;
+ _ZN7android7BBinderD2Ev;
+ _ZN7android7content2pm18PackageChangeEvent14readFromParcelEPKNS_6ParcelE;
+ _ZN7android7content2pm21IPackageManagerNative10descriptorE;
+ _ZN7android7content2pm21IPackageManagerNative11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm21IPackageManagerNative12default_implE;
+ _ZN7android7content2pm21IPackageManagerNative14getDefaultImplEv;
+ _ZN7android7content2pm21IPackageManagerNative14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm21IPackageManagerNativeC2Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD2Ev;
+ _ZN7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm22BnPackageManagerNativeC2Ev;
+ _ZN7android7content2pm22BpPackageManagerNative14getAllPackagesEPNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative15getNamesForUidsERKNSt3__16vectorIiNS3_9allocatorIiEEEEPNS4_INS3_12basic_stringIcNS3_11char_traitsIcEENS5_IcEEEENS5_ISE_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative16getLocationFlagsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPi;
+ _ZN7android7content2pm22BpPackageManagerNative16hasSystemFeatureERKNS_8String16EiPb;
+ _ZN7android7content2pm22BpPackageManagerNative19isPackageDebuggableERKNS_8String16EPb;
+ _ZN7android7content2pm22BpPackageManagerNative22getInstallerForPackageERKNS_8String16EPNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative24getVersionCodeForPackageERKNS_8String16EPx;
+ _ZN7android7content2pm22BpPackageManagerNative27hasSha256SigningCertificateERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_6vectorIhNS7_IhEEEEPb;
+ _ZN7android7content2pm22BpPackageManagerNative28getModuleMetadataPackageNameEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29getTargetSdkVersionForPackageERKNS_8String16EPi;
+ _ZN7android7content2pm22BpPackageManagerNative29isAudioPlaybackCaptureAllowedERKNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEPNS4_IbNS8_IbEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29registerPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNative31unregisterPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver10descriptorE;
+ _ZN7android7content2pm22IPackageChangeObserver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver12default_implE;
+ _ZN7android7content2pm22IPackageChangeObserver14getDefaultImplEv;
+ _ZN7android7content2pm22IPackageChangeObserver14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm22IPackageChangeObserverC2Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD2Ev;
+ _ZN7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm23BnPackageChangeObserverC2Ev;
+ _ZN7android7content2pm23BpPackageChangeObserver16onPackageChangedERKNS1_18PackageChangeEventE;
+ _ZN7android7content2pm23BpPackageChangeObserverC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm23BpPackageChangeObserverC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7HexDumpC1EPKvjj;
+ _ZN7android7HexDumpC2EPKvjj;
+ _ZN7android7IBinder11getDebugPidEPi;
+ _ZN7android7IBinder11localBinderEv;
+ _ZN7android7IBinder12getExtensionEPNS_2spIS0_EE;
+ _ZN7android7IBinder12remoteBinderEv;
+ _ZN7android7IBinder12shellCommandERKNS_2spIS0_EEiiiRNS_6VectorINS_8String16EEERKNS1_INS_14IShellCallbackEEERKNS1_INS_15IResultReceiverEEE;
+ _ZN7android7IBinder19queryLocalInterfaceERKNS_8String16E;
+ _ZN7android7IBinderC2Ev;
+ _ZN7android7IBinderD0Ev;
+ _ZN7android7IBinderD1Ev;
+ _ZN7android7IBinderD2Ev;
+ _ZN7android7IMemory10descriptorE;
+ _ZN7android7IMemory11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7IMemory12default_implE;
+ _ZN7android7IMemory14getDefaultImplEv;
+ _ZN7android7IMemory14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android7IMemoryC2Ev;
+ _ZN7android7IMemoryD0Ev;
+ _ZN7android7IMemoryD1Ev;
+ _ZN7android7IMemoryD2Ev;
+ _ZN7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BnMemoryC2Ev;
+ _ZN7android8BnMemoryD0Ev;
+ _ZN7android8BnMemoryD1Ev;
+ _ZN7android8BnMemoryD2Ev;
+ _ZN7android8BpBinder10onFirstRefEv;
+ _ZN7android8BpBinder10pingBinderEv;
+ _ZN7android8BpBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android8BpBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android8BpBinder12detachObjectEPKv;
+ _ZN7android8BpBinder12remoteBinderEv;
+ _ZN7android8BpBinder12sendObituaryEv;
+ _ZN7android8BpBinder12sTrackingMapE;
+ _ZN7android8BpBinder13getCountByUidERNS_6VectorIjEES3_;
+ _ZN7android8BpBinder13ObjectManager4killEv;
+ _ZN7android8BpBinder13ObjectManager6attachEPKvPvS4_PFvS3_S4_S4_E;
+ _ZN7android8BpBinder13ObjectManager6detachEPKv;
+ _ZN7android8BpBinder13ObjectManagerC1Ev;
+ _ZN7android8BpBinder13ObjectManagerC2Ev;
+ _ZN7android8BpBinder13ObjectManagerD1Ev;
+ _ZN7android8BpBinder13ObjectManagerD2Ev;
+ _ZN7android8BpBinder13sTrackingLockE;
+ _ZN7android8BpBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android8BpBinder14reportOneDeathERKNS0_8ObituaryE;
+ _ZN7android8BpBinder14sLimitCallbackE;
+ _ZN7android8BpBinder15onLastStrongRefEPKv;
+ _ZN7android8BpBinder15sNumTrackedUidsE;
+ _ZN7android8BpBinder16enableCountByUidEv;
+ _ZN7android8BpBinder16setLimitCallbackEPFviE;
+ _ZN7android8BpBinder17disableCountByUidEv;
+ _ZN7android8BpBinder18sCountByUidEnabledE;
+ _ZN7android8BpBinder19getBinderProxyCountEj;
+ _ZN7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZN7android8BpBinder20setCountByUidEnabledEb;
+ _ZN7android8BpBinder26sBinderProxyThrottleCreateE;
+ _ZN7android8BpBinder29sBinderProxyCountLowWatermarkE;
+ _ZN7android8BpBinder29setBinderProxyCountWatermarksEii;
+ _ZN7android8BpBinder30sBinderProxyCountHighWatermarkE;
+ _ZN7android8BpBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android8BpBinder6createEi;
+ _ZN7android8BpBinder6createERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8BpBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BpBinderC1EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC1EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC1EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderC2EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC2EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC2EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderD0Ev;
+ _ZN7android8BpBinderD1Ev;
+ _ZN7android8BpBinderD2Ev;
+ _ZN7android8BpMemoryC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryD0Ev;
+ _ZN7android8BpMemoryD1Ev;
+ _ZN7android8BpMemoryD2Ev;
+ _ZN7android8internal9Stability11getCategoryEPNS_7IBinderE;
+ _ZN7android8internal9Stability11levelStringENS1_5LevelE;
+ _ZN7android8internal9Stability13getLocalLevelEv;
+ _ZN7android8internal9Stability15isDeclaredLevelENS1_5LevelE;
+ _ZN7android8internal9Stability17debugLogStabilityERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability19markCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability22tryMarkCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability24requiresVintfDeclarationERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability25forceDowngradeToStabilityERKNS_2spINS_7IBinderEEENS1_5LevelE;
+ _ZN7android8internal9Stability30forceDowngradeToLocalStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToSystemStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToVendorStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability5checkENS1_8CategoryENS1_5LevelE;
+ _ZN7android8internal9Stability7setReprEPNS_7IBinderEij;
+ _ZN7android8internal9Stability8Category11debugStringEv;
+ _ZN7android8internal9Stability8markVndkEPNS_7IBinderE;
+ _ZN7android8internal9Stability9markVintfEPNS_7IBinderE;
+ _ZN7android8RpcState11CommandDataC1Ej;
+ _ZN7android8RpcState11CommandDataC2Ej;
+ _ZN7android8RpcState12countBindersEv;
+ _ZN7android8RpcState12getSessionIdERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPi;
+ _ZN7android8RpcState12waitForReplyERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPNS_6ParcelE;
+ _ZN7android8RpcState13getMaxThreadsERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPj;
+ _ZN7android8RpcState13getRootObjectERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState13sendDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState15onBinderLeavingERKNS_2spINS_10RpcSessionEEERKNS1_INS_7IBinderEEEPNS_10RpcAddressE;
+ _ZN7android8RpcState15processTransactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState16onBinderEnteringERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState16processDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState20getAndExecuteCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState20processServerCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState23processTransactInternalERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEENS0_11CommandDataE;
+ _ZN7android8RpcState4dumpEv;
+ _ZN7android8RpcState6rpcRecERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPvj;
+ _ZN7android8RpcState7rpcSendERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPKvj;
+ _ZN7android8RpcState8transactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressEjRKNS_6ParcelERKNS_2spINS_10RpcSessionEEEPSA_j;
+ _ZN7android8RpcState9terminateEv;
+ _ZN7android8RpcStateC1Ev;
+ _ZN7android8RpcStateC2Ev;
+ _ZN7android8RpcStateD1Ev;
+ _ZN7android8RpcStateD2Ev;
+ _ZN7android9BpRefBase10onFirstRefEv;
+ _ZN7android9BpRefBase15onLastStrongRefEPKv;
+ _ZN7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZN7android9BpRefBaseC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseD0Ev;
+ _ZN7android9BpRefBaseD1Ev;
+ _ZN7android9BpRefBaseD2Ev;
+ _ZN7android9HeapCache10binderDiedERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCache10dump_heapsEv;
+ _ZN7android9HeapCache8get_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9find_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCacheC1Ev;
+ _ZN7android9HeapCacheC2Ev;
+ _ZN7android9HeapCacheD0Ev;
+ _ZN7android9HeapCacheD1Ev;
+ _ZN7android9HeapCacheD2Ev;
+ _ZN7android9hexStringEPKvj;
+ _ZN7android9RpcServer12listSessionsEv;
+ _ZN7android9RpcServer13getMaxThreadsEv;
+ _ZN7android9RpcServer13getRootObjectEv;
+ _ZN7android9RpcServer13releaseServerEv;
+ _ZN7android9RpcServer13setMaxThreadsEj;
+ _ZN7android9RpcServer13setRootObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android9RpcServer15setupInetServerEjPj;
+ _ZN7android9RpcServer16setupVsockServerEj;
+ _ZN7android9RpcServer17setRootObjectWeakERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9RpcServer17setupSocketServerERKNS_16RpcSocketAddressE;
+ _ZN7android9RpcServer19establishConnectionEONS_2spIS0_EENS_4base14unique_fd_implINS4_13DefaultCloserEEE;
+ _ZN7android9RpcServer19setupExternalServerENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android9RpcServer20onSessionTerminatingERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android9RpcServer21setupUnixDomainServerEPKc;
+ _ZN7android9RpcServer24numUninitializedSessionsEv;
+ _ZN7android9RpcServer4joinEv;
+ _ZN7android9RpcServer4makeEv;
+ _ZN7android9RpcServer61iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProductionEv;
+ _ZN7android9RpcServer9acceptOneEv;
+ _ZN7android9RpcServer9hasServerEv;
+ _ZN7android9RpcServerC1Ev;
+ _ZN7android9RpcServerC2Ev;
+ _ZN7android9RpcServerD0Ev;
+ _ZN7android9RpcServerD1Ev;
+ _ZN7android9RpcServerD2Ev;
+ _ZN7androidlsERNS_10TextOutputERKNS_7HexDumpE;
+ _ZN7androidlsERNS_10TextOutputERKNS_8TypeCodeE;
+ _ZN7androidlsIA15_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA24_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA2_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA34_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA3_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA43_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA4_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA5_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA8_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA9_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIjEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEERNS_10TextOutputES9_RKT_;
+ _ZN7androidlsIPcEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIPvEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIyEERNS_10TextOutputES2_RKT_;
+ _ZNK7android10MemoryBase9getMemoryEPiPj;
+ _ZNK7android10RpcAddress13writeToParcelEPNS_6ParcelE;
+ _ZNK7android10RpcAddress15viewRawEmbeddedEv;
+ _ZNK7android10RpcAddress6isZeroEv;
+ _ZNK7android10RpcAddress8toStringEv;
+ _ZNK7android10RpcAddressltERKS0_;
+ _ZNK7android11IMemoryHeap22getInterfaceDescriptorEv;
+ _ZNK7android12BpMemoryHeap12assertMappedEv;
+ _ZNK7android12BpMemoryHeap18assertReallyMappedEv;
+ _ZNK7android12BpMemoryHeap7getBaseEv;
+ _ZNK7android12BpMemoryHeap7getSizeEv;
+ _ZNK7android12BpMemoryHeap8getFlagsEv;
+ _ZNK7android12BpMemoryHeap9getHeapIDEv;
+ _ZNK7android12BpMemoryHeap9getOffsetEv;
+ _ZNK7android12MemoryDealer4dumpEPKc;
+ _ZNK7android12MemoryDealer4heapEv;
+ _ZNK7android12MemoryDealer9allocatorEv;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_compareEPKvSA_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE15do_move_forwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE16do_move_backwardEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE7do_copyEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE8do_splatEPvPKvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_compareES3_S3_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_destroyEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE12do_constructEPvj;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE15do_move_forwardEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE16do_move_backwardEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE7do_copyEPvS3_j;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE8do_splatEPvS3_j;
+ _ZNK7android14IPCThreadState13getCallingPidEv;
+ _ZNK7android14IPCThreadState13getCallingSidEv;
+ _ZNK7android14IPCThreadState13getCallingUidEv;
+ _ZNK7android14IPCThreadState18getCallRestrictionEv;
+ _ZNK7android14IPCThreadState19getStrictModePolicyEv;
+ _ZNK7android14IPCThreadState22getServingStackPointerEv;
+ _ZNK7android14IPCThreadState23getCallingWorkSourceUidEv;
+ _ZNK7android14IPCThreadState25shouldPropagateWorkSourceEv;
+ _ZNK7android14IPCThreadState29getLastTransactionBinderFlagsEv;
+ _ZNK7android14IShellCallback22getInterfaceDescriptorEv;
+ _ZNK7android14MemoryHeapBase7getBaseEv;
+ _ZNK7android14MemoryHeapBase7getSizeEv;
+ _ZNK7android14MemoryHeapBase8getFlagsEv;
+ _ZNK7android14MemoryHeapBase9getDeviceEv;
+ _ZNK7android14MemoryHeapBase9getHeapIDEv;
+ _ZNK7android14MemoryHeapBase9getOffsetEv;
+ _ZNK7android15IResultReceiver22getInterfaceDescriptorEv;
+ _ZNK7android15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android18BufferedTextOutput9getBufferEv;
+ _ZNK7android18ServiceManagerShim10getServiceERKNS_8String16E;
+ _ZNK7android18ServiceManagerShim12checkServiceERKNS_8String16E;
+ _ZNK7android22SimpleBestFitAllocator4dumpEPKc;
+ _ZNK7android22SimpleBestFitAllocator4dumpERNS_7String8EPKc;
+ _ZNK7android22SimpleBestFitAllocator4sizeEv;
+ _ZNK7android22SimpleBestFitAllocator6dump_lEPKc;
+ _ZNK7android22SimpleBestFitAllocator6dump_lERNS_7String8EPKc;
+ _ZNK7android2os15IClientCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android2os16IServiceCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os16ParcelableHolder13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os16ServiceDebugInfo13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle10getBooleanERKNS_8String16EPb;
+ _ZNK7android2os17PersistableBundle10getIntKeysEv;
+ _ZNK7android2os17PersistableBundle11getLongKeysEv;
+ _ZNK7android2os17PersistableBundle12getIntVectorERKNS_8String16EPNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZNK7android2os17PersistableBundle13getDoubleKeysEv;
+ _ZNK7android2os17PersistableBundle13getLongVectorERKNS_8String16EPNSt3__16vectorIxNS5_9allocatorIxEEEE;
+ _ZNK7android2os17PersistableBundle13getStringKeysEv;
+ _ZNK7android2os17PersistableBundle13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle14getBooleanKeysEv;
+ _ZNK7android2os17PersistableBundle15getDoubleVectorERKNS_8String16EPNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZNK7android2os17PersistableBundle15getStringVectorERKNS_8String16EPNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZNK7android2os17PersistableBundle16getBooleanVectorERKNS_8String16EPNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZNK7android2os17PersistableBundle16getIntVectorKeysEv;
+ _ZNK7android2os17PersistableBundle17getLongVectorKeysEv;
+ _ZNK7android2os17PersistableBundle18writeToParcelInnerEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle19getDoubleVectorKeysEv;
+ _ZNK7android2os17PersistableBundle19getStringVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getBooleanVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getPersistableBundleERKNS_8String16EPS1_;
+ _ZNK7android2os17PersistableBundle24getPersistableBundleKeysEv;
+ _ZNK7android2os17PersistableBundle4sizeEv;
+ _ZNK7android2os17PersistableBundle5emptyEv;
+ _ZNK7android2os17PersistableBundle6getIntERKNS_8String16EPi;
+ _ZNK7android2os17PersistableBundle7getLongERKNS_8String16EPx;
+ _ZNK7android2os17PersistableBundle9getDoubleERKNS_8String16EPd;
+ _ZNK7android2os17PersistableBundle9getStringERKNS_8String16EPS2_;
+ _ZNK7android2os20ParcelFileDescriptor13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status9toString8Ev;
+ _ZNK7android6Parcel10errorCheckEv;
+ _ZNK7android6Parcel10ipcObjectsEv;
+ _ZNK7android6Parcel10readDoubleEPd;
+ _ZNK7android6Parcel10readDoubleEv;
+ _ZNK7android6Parcel10readObjectEb;
+ _ZNK7android6Parcel10readUint32EPj;
+ _ZNK7android6Parcel10readUint32Ev;
+ _ZNK7android6Parcel10readUint64EPy;
+ _ZNK7android6Parcel10readUint64Ev;
+ _ZNK7android6Parcel10scanForFdsEv;
+ _ZNK7android6Parcel11ipcDataSizeEv;
+ _ZNK7android6Parcel11readCStringEv;
+ _ZNK7android6Parcel11readInplaceEj;
+ _ZNK7android6Parcel11readPointerEPj;
+ _ZNK7android6Parcel11readPointerEv;
+ _ZNK7android6Parcel11readString8EPNS_7String8E;
+ _ZNK7android6Parcel11readString8Ev;
+ _ZNK7android6Parcel12dataCapacityEv;
+ _ZNK7android6Parcel12dataPositionEv;
+ _ZNK7android6Parcel12objectsCountEv;
+ _ZNK7android6Parcel12readString16EPNS_8String16E;
+ _ZNK7android6Parcel12readString16EPNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZNK7android6Parcel12readString16EPNSt3__18optionalINS_8String16EEE;
+ _ZNK7android6Parcel12readString16Ev;
+ _ZNK7android6Parcel13markSensitiveEv;
+ _ZNK7android6Parcel14checkInterfaceEPNS_7IBinderE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZNK7android6Parcel14readParcelableEPNS_10ParcelableE;
+ _ZNK7android6Parcel15ipcObjectsCountEv;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__110unique_ptrINS1_6vectorIxNS1_9allocatorIxEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__16vectorIxNS1_9allocatorIxEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__18optionalINS1_6vectorIxNS1_9allocatorIxEEEEEE;
+ _ZNK7android6Parcel15setDataPositionEj;
+ _ZNK7android6Parcel15unflattenBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16enforceInterfaceEPKDsjPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16enforceInterfaceERKNS_8String16EPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZNK7android6Parcel16readNativeHandleEv;
+ _ZNK7android6Parcel16readStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16readStrongBinderEv;
+ _ZNK7android6Parcel16readStrongBinderINS_2os15IClientCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_2os16IServiceCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_7content2pm22IPackageChangeObserverEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__110unique_ptrINS1_6vectorIyNS1_9allocatorIyEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__16vectorIyNS1_9allocatorIyEEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__18optionalINS1_6vectorIyNS1_9allocatorIyEEEEEE;
+ _ZNK7android6Parcel16validateReadDataEj;
+ _ZNK7android6Parcel17getBlobAshmemSizeEv;
+ _ZNK7android6Parcel17getOpenAshmemSizeEv;
+ _ZNK7android6Parcel17readExceptionCodeEv;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZNK7android6Parcel18hasFileDescriptorsEv;
+ _ZNK7android6Parcel18readFileDescriptorEv;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZNK7android6Parcel18readString8InplaceEPj;
+ _ZNK7android6Parcel19readString16InplaceEPj;
+ _ZNK7android6Parcel21finishUnflattenBinderERKNS_2spINS_7IBinderEEEPS3_;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZNK7android6Parcel24readCallingWorkSourceUidEv;
+ _ZNK7android6Parcel24readNullableStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel24readParcelFileDescriptorEv;
+ _ZNK7android6Parcel24readUniqueFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZNK7android6Parcel30readUniqueParcelFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel37updateWorkSourceRequestHeaderPositionEv;
+ _ZNK7android6Parcel4dataEv;
+ _ZNK7android6Parcel4readEPvj;
+ _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE;
+ _ZNK7android6Parcel5printERNS_10TextOutputEj;
+ _ZNK7android6Parcel7ipcDataEv;
+ _ZNK7android6Parcel8allowFdsEv;
+ _ZNK7android6Parcel8dataSizeEv;
+ _ZNK7android6Parcel8isForRpcEv;
+ _ZNK7android6Parcel8readBlobEjPNS0_12ReadableBlobE;
+ _ZNK7android6Parcel8readBoolEPb;
+ _ZNK7android6Parcel8readBoolEv;
+ _ZNK7android6Parcel8readByteEPa;
+ _ZNK7android6Parcel8readByteEv;
+ _ZNK7android6Parcel8readCharEPDs;
+ _ZNK7android6Parcel8readCharEv;
+ _ZNK7android6Parcel9dataAvailEv;
+ _ZNK7android6Parcel9readFloatEPf;
+ _ZNK7android6Parcel9readFloatEv;
+ _ZNK7android6Parcel9readInt32EPi;
+ _ZNK7android6Parcel9readInt32Ev;
+ _ZNK7android6Parcel9readInt64EPx;
+ _ZNK7android6Parcel9readInt64Ev;
+ _ZNK7android6VectorIiE10do_destroyEPvj;
+ _ZNK7android6VectorIiE12do_constructEPvj;
+ _ZNK7android6VectorIiE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIiE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIiE7do_copyEPvPKvj;
+ _ZNK7android6VectorIiE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE12do_constructEPvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE12do_constructEPvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE10do_destroyEPvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE12do_constructEPvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE8do_splatEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE10do_destroyEPvj;
+ _ZNK7android6VectorINS_8String16EE12do_constructEPvj;
+ _ZNK7android6VectorINS_8String16EE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE7do_copyEPvPKvj;
+ _ZNK7android6VectorINS_8String16EE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7BBinderEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7BBinderEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7BBinderEE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE8do_splatEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE10do_destroyEPvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE12do_constructEPvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE15do_move_forwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE16do_move_backwardEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE7do_copyEPvPKvj;
+ _ZNK7android6VectorIPNS_7RefBaseEE8do_splatEPvPKvj;
+ _ZNK7android7BBinder10findObjectEPKv;
+ _ZNK7android7BBinder13isBinderAliveEv;
+ _ZNK7android7BBinder22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm18PackageChangeEvent13writeToParcelEPNS_6ParcelE;
+ _ZNK7android7content2pm21IPackageManagerNative22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm22IPackageChangeObserver22getInterfaceDescriptorEv;
+ _ZNK7android7IBinder13checkSubclassEPKv;
+ _ZNK7android7IMemory11fastPointerERKNS_2spINS_7IBinderEEEi;
+ _ZNK7android7IMemory15unsecurePointerEv;
+ _ZNK7android7IMemory22getInterfaceDescriptorEv;
+ _ZNK7android7IMemory4sizeEv;
+ _ZNK7android7IMemory6offsetEv;
+ _ZNK7android7IMemory7pointerEv;
+ _ZNK7android8BpBinder10findObjectEPKv;
+ _ZNK7android8BpBinder10rpcAddressEv;
+ _ZNK7android8BpBinder10rpcSessionEv;
+ _ZNK7android8BpBinder11isRpcBinderEv;
+ _ZNK7android8BpBinder12binderHandleEv;
+ _ZNK7android8BpBinder13isBinderAliveEv;
+ _ZNK7android8BpBinder13ObjectManager4findEPKv;
+ _ZNK7android8BpBinder18isDescriptorCachedEv;
+ _ZNK7android8BpBinder22getInterfaceDescriptorEv;
+ _ZNK7android8BpMemory9getMemoryEPiPj;
+ _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE14__count_uniqueIS7_EEjRKT_;
+ _ZNSt3__111__sift_downIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeESB_;
+ _ZNSt3__111unique_lockINS_5mutexEE6unlockEv;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE14__erase_uniqueIiEEjRKT_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE25__emplace_unique_key_argsIiJRKNS_21piecewise_construct_tENS_5tupleIJRKiEEENSI_IJEEEEEENS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEERKT_DpOT0_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6rehashEj;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS2_PvEEEE;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE8__rehashEj;
+ _ZNSt3__113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__113unordered_mapIijNS_4hashIiEENS_8equal_toIiEENS_9allocatorINS_4pairIKijEEEEEixERS7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEMN7android9RpcServerEFvONS7_2spIS8_EENS7_4base14unique_fd_implINSC_13DefaultCloserEEEEPS8_SA_SF_EEEEEPvSK_;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_j;
+ _ZNSt3__127__tree_balance_after_insertIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__13mapIiN7android2spINS1_10RpcSessionEEENS_4lessIiEENS_9allocatorINS_4pairIKiS4_EEEEEixERS9_;
+ _ZNSt3__13mapIN7android8String16EbNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_bEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16EdNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_dEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16EiNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_iEEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16ENS1_2os17PersistableBundleENS_4lessIS2_EENS_9allocatorINS_4pairIKS2_S4_EEEEEixERS9_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIS2_NS_9allocatorIS2_EEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEENS_4lessIS2_EENS4_INS_4pairIKS2_S6_EEEEEixERSA_;
+ _ZNSt3__13mapIN7android8String16ES2_NS_4lessIS2_EENS_9allocatorINS_4pairIKS2_S2_EEEEEixERS7_;
+ _ZNSt3__13mapIN7android8String16ExNS_4lessIS2_EENS_9allocatorINS_4pairIKS2_xEEEEEixERS7_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE12__find_equalIS2_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISC_EERKT_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE25__emplace_unique_key_argsIS2_JRKS2_EEENS_4pairINS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE7destroyEPNS_11__tree_nodeIS2_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JNS_4pairIKS3_S5_EEEEENSF_INS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SG_EEiEERPNS_15__tree_end_nodeISI_EESJ_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISI_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__assign_multiINS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEEEvT_SL_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE15__emplace_multiIJRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSI_IJEEEEEENS_4pairINS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEENS_21__tree_const_iteratorIS6_SO_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EEiEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEENS_21__tree_const_iteratorIS8_SP_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIxNS_9allocatorIxEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__erase_uniqueIS3_EEjRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE5eraseENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EEiEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_xEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_xEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEENS_21__tree_const_iteratorIS4_SM_iEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEEiEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ExEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_11__thread_idENS_6threadEEENS_19__map_value_compareIS2_S4_NS_4lessIS2_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE12__find_equalIS7_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISO_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE25__emplace_unique_key_argsIS7_JRKNS_21piecewise_construct_tENS_5tupleIJRKS7_EEENSO_IJEEEEEENS_4pairINS_15__tree_iteratorISD_PNS_11__tree_nodeISD_PvEEiEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE7destroyEPNS_11__tree_nodeISD_PvEE;
+ _ZNSt3__16vectorIaNS_9allocatorIaEEE6insertIPKaEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIaNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPaEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb0ELj0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb1ELj0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE7reserveEj;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE9push_backERKb;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEEaSERKS3_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6assignIPdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6insertIPKdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPdEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEEC2ERKS3_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE24__emplace_back_slow_pathIJDsEEEvDpOT_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE7reserveEj;
+ _ZNSt3__16vectorIfNS_9allocatorIfEEE6insertIPKfEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIfNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPfEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIhNS_9allocatorIhEEE6insertIPKhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPhEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6assignIPiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6insertIPKiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPiEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIN7android2os16ServiceDebugInfoENS_9allocatorIS3_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSession13RpcConnectionEEENS_9allocatorIS5_EEE21__push_back_slow_pathIRKS5_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSessionEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android4base14unique_fd_implINS2_13DefaultCloserEEENS_9allocatorIS5_EEE8__appendEj;
+ _ZNSt3__16vectorIN7android8RpcState10BinderNode9AsyncTodoENS_9allocatorIS4_EEE21__push_back_slow_pathIS4_EEvOT_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE8__appendEj;
+ _ZNSt3__16vectorINS_10unique_ptrIN7android8String16ENS_14default_deleteIS3_EEEENS_9allocatorIS6_EEE8__appendEj;
+ _ZNSt3__16vectorINS_10unique_ptrINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_14default_deleteIS7_EEEENS5_ISA_EEE8__appendEj;
+ _ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE8__appendEj;
+ _ZNSt3__16vectorINS_8optionalIN7android8String16EEENS_9allocatorIS4_EEE8__appendEj;
+ _ZNSt3__16vectorINS_8optionalINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEE8__appendEj;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEE6assignIPxEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIxNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEE6insertIPKxEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIxNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPxEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIxNS_9allocatorIxEEEC2ERKS3_;
+ _ZNSt3__16vectorIyNS_9allocatorIyEEE6insertIPKyEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIyNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPyEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__19__sift_upIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeE;
+ _ZTCN7android10AllocationE0_NS_10IInterfaceE;
+ _ZTCN7android10AllocationE0_NS_10MemoryBaseE;
+ _ZTCN7android10AllocationE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10AllocationE0_NS_7IMemoryE;
+ _ZTCN7android10AllocationE0_NS_8BnMemoryE;
+ _ZTCN7android10AllocationE4_NS_7BBinderE;
+ _ZTCN7android10AllocationE4_NS_7IBinderE;
+ _ZTCN7android10MemoryBaseE0_NS_10IInterfaceE;
+ _ZTCN7android10MemoryBaseE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10MemoryBaseE0_NS_7IMemoryE;
+ _ZTCN7android10MemoryBaseE0_NS_8BnMemoryE;
+ _ZTCN7android10MemoryBaseE4_NS_7BBinderE;
+ _ZTCN7android10MemoryBaseE4_NS_7IBinderE;
+ _ZTCN7android10PoolThreadE0_NS_6ThreadE;
+ _ZTCN7android11IMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BnMemoryHeapE4_NS_7BBinderE;
+ _ZTCN7android12BnMemoryHeapE4_NS_7IBinderE;
+ _ZTCN7android12BpMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11BpInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BpMemoryHeapE4_NS_9BpRefBaseE;
+ _ZTCN7android14IShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_11IMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE32_NS_12BnMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE36_NS_7BBinderE;
+ _ZTCN7android14MemoryHeapBaseE36_NS_7IBinderE;
+ _ZTCN7android15BnShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BnShellCallbackE0_NS_11BnInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BnShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BnShellCallbackE4_NS_7BBinderE;
+ _ZTCN7android15BnShellCallbackE4_NS_7IBinderE;
+ _ZTCN7android15BpShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BpShellCallbackE0_NS_11BpInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BpShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BpShellCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android15IResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_11BnInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BnResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BnResultReceiverE4_NS_7BBinderE;
+ _ZTCN7android16BnResultReceiverE4_NS_7IBinderE;
+ _ZTCN7android16BpResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BpResultReceiverE0_NS_11BpInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BpResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BpResultReceiverE4_NS_9BpRefBaseE;
+ _ZTCN7android18ServiceManagerShimE0_NS_10IInterfaceE;
+ _ZTCN7android18ServiceManagerShimE0_NS_15IServiceManagerE;
+ _ZTCN7android2os15IClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_11BnInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BnClientCallbackE4_NS_7BBinderE;
+ _ZTCN7android2os16BnClientCallbackE4_NS_7IBinderE;
+ _ZTCN7android2os16BnServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_11BnInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BnServiceManagerE4_NS_7BBinderE;
+ _ZTCN7android2os16BnServiceManagerE4_NS_7IBinderE;
+ _ZTCN7android2os16BpClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_11BpInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BpClientCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android2os16BpServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_11BpInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BpServiceManagerE4_NS_9BpRefBaseE;
+ _ZTCN7android2os16IServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_11BnInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BnServiceCallbackE4_NS_7BBinderE;
+ _ZTCN7android2os17BnServiceCallbackE4_NS_7IBinderE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_11BpInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BpServiceCallbackE4_NS_9BpRefBaseE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_10IInterfaceE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_11BnInterfaceINS_2os15IClientCallbackEEE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os15IClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os16BnClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE4_NS_7BBinderE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE4_NS_7IBinderE;
+ _ZTCN7android7BBinderE0_NS_7IBinderE;
+ _ZTCN7android7content2pm21IPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_11BnInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE4_NS_7BBinderE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE4_NS_7IBinderE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_11BpInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE4_NS_9BpRefBaseE;
+ _ZTCN7android7content2pm22IPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_11BnInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE4_NS_7BBinderE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE4_NS_7IBinderE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_11BpInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE4_NS_9BpRefBaseE;
+ _ZTCN7android7IMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BnMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BnMemoryE4_NS_7BBinderE;
+ _ZTCN7android8BnMemoryE4_NS_7IBinderE;
+ _ZTCN7android8BpBinderE0_NS_7IBinderE;
+ _ZTCN7android8BpMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BpMemoryE0_NS_11BpInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BpMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BpMemoryE4_NS_9BpRefBaseE;
+ _ZTCN7android9HeapCacheE0_NS_7IBinder14DeathRecipientE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE8_NS_13basic_ostreamIcS2_EE;
+ _ZThn4_N7android10AllocationD0Ev;
+ _ZThn4_N7android10AllocationD1Ev;
+ _ZThn4_N7android10MemoryBaseD0Ev;
+ _ZThn4_N7android10MemoryBaseD1Ev;
+ _ZThn4_N7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android12BnMemoryHeapD0Ev;
+ _ZThn4_N7android12BnMemoryHeapD1Ev;
+ _ZThn4_N7android12BpMemoryHeapD0Ev;
+ _ZThn4_N7android12BpMemoryHeapD1Ev;
+ _ZThn4_N7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn4_N7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn4_N7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn4_N7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn4_N7android8BnMemoryD0Ev;
+ _ZThn4_N7android8BnMemoryD1Ev;
+ _ZThn4_N7android8BpMemoryD0Ev;
+ _ZThn4_N7android8BpMemoryD1Ev;
+ _ZTTN7android10AllocationE;
+ _ZTTN7android10IInterfaceE;
+ _ZTTN7android10MemoryBaseE;
+ _ZTTN7android10PoolThreadE;
+ _ZTTN7android10RpcSessionE;
+ _ZTTN7android11IMemoryHeapE;
+ _ZTTN7android12BnMemoryHeapE;
+ _ZTTN7android12BpMemoryHeapE;
+ _ZTTN7android12ProcessStateE;
+ _ZTTN7android14IShellCallbackE;
+ _ZTTN7android14MemoryHeapBaseE;
+ _ZTTN7android15BnShellCallbackE;
+ _ZTTN7android15BpShellCallbackE;
+ _ZTTN7android15IResultReceiverE;
+ _ZTTN7android15IServiceManagerE;
+ _ZTTN7android16BnResultReceiverE;
+ _ZTTN7android16BpResultReceiverE;
+ _ZTTN7android18ServiceManagerShimE;
+ _ZTTN7android2os15IClientCallbackE;
+ _ZTTN7android2os15IServiceManagerE;
+ _ZTTN7android2os16BnClientCallbackE;
+ _ZTTN7android2os16BnServiceManagerE;
+ _ZTTN7android2os16BpClientCallbackE;
+ _ZTTN7android2os16BpServiceManagerE;
+ _ZTTN7android2os16IServiceCallbackE;
+ _ZTTN7android2os17BnServiceCallbackE;
+ _ZTTN7android2os17BpServiceCallbackE;
+ _ZTTN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTTN7android7BBinderE;
+ _ZTTN7android7content2pm21IPackageManagerNativeE;
+ _ZTTN7android7content2pm22BnPackageManagerNativeE;
+ _ZTTN7android7content2pm22BpPackageManagerNativeE;
+ _ZTTN7android7content2pm22IPackageChangeObserverE;
+ _ZTTN7android7content2pm23BnPackageChangeObserverE;
+ _ZTTN7android7content2pm23BpPackageChangeObserverE;
+ _ZTTN7android7IBinderE;
+ _ZTTN7android7IMemoryE;
+ _ZTTN7android8BnMemoryE;
+ _ZTTN7android8BpBinderE;
+ _ZTTN7android8BpMemoryE;
+ _ZTTN7android9BpRefBaseE;
+ _ZTTN7android9HeapCacheE;
+ _ZTTN7android9RpcServerE;
+ _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTv0_n12_N7android10AllocationD0Ev;
+ _ZTv0_n12_N7android10AllocationD1Ev;
+ _ZTv0_n12_N7android10IInterfaceD0Ev;
+ _ZTv0_n12_N7android10IInterfaceD1Ev;
+ _ZTv0_n12_N7android10MemoryBaseD0Ev;
+ _ZTv0_n12_N7android10MemoryBaseD1Ev;
+ _ZTv0_n12_N7android10RpcSessionD0Ev;
+ _ZTv0_n12_N7android10RpcSessionD1Ev;
+ _ZTv0_n12_N7android11IMemoryHeapD0Ev;
+ _ZTv0_n12_N7android11IMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12BnMemoryHeapD0Ev;
+ _ZTv0_n12_N7android12BnMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12BpMemoryHeapD0Ev;
+ _ZTv0_n12_N7android12BpMemoryHeapD1Ev;
+ _ZTv0_n12_N7android12ProcessStateD0Ev;
+ _ZTv0_n12_N7android12ProcessStateD1Ev;
+ _ZTv0_n12_N7android14IShellCallbackD0Ev;
+ _ZTv0_n12_N7android14IShellCallbackD1Ev;
+ _ZTv0_n12_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n12_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n12_N7android15IResultReceiverD0Ev;
+ _ZTv0_n12_N7android15IResultReceiverD1Ev;
+ _ZTv0_n12_N7android15IServiceManagerD0Ev;
+ _ZTv0_n12_N7android15IServiceManagerD1Ev;
+ _ZTv0_n12_N7android2os15IClientCallbackD0Ev;
+ _ZTv0_n12_N7android2os15IClientCallbackD1Ev;
+ _ZTv0_n12_N7android2os15IServiceManagerD0Ev;
+ _ZTv0_n12_N7android2os15IServiceManagerD1Ev;
+ _ZTv0_n12_N7android2os16IServiceCallbackD0Ev;
+ _ZTv0_n12_N7android2os16IServiceCallbackD1Ev;
+ _ZTv0_n12_N7android7BBinderD0Ev;
+ _ZTv0_n12_N7android7BBinderD1Ev;
+ _ZTv0_n12_N7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZTv0_n12_N7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZTv0_n12_N7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZTv0_n12_N7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZTv0_n12_N7android7IBinderD0Ev;
+ _ZTv0_n12_N7android7IBinderD1Ev;
+ _ZTv0_n12_N7android7IMemoryD0Ev;
+ _ZTv0_n12_N7android7IMemoryD1Ev;
+ _ZTv0_n12_N7android8BnMemoryD0Ev;
+ _ZTv0_n12_N7android8BnMemoryD1Ev;
+ _ZTv0_n12_N7android8BpBinderD0Ev;
+ _ZTv0_n12_N7android8BpBinderD1Ev;
+ _ZTv0_n12_N7android8BpMemoryD0Ev;
+ _ZTv0_n12_N7android8BpMemoryD1Ev;
+ _ZTv0_n12_N7android9BpRefBaseD0Ev;
+ _ZTv0_n12_N7android9BpRefBaseD1Ev;
+ _ZTv0_n12_N7android9HeapCacheD0Ev;
+ _ZTv0_n12_N7android9HeapCacheD1Ev;
+ _ZTv0_n12_N7android9RpcServerD0Ev;
+ _ZTv0_n12_N7android9RpcServerD1Ev;
+ _ZTv0_n16_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n16_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n16_N7android8BpBinder10onFirstRefEv;
+ _ZTv0_n16_N7android9BpRefBase10onFirstRefEv;
+ _ZTv0_n20_N7android8BpBinder15onLastStrongRefEPKv;
+ _ZTv0_n20_N7android9BpRefBase15onLastStrongRefEPKv;
+ _ZTv0_n24_N7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZTv0_n24_N7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZTv0_n28_NK7android14MemoryHeapBase9getHeapIDEv;
+ _ZTv0_n32_NK7android14MemoryHeapBase7getBaseEv;
+ _ZTv0_n36_NK7android14MemoryHeapBase7getSizeEv;
+ _ZTv0_n40_NK7android14MemoryHeapBase8getFlagsEv;
+ _ZTv0_n44_NK7android14MemoryHeapBase9getOffsetEv;
+ _ZTvn4_n16_N7android14MemoryHeapBaseD0Ev;
+ _ZTvn4_n16_N7android14MemoryHeapBaseD1Ev;
+ _ZTVN7android10AllocationE;
+ _ZTVN7android10IInterfaceE;
+ _ZTVN7android10MemoryBaseE;
+ _ZTVN7android10PoolThreadE;
+ _ZTVN7android10RpcSession13RpcConnectionE;
+ _ZTVN7android10RpcSessionE;
+ _ZTVN7android10TextOutputE;
+ _ZTVN7android11IMemoryHeapE;
+ _ZTVN7android12BnMemoryHeapE;
+ _ZTVN7android12BpMemoryHeapE;
+ _ZTVN7android12FdTextOutputE;
+ _ZTVN7android12MemoryDealerE;
+ _ZTVN7android12ProcessStateE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEEE;
+ _ZTVN7android13LogTextOutputE;
+ _ZTVN7android14IShellCallbackE;
+ _ZTVN7android14MemoryHeapBaseE;
+ _ZTVN7android15BnShellCallbackE;
+ _ZTVN7android15BpShellCallbackE;
+ _ZTVN7android15IResultReceiverE;
+ _ZTVN7android15IServiceManagerE;
+ _ZTVN7android16BnResultReceiverE;
+ _ZTVN7android16BpResultReceiverE;
+ _ZTVN7android17InetSocketAddressE;
+ _ZTVN7android17UnixSocketAddressE;
+ _ZTVN7android18BufferedTextOutput11BufferStateE;
+ _ZTVN7android18BufferedTextOutputE;
+ _ZTVN7android18ServiceManagerShimE;
+ _ZTVN7android18VsockSocketAddressE;
+ _ZTVN7android2os15IClientCallbackE;
+ _ZTVN7android2os15IServiceManagerE;
+ _ZTVN7android2os16BnClientCallbackE;
+ _ZTVN7android2os16BnServiceManagerE;
+ _ZTVN7android2os16BpClientCallbackE;
+ _ZTVN7android2os16BpServiceManagerE;
+ _ZTVN7android2os16IServiceCallbackE;
+ _ZTVN7android2os16ParcelableHolderE;
+ _ZTVN7android2os16ServiceDebugInfoE;
+ _ZTVN7android2os17BnServiceCallbackE;
+ _ZTVN7android2os17BpServiceCallbackE;
+ _ZTVN7android2os17PersistableBundleE;
+ _ZTVN7android2os20ParcelFileDescriptorE;
+ _ZTVN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTVN7android6VectorIiEE;
+ _ZTVN7android6VectorINS_12ProcessState12handle_entryEEE;
+ _ZTVN7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEEE;
+ _ZTVN7android6VectorINS_8BpBinder8ObituaryEEE;
+ _ZTVN7android6VectorINS_8String16EEE;
+ _ZTVN7android6VectorIPNS_7BBinderEEE;
+ _ZTVN7android6VectorIPNS_7RefBase12weakref_typeEEE;
+ _ZTVN7android6VectorIPNS_7RefBaseEEE;
+ _ZTVN7android7BBinderE;
+ _ZTVN7android7content2pm18PackageChangeEventE;
+ _ZTVN7android7content2pm21IPackageManagerNativeE;
+ _ZTVN7android7content2pm22BnPackageManagerNativeE;
+ _ZTVN7android7content2pm22BpPackageManagerNativeE;
+ _ZTVN7android7content2pm22IPackageChangeObserverE;
+ _ZTVN7android7content2pm23BnPackageChangeObserverE;
+ _ZTVN7android7content2pm23BpPackageChangeObserverE;
+ _ZTVN7android7IBinderE;
+ _ZTVN7android7IMemoryE;
+ _ZTVN7android8BnMemoryE;
+ _ZTVN7android8BpBinderE;
+ _ZTVN7android8BpMemoryE;
+ _ZTVN7android9BpRefBaseE;
+ _ZTVN7android9HeapCacheE;
+ _ZTVN7android9RpcServerE;
+ _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEEE;
+ local:
+ *;
+};
diff --git a/libs/binder/libbinder.arm64.map b/libs/binder/libbinder.arm64.map
new file mode 100644
index 0000000..dc34de8
--- /dev/null
+++ b/libs/binder/libbinder.arm64.map
@@ -0,0 +1,1601 @@
+# b/190148312: Populate with correct list of ABI symbols
+LIBBINDER {
+ global:
+ getBinderKernelReferences;
+ kDefaultDriver;
+ _ZN7android10AllocationC1ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEElm;
+ _ZN7android10AllocationC2ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEElm;
+ _ZN7android10AllocationD0Ev;
+ _ZN7android10AllocationD1Ev;
+ _ZN7android10AllocationD2Ev;
+ _ZN7android10IInterface8asBinderEPKS0_;
+ _ZN7android10IInterface8asBinderERKNS_2spIS0_EE;
+ _ZN7android10IInterfaceC2Ev;
+ _ZN7android10IInterfaceD0Ev;
+ _ZN7android10IInterfaceD1Ev;
+ _ZN7android10IInterfaceD2Ev;
+ _ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEElm;
+ _ZN7android10MemoryBaseC2ERKNS_2spINS_11IMemoryHeapEEElm;
+ _ZN7android10MemoryBaseD0Ev;
+ _ZN7android10MemoryBaseD1Ev;
+ _ZN7android10MemoryBaseD2Ev;
+ _ZN7android10RpcAddress14readFromParcelERKNS_6ParcelE;
+ _ZN7android10RpcAddress15fromRawEmbeddedEPKNS_14RpcWireAddressE;
+ _ZN7android10RpcAddress4zeroEv;
+ _ZN7android10RpcAddress6uniqueEv;
+ _ZN7android10RpcAddressC1Ev;
+ _ZN7android10RpcAddressC2Ev;
+ _ZN7android10RpcAddressD1Ev;
+ _ZN7android10RpcAddressD2Ev;
+ _ZN7android10RpcSession12setForServerERKNS_2wpINS_9RpcServerEEEi;
+ _ZN7android10RpcSession13getRootObjectEv;
+ _ZN7android10RpcSession13sendDecStrongERKNS_10RpcAddressE;
+ _ZN7android10RpcSession15setupInetClientEPKcj;
+ _ZN7android10RpcSession15terminateLockedEv;
+ _ZN7android10RpcSession16setupVsockClientEjj;
+ _ZN7android10RpcSession17setupSocketClientERKNS_16RpcSocketAddressE;
+ _ZN7android10RpcSession19addClientConnectionENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession19ExclusiveConnection14findConnectionEiPNS_2spINS0_13RpcConnectionEEES5_RNSt3__16vectorIS4_NS6_9allocatorIS4_EEEEm;
+ _ZN7android10RpcSession19ExclusiveConnectionC1ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionC2ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionD1Ev;
+ _ZN7android10RpcSession19ExclusiveConnectionD2Ev;
+ _ZN7android10RpcSession19getRemoteMaxThreadsEPm;
+ _ZN7android10RpcSession20setupOneSocketClientERKNS_16RpcSocketAddressEi;
+ _ZN7android10RpcSession21setupUnixDomainClientEPKc;
+ _ZN7android10RpcSession22addNullDebuggingClientEv;
+ _ZN7android10RpcSession22removeServerConnectionERKNS_2spINS0_13RpcConnectionEEE;
+ _ZN7android10RpcSession24assignServerToThisThreadENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4joinENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4makeEv;
+ _ZN7android10RpcSession6readIdEv;
+ _ZN7android10RpcSession6serverEv;
+ _ZN7android10RpcSession7preJoinENSt3__16threadE;
+ _ZN7android10RpcSession8transactERKNS_10RpcAddressEjRKNS_6ParcelEPS4_j;
+ _ZN7android10RpcSessionC1Ev;
+ _ZN7android10RpcSessionC2Ev;
+ _ZN7android10RpcSessionD0Ev;
+ _ZN7android10RpcSessionD1Ev;
+ _ZN7android10RpcSessionD2Ev;
+ _ZN7android10TextOutputC2Ev;
+ _ZN7android10TextOutputD0Ev;
+ _ZN7android10TextOutputD1Ev;
+ _ZN7android10TextOutputD2Ev;
+ _ZN7android10zeroMemoryEPhm;
+ _ZN7android11BnInterfaceINS_11IMemoryHeapEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_14IShellCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_15IResultReceiverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_21IPermissionControllerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IClientCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IServiceManagerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os16IServiceCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm21IPackageManagerNativeEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm22IPackageChangeObserverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7IMemoryEE10onAsBinderEv;
+ _ZN7android11IMemoryHeap10descriptorE;
+ _ZN7android11IMemoryHeap11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android11IMemoryHeap12default_implE;
+ _ZN7android11IMemoryHeap14getDefaultImplEv;
+ _ZN7android11IMemoryHeap14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android11IMemoryHeapC2Ev;
+ _ZN7android11IMemoryHeapD0Ev;
+ _ZN7android11IMemoryHeapD1Ev;
+ _ZN7android11IMemoryHeapD2Ev;
+ _ZN7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android12BnMemoryHeapC2Ev;
+ _ZN7android12BnMemoryHeapD0Ev;
+ _ZN7android12BnMemoryHeapD1Ev;
+ _ZN7android12BnMemoryHeapD2Ev;
+ _ZN7android12BpMemoryHeapC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapD0Ev;
+ _ZN7android12BpMemoryHeapD1Ev;
+ _ZN7android12BpMemoryHeapD2Ev;
+ _ZN7android12gTextBuffersE;
+ _ZN7android12MemoryDealer10deallocateEm;
+ _ZN7android12MemoryDealer22getAllocationAlignmentEv;
+ _ZN7android12MemoryDealer8allocateEm;
+ _ZN7android12MemoryDealerC1EmPKcj;
+ _ZN7android12MemoryDealerC2EmPKcj;
+ _ZN7android12MemoryDealerD0Ev;
+ _ZN7android12MemoryDealerD1Ev;
+ _ZN7android12MemoryDealerD2Ev;
+ _ZN7android12printHexDataEiPKvmmimbPFvPvPKcES2_;
+ _ZN7android12ProcessState10selfOrNullEv;
+ _ZN7android12ProcessState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android12ProcessState13getDriverNameEv;
+ _ZN7android12ProcessState14initWithDriverEPKc;
+ _ZN7android12ProcessState15startThreadPoolEv;
+ _ZN7android12ProcessState16getContextObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android12ProcessState17spawnPooledThreadEb;
+ _ZN7android12ProcessState18giveThreadPoolNameEv;
+ _ZN7android12ProcessState18lookupHandleLockedEi;
+ _ZN7android12ProcessState18setCallRestrictionENS0_15CallRestrictionE;
+ _ZN7android12ProcessState19getKernelReferencesEmPm;
+ _ZN7android12ProcessState20becomeContextManagerEv;
+ _ZN7android12ProcessState20makeBinderThreadNameEv;
+ _ZN7android12ProcessState23getStrongProxyForHandleEi;
+ _ZN7android12ProcessState24getStrongRefCountForNodeERKNS_2spINS_8BpBinderEEE;
+ _ZN7android12ProcessState25enableOnewaySpamDetectionEb;
+ _ZN7android12ProcessState27setThreadPoolMaxThreadCountEm;
+ _ZN7android12ProcessState4initEPKcb;
+ _ZN7android12ProcessState4selfEv;
+ _ZN7android12ProcessStateC1EPKc;
+ _ZN7android12ProcessStateC2EPKc;
+ _ZN7android12ProcessStateD0Ev;
+ _ZN7android12ProcessStateD1Ev;
+ _ZN7android12ProcessStateD2Ev;
+ _ZN7android13printTypeCodeEjPFvPvPKcES0_;
+ _ZN7android14IPCThreadState10freeBufferEPNS_6ParcelEPKhmPKym;
+ _ZN7android14IPCThreadState10selfOrNullEv;
+ _ZN7android14IPCThreadState11clearCallerEv;
+ _ZN7android14IPCThreadState11stopProcessEb;
+ _ZN7android14IPCThreadState12setupPollingEPi;
+ _ZN7android14IPCThreadState13decWeakHandleEi;
+ _ZN7android14IPCThreadState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android14IPCThreadState13flushCommandsEv;
+ _ZN7android14IPCThreadState13flushIfNeededEv;
+ _ZN7android14IPCThreadState13incWeakHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState14clearLastErrorEv;
+ _ZN7android14IPCThreadState14executeCommandEi;
+ _ZN7android14IPCThreadState14joinThreadPoolEb;
+ _ZN7android14IPCThreadState14talkWithDriverEb;
+ _ZN7android14IPCThreadState15decStrongHandleEi;
+ _ZN7android14IPCThreadState15incStrongHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState15waitForResponseEPNS_6ParcelEPi;
+ _ZN7android14IPCThreadState16threadDestructorEPv;
+ _ZN7android14IPCThreadState18setCallRestrictionENS_12ProcessState15CallRestrictionE;
+ _ZN7android14IPCThreadState19setStrictModePolicyEi;
+ _ZN7android14IPCThreadState19setTheContextObjectERKNS_2spINS_7BBinderEEE;
+ _ZN7android14IPCThreadState20clearCallingIdentityEv;
+ _ZN7android14IPCThreadState20getAndExecuteCommandEv;
+ _ZN7android14IPCThreadState20getProcessFreezeInfoEiPbS1_;
+ _ZN7android14IPCThreadState20handlePolledCommandsEv;
+ _ZN7android14IPCThreadState20processPendingDerefsEv;
+ _ZN7android14IPCThreadState20writeTransactionDataEijijRKNS_6ParcelEPi;
+ _ZN7android14IPCThreadState22attemptIncStrongHandleEi;
+ _ZN7android14IPCThreadState22clearCallingWorkSourceEv;
+ _ZN7android14IPCThreadState22clearDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState22processPostWriteDerefsEv;
+ _ZN7android14IPCThreadState22restoreCallingIdentityEl;
+ _ZN7android14IPCThreadState23setCallingWorkSourceUidEj;
+ _ZN7android14IPCThreadState24clearPropagateWorkSourceEv;
+ _ZN7android14IPCThreadState24requestDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState24restoreCallingWorkSourceEl;
+ _ZN7android14IPCThreadState25blockUntilThreadAvailableEv;
+ _ZN7android14IPCThreadState27disableBackgroundSchedulingEb;
+ _ZN7android14IPCThreadState28backgroundSchedulingDisabledEv;
+ _ZN7android14IPCThreadState29setLastTransactionBinderFlagsEi;
+ _ZN7android14IPCThreadState41setCallingWorkSourceUidWithoutPropagationEj;
+ _ZN7android14IPCThreadState4selfEv;
+ _ZN7android14IPCThreadState6freezeEibj;
+ _ZN7android14IPCThreadState7processEv;
+ _ZN7android14IPCThreadState8shutdownEv;
+ _ZN7android14IPCThreadState8transactEijRKNS_6ParcelEPS1_j;
+ _ZN7android14IPCThreadState9sendReplyERKNS_6ParcelEj;
+ _ZN7android14IPCThreadStateC1Ev;
+ _ZN7android14IPCThreadStateC2Ev;
+ _ZN7android14IPCThreadStateD1Ev;
+ _ZN7android14IPCThreadStateD2Ev;
+ _ZN7android14IShellCallback10descriptorE;
+ _ZN7android14IShellCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android14IShellCallback12default_implE;
+ _ZN7android14IShellCallback14getDefaultImplEv;
+ _ZN7android14IShellCallback14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android14IShellCallbackC2Ev;
+ _ZN7android14IShellCallbackD0Ev;
+ _ZN7android14IShellCallbackD1Ev;
+ _ZN7android14IShellCallbackD2Ev;
+ _ZN7android14MemoryHeapBase4initEiPvmiPKc;
+ _ZN7android14MemoryHeapBase5mapfdEibml;
+ _ZN7android14MemoryHeapBase7disposeEv;
+ _ZN7android14MemoryHeapBaseC1Eimjl;
+ _ZN7android14MemoryHeapBaseC1EmjPKc;
+ _ZN7android14MemoryHeapBaseC1EPKcmj;
+ _ZN7android14MemoryHeapBaseC1Ev;
+ _ZN7android14MemoryHeapBaseC2Eimjl;
+ _ZN7android14MemoryHeapBaseC2EmjPKc;
+ _ZN7android14MemoryHeapBaseC2EPKcmj;
+ _ZN7android14MemoryHeapBaseC2Ev;
+ _ZN7android14MemoryHeapBaseD0Ev;
+ _ZN7android14MemoryHeapBaseD1Ev;
+ _ZN7android14MemoryHeapBaseD2Ev;
+ _ZN7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android15checkPermissionERKNS_8String16Eij;
+ _ZN7android15IResultReceiver10descriptorE;
+ _ZN7android15IResultReceiver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android15IResultReceiver12default_implE;
+ _ZN7android15IResultReceiver14getDefaultImplEv;
+ _ZN7android15IResultReceiver14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android15IResultReceiverC2Ev;
+ _ZN7android15IResultReceiverD0Ev;
+ _ZN7android15IResultReceiverD1Ev;
+ _ZN7android15IResultReceiverD2Ev;
+ _ZN7android15IServiceManagerC2Ev;
+ _ZN7android15IServiceManagerD0Ev;
+ _ZN7android15IServiceManagerD1Ev;
+ _ZN7android15IServiceManagerD2Ev;
+ _ZN7android15PermissionCache10purgeCacheEv;
+ _ZN7android15PermissionCache15checkPermissionERKNS_8String16Eij;
+ _ZN7android15PermissionCache22checkCallingPermissionERKNS_8String16E;
+ _ZN7android15PermissionCache22checkCallingPermissionERKNS_8String16EPiS4_;
+ _ZN7android15PermissionCache5cacheERKNS_8String16Ejb;
+ _ZN7android15PermissionCache5purgeEv;
+ _ZN7android15PermissionCacheC1Ev;
+ _ZN7android15PermissionCacheC2Ev;
+ _ZN7android15stringForIndentEi;
+ _ZN7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android18BufferedTextOutput10moveIndentEi;
+ _ZN7android18BufferedTextOutput10pushBundleEv;
+ _ZN7android18BufferedTextOutput5printEPKcm;
+ _ZN7android18BufferedTextOutput9popBundleEv;
+ _ZN7android18BufferedTextOutputC2Ej;
+ _ZN7android18BufferedTextOutputD0Ev;
+ _ZN7android18BufferedTextOutputD1Ev;
+ _ZN7android18BufferedTextOutputD2Ev;
+ _ZN7android18ServiceManagerShim10addServiceERKNS_8String16ERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android18ServiceManagerShim10isDeclaredERKNS_8String16E;
+ _ZN7android18ServiceManagerShim12listServicesEi;
+ _ZN7android18ServiceManagerShim14waitForServiceERKNS_8String16E;
+ _ZN7android18ServiceManagerShim16updatableViaApexERKNS_8String16E;
+ _ZN7android18ServiceManagerShim20getDeclaredInstancesERKNS_8String16E;
+ _ZN7android18ServiceManagerShimC1ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18ServiceManagerShimC2ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18the_context_objectE;
+ _ZN7android20PermissionController10getServiceEv;
+ _ZN7android20PermissionController13getPackageUidERKNS_8String16Ei;
+ _ZN7android20PermissionController15checkPermissionERKNS_8String16Eii;
+ _ZN7android20PermissionController17getPackagesForUidEjRNS_6VectorINS_8String16EEE;
+ _ZN7android20PermissionController19isRuntimePermissionERKNS_8String16E;
+ _ZN7android20PermissionController6noteOpERKNS_8String16EiS3_;
+ _ZN7android20PermissionControllerC1Ev;
+ _ZN7android20PermissionControllerC2Ev;
+ _ZN7android21defaultServiceManagerEv;
+ _ZN7android21IPermissionController10descriptorE;
+ _ZN7android21IPermissionController11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android21IPermissionController12default_implE;
+ _ZN7android21IPermissionController14getDefaultImplEv;
+ _ZN7android21IPermissionController14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android21IPermissionControllerC2Ev;
+ _ZN7android21IPermissionControllerD0Ev;
+ _ZN7android21IPermissionControllerD1Ev;
+ _ZN7android21IPermissionControllerD2Ev;
+ _ZN7android22BnPermissionController10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android22checkCallingPermissionERKNS_8String16E;
+ _ZN7android22checkCallingPermissionERKNS_8String16EPiS3_;
+ _ZN7android22SimpleBestFitAllocator10deallocateEm;
+ _ZN7android22SimpleBestFitAllocator12kMemoryAlignE;
+ _ZN7android22SimpleBestFitAllocator5allocEmj;
+ _ZN7android22SimpleBestFitAllocator7deallocEm;
+ _ZN7android22SimpleBestFitAllocator8allocateEmj;
+ _ZN7android22SimpleBestFitAllocatorC1Em;
+ _ZN7android22SimpleBestFitAllocatorC2Em;
+ _ZN7android22SimpleBestFitAllocatorD1Ev;
+ _ZN7android22SimpleBestFitAllocatorD2Ev;
+ _ZN7android24setDefaultServiceManagerERKNS_2spINS_15IServiceManagerEEE;
+ _ZN7android2os15IClientCallback10descriptorE;
+ _ZN7android2os15IClientCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IClientCallback12default_implE;
+ _ZN7android2os15IClientCallback14getDefaultImplEv;
+ _ZN7android2os15IClientCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IClientCallbackC2Ev;
+ _ZN7android2os15IClientCallbackD0Ev;
+ _ZN7android2os15IClientCallbackD1Ev;
+ _ZN7android2os15IClientCallbackD2Ev;
+ _ZN7android2os15IServiceManager10descriptorE;
+ _ZN7android2os15IServiceManager11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IServiceManager12default_implE;
+ _ZN7android2os15IServiceManager14getDefaultImplEv;
+ _ZN7android2os15IServiceManager14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IServiceManagerC2Ev;
+ _ZN7android2os15IServiceManagerD0Ev;
+ _ZN7android2os15IServiceManagerD1Ev;
+ _ZN7android2os15IServiceManagerD2Ev;
+ _ZN7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnClientCallbackC2Ev;
+ _ZN7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnServiceManagerC2Ev;
+ _ZN7android2os16BpClientCallback9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android2os16BpClientCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpClientCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10addServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android2os16BpServiceManager10getServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10isDeclaredERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPb;
+ _ZN7android2os16BpServiceManager12checkServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager12listServicesEiPNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE;
+ _ZN7android2os16BpServiceManager16updatableViaApexERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_8optionalIS8_EE;
+ _ZN7android2os16BpServiceManager19getServiceDebugInfoEPNSt3__16vectorINS0_16ServiceDebugInfoENS2_9allocatorIS4_EEEE;
+ _ZN7android2os16BpServiceManager20getDeclaredInstancesERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_6vectorIS8_NS6_IS8_EEEE;
+ _ZN7android2os16BpServiceManager20tryUnregisterServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager22registerClientCallbackERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEERKNSB_INS0_15IClientCallbackEEE;
+ _ZN7android2os16BpServiceManager24registerForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManager26unregisterForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManagerC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManagerC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback10descriptorE;
+ _ZN7android2os16IServiceCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback12default_implE;
+ _ZN7android2os16IServiceCallback14getDefaultImplEv;
+ _ZN7android2os16IServiceCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os16IServiceCallbackC2Ev;
+ _ZN7android2os16IServiceCallbackD0Ev;
+ _ZN7android2os16IServiceCallbackD1Ev;
+ _ZN7android2os16IServiceCallbackD2Ev;
+ _ZN7android2os16ParcelableHolder14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os16ServiceDebugInfo14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os17BnServiceCallbackC2Ev;
+ _ZN7android2os17BpServiceCallback14onRegistrationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17PersistableBundle10putBooleanERKNS_8String16Eb;
+ _ZN7android2os17PersistableBundle12putIntVectorERKNS_8String16ERKNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZN7android2os17PersistableBundle13putLongVectorERKNS_8String16ERKNSt3__16vectorIlNS5_9allocatorIlEEEE;
+ _ZN7android2os17PersistableBundle14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17PersistableBundle15putDoubleVectorERKNS_8String16ERKNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZN7android2os17PersistableBundle15putStringVectorERKNS_8String16ERKNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZN7android2os17PersistableBundle16putBooleanVectorERKNS_8String16ERKNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZN7android2os17PersistableBundle19readFromParcelInnerEPKNS_6ParcelEm;
+ _ZN7android2os17PersistableBundle20putPersistableBundleERKNS_8String16ERKS1_;
+ _ZN7android2os17PersistableBundle5eraseERKNS_8String16E;
+ _ZN7android2os17PersistableBundle6putIntERKNS_8String16Ei;
+ _ZN7android2os17PersistableBundle7putLongERKNS_8String16El;
+ _ZN7android2os17PersistableBundle9putDoubleERKNS_8String16Ed;
+ _ZN7android2os17PersistableBundle9putStringERKNS_8String16ES4_;
+ _ZN7android2os20ParcelFileDescriptor14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os20ParcelFileDescriptorC1ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC1Ev;
+ _ZN7android2os20ParcelFileDescriptorC2ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC2Ev;
+ _ZN7android2os20ParcelFileDescriptorD0Ev;
+ _ZN7android2os20ParcelFileDescriptorD1Ev;
+ _ZN7android2os20ParcelFileDescriptorD2Ev;
+ _ZN7android2spINS_21IPermissionControllerEED2Ev;
+ _ZN7android2spINS_7BBinderEED2Ev;
+ _ZN7android2spINS_7IBinderEEaSEOS2_;
+ _ZN7android2spINS_7IBinderEEaSERKS2_;
+ _ZN7android2spINS_9HeapCacheEED2Ev;
+ _ZN7android4aerrE;
+ _ZN7android4alogE;
+ _ZN7android4aoutE;
+ _ZN7android6binder20LazyServiceRegistrar10reRegisterEv;
+ _ZN7android6binder20LazyServiceRegistrar11getInstanceEv;
+ _ZN7android6binder20LazyServiceRegistrar12forcePersistEb;
+ _ZN7android6binder20LazyServiceRegistrar13tryUnregisterEv;
+ _ZN7android6binder20LazyServiceRegistrar15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEbi;
+ _ZN7android6binder20LazyServiceRegistrar25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder20LazyServiceRegistrarC1Ev;
+ _ZN7android6binder20LazyServiceRegistrarC2Ev;
+ _ZN7android6binder6Status11fromStatusTEi;
+ _ZN7android6binder6Status12setExceptionEiRKNS_7String8E;
+ _ZN7android6binder6Status14readFromParcelERKNS_6ParcelE;
+ _ZN7android6binder6Status14setFromStatusTEi;
+ _ZN7android6binder6Status17exceptionToStringEi;
+ _ZN7android6binder6Status17fromExceptionCodeEi;
+ _ZN7android6binder6Status17fromExceptionCodeEiPKc;
+ _ZN7android6binder6Status17fromExceptionCodeEiRKNS_7String8E;
+ _ZN7android6binder6Status23setServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEi;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiPKc;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status2okEv;
+ _ZN7android6binder6StatusC1Eii;
+ _ZN7android6binder6StatusC1EiiRKNS_7String8E;
+ _ZN7android6binder6StatusC2Eii;
+ _ZN7android6binder6StatusC2EiiRKNS_7String8E;
+ _ZN7android6binder8internal21ClientCounterCallback10reRegisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback12forcePersistEb;
+ _ZN7android6binder8internal21ClientCounterCallback13tryUnregisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal21ClientCounterCallback25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal21ClientCounterCallbackC1Ev;
+ _ZN7android6binder8internal21ClientCounterCallbackC2Ev;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl10reRegisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl11tryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl12forcePersistEb;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl13tryUnregisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl16maybeTryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl23assertRegisteredServiceERKNS_2spINS_7IBinderEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android6Parcel10appendFromEPKS0_mm;
+ _ZN7android6Parcel10markForRpcERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android6Parcel10writeFloatEf;
+ _ZN7android6Parcel10writeInt32Ei;
+ _ZN7android6Parcel10writeInt64El;
+ _ZN7android6Parcel11compareDataERKS0_;
+ _ZN7android6Parcel11finishWriteEm;
+ _ZN7android6Parcel11setDataSizeEm;
+ _ZN7android6Parcel11writeDoubleEd;
+ _ZN7android6Parcel11writeObjectERK18flat_binder_objectb;
+ _ZN7android6Parcel11writeUint32Ej;
+ _ZN7android6Parcel11writeUint64Em;
+ _ZN7android6Parcel12pushAllowFdsEb;
+ _ZN7android6Parcel12restartWriteEm;
+ _ZN7android6Parcel12writeCStringEPKc;
+ _ZN7android6Parcel12writeInplaceEm;
+ _ZN7android6Parcel12writePointerEm;
+ _ZN7android6Parcel12writeString8EPKcm;
+ _ZN7android6Parcel12writeString8ERKNS_7String8E;
+ _ZN7android6Parcel13continueWriteEm;
+ _ZN7android6Parcel13flattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13markForBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13writeString16EPKDsm;
+ _ZN7android6Parcel13writeString16ERKNS_8String16E;
+ _ZN7android6Parcel13writeString16ERKNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZN7android6Parcel13writeString16ERKNSt3__18optionalINS_8String16EEE;
+ _ZN7android6Parcel13writeUnpaddedEPKvm;
+ _ZN7android6Parcel14acquireObjectsEv;
+ _ZN7android6Parcel14freeDataNoInitEv;
+ _ZN7android6Parcel14releaseObjectsEv;
+ _ZN7android6Parcel14writeByteArrayEmPKh;
+ _ZN7android6Parcel15restoreAllowFdsEb;
+ _ZN7android6Parcel15setDataCapacityEm;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZN7android6Parcel15writeInt32ArrayEmPKi;
+ _ZN7android6Parcel15writeParcelableERKNS_10ParcelableE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__110unique_ptrINS1_6vectorIlNS1_9allocatorIlEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__16vectorIlNS1_9allocatorIlEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__18optionalINS1_6vectorIlNS1_9allocatorIlEEEEEE;
+ _ZN7android6Parcel16writeNoExceptionEv;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZN7android6Parcel17writeNativeHandleEPK13native_handle;
+ _ZN7android6Parcel17writeStrongBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__110unique_ptrINS1_6vectorImNS1_9allocatorImEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__16vectorImNS1_9allocatorImEEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__18optionalINS1_6vectorImNS1_9allocatorImEEEEEE;
+ _ZN7android6Parcel18getGlobalAllocSizeEv;
+ _ZN7android6Parcel19finishFlattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel19getGlobalAllocCountEv;
+ _ZN7android6Parcel19ipcSetDataReferenceEPKhmPKymPFvPS0_S2_mS4_mE;
+ _ZN7android6Parcel19writeFileDescriptorEib;
+ _ZN7android6Parcel19writeInterfaceTokenEPKDsm;
+ _ZN7android6Parcel19writeInterfaceTokenERKNS_8String16E;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZN7android6Parcel20closeFileDescriptorsEv;
+ _ZN7android6Parcel22writeDupFileDescriptorEi;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZN7android6Parcel25writeParcelFileDescriptorEib;
+ _ZN7android6Parcel25writeUniqueFileDescriptorERKNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android6Parcel26writeRawNullableParcelableEPKNS_10ParcelableE;
+ _ZN7android6Parcel27replaceCallingWorkSourceUidEj;
+ _ZN7android6Parcel28writeDupParcelFileDescriptorEi;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZN7android6Parcel35writeDupImmutableBlobFileDescriptorEi;
+ _ZN7android6Parcel4Blob4initEiPvmb;
+ _ZN7android6Parcel4Blob5clearEv;
+ _ZN7android6Parcel4Blob7releaseEv;
+ _ZN7android6Parcel4BlobC1Ev;
+ _ZN7android6Parcel4BlobC2Ev;
+ _ZN7android6Parcel4BlobD1Ev;
+ _ZN7android6Parcel4BlobD2Ev;
+ _ZN7android6Parcel5writeEPKvm;
+ _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE;
+ _ZN7android6Parcel7setDataEPKhm;
+ _ZN7android6Parcel8freeDataEv;
+ _ZN7android6Parcel8growDataEm;
+ _ZN7android6Parcel8setErrorEi;
+ _ZN7android6Parcel9initStateEv;
+ _ZN7android6Parcel9writeBlobEmbPNS0_12WritableBlobE;
+ _ZN7android6Parcel9writeBoolEb;
+ _ZN7android6Parcel9writeByteEa;
+ _ZN7android6Parcel9writeCharEDs;
+ _ZN7android6ParcelC1Ev;
+ _ZN7android6ParcelC2Ev;
+ _ZN7android6ParcelD1Ev;
+ _ZN7android6ParcelD2Ev;
+ _ZN7android7BBinder10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinder10pingBinderEv;
+ _ZN7android7BBinder11getDebugPidEv;
+ _ZN7android7BBinder11isInheritRtEv;
+ _ZN7android7BBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android7BBinder11localBinderEv;
+ _ZN7android7BBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android7BBinder12detachObjectEPKv;
+ _ZN7android7BBinder12getExtensionEv;
+ _ZN7android7BBinder12setExtensionERKNS_2spINS_7IBinderEEE;
+ _ZN7android7BBinder12setInheritRtEb;
+ _ZN7android7BBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android7BBinder15isRequestingSidEv;
+ _ZN7android7BBinder16setRequestingSidEb;
+ _ZN7android7BBinder17getOrCreateExtrasEv;
+ _ZN7android7BBinder21getMinSchedulerPolicyEv;
+ _ZN7android7BBinder21setMinSchedulerPolicyEii;
+ _ZN7android7BBinder23getMinSchedulerPriorityEv;
+ _ZN7android7BBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinderC1Ev;
+ _ZN7android7BBinderC2Ev;
+ _ZN7android7BBinderD0Ev;
+ _ZN7android7BBinderD1Ev;
+ _ZN7android7BBinderD2Ev;
+ _ZN7android7content2pm18PackageChangeEvent14readFromParcelEPKNS_6ParcelE;
+ _ZN7android7content2pm21IPackageManagerNative10descriptorE;
+ _ZN7android7content2pm21IPackageManagerNative11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm21IPackageManagerNative12default_implE;
+ _ZN7android7content2pm21IPackageManagerNative14getDefaultImplEv;
+ _ZN7android7content2pm21IPackageManagerNative14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm21IPackageManagerNativeC2Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD2Ev;
+ _ZN7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm22BnPackageManagerNativeC2Ev;
+ _ZN7android7content2pm22BpPackageManagerNative14getAllPackagesEPNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative15getNamesForUidsERKNSt3__16vectorIiNS3_9allocatorIiEEEEPNS4_INS3_12basic_stringIcNS3_11char_traitsIcEENS5_IcEEEENS5_ISE_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative16getLocationFlagsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPi;
+ _ZN7android7content2pm22BpPackageManagerNative16hasSystemFeatureERKNS_8String16EiPb;
+ _ZN7android7content2pm22BpPackageManagerNative19isPackageDebuggableERKNS_8String16EPb;
+ _ZN7android7content2pm22BpPackageManagerNative22getInstallerForPackageERKNS_8String16EPNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative24getVersionCodeForPackageERKNS_8String16EPl;
+ _ZN7android7content2pm22BpPackageManagerNative27hasSha256SigningCertificateERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_6vectorIhNS7_IhEEEEPb;
+ _ZN7android7content2pm22BpPackageManagerNative28getModuleMetadataPackageNameEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29getTargetSdkVersionForPackageERKNS_8String16EPi;
+ _ZN7android7content2pm22BpPackageManagerNative29isAudioPlaybackCaptureAllowedERKNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEPNS4_IbNS8_IbEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29registerPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNative31unregisterPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver10descriptorE;
+ _ZN7android7content2pm22IPackageChangeObserver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver12default_implE;
+ _ZN7android7content2pm22IPackageChangeObserver14getDefaultImplEv;
+ _ZN7android7content2pm22IPackageChangeObserver14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm22IPackageChangeObserverC2Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD2Ev;
+ _ZN7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm23BnPackageChangeObserverC2Ev;
+ _ZN7android7content2pm23BpPackageChangeObserver16onPackageChangedERKNS1_18PackageChangeEventE;
+ _ZN7android7content2pm23BpPackageChangeObserverC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm23BpPackageChangeObserverC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7HexDumpC1EPKvmm;
+ _ZN7android7HexDumpC2EPKvmm;
+ _ZN7android7IBinder11getDebugPidEPi;
+ _ZN7android7IBinder11localBinderEv;
+ _ZN7android7IBinder12getExtensionEPNS_2spIS0_EE;
+ _ZN7android7IBinder12remoteBinderEv;
+ _ZN7android7IBinder12shellCommandERKNS_2spIS0_EEiiiRNS_6VectorINS_8String16EEERKNS1_INS_14IShellCallbackEEERKNS1_INS_15IResultReceiverEEE;
+ _ZN7android7IBinder19queryLocalInterfaceERKNS_8String16E;
+ _ZN7android7IBinderC2Ev;
+ _ZN7android7IBinderD0Ev;
+ _ZN7android7IBinderD1Ev;
+ _ZN7android7IBinderD2Ev;
+ _ZN7android7IMemory10descriptorE;
+ _ZN7android7IMemory11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7IMemory12default_implE;
+ _ZN7android7IMemory14getDefaultImplEv;
+ _ZN7android7IMemory14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android7IMemoryC2Ev;
+ _ZN7android7IMemoryD0Ev;
+ _ZN7android7IMemoryD1Ev;
+ _ZN7android7IMemoryD2Ev;
+ _ZN7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BnMemoryC2Ev;
+ _ZN7android8BnMemoryD0Ev;
+ _ZN7android8BnMemoryD1Ev;
+ _ZN7android8BnMemoryD2Ev;
+ _ZN7android8BpBinder10onFirstRefEv;
+ _ZN7android8BpBinder10pingBinderEv;
+ _ZN7android8BpBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android8BpBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android8BpBinder12detachObjectEPKv;
+ _ZN7android8BpBinder12remoteBinderEv;
+ _ZN7android8BpBinder12sendObituaryEv;
+ _ZN7android8BpBinder12sTrackingMapE;
+ _ZN7android8BpBinder13getCountByUidERNS_6VectorIjEES3_;
+ _ZN7android8BpBinder13ObjectManager4killEv;
+ _ZN7android8BpBinder13ObjectManager6attachEPKvPvS4_PFvS3_S4_S4_E;
+ _ZN7android8BpBinder13ObjectManager6detachEPKv;
+ _ZN7android8BpBinder13ObjectManagerC1Ev;
+ _ZN7android8BpBinder13ObjectManagerC2Ev;
+ _ZN7android8BpBinder13ObjectManagerD1Ev;
+ _ZN7android8BpBinder13ObjectManagerD2Ev;
+ _ZN7android8BpBinder13sTrackingLockE;
+ _ZN7android8BpBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android8BpBinder14reportOneDeathERKNS0_8ObituaryE;
+ _ZN7android8BpBinder14sLimitCallbackE;
+ _ZN7android8BpBinder15onLastStrongRefEPKv;
+ _ZN7android8BpBinder15sNumTrackedUidsE;
+ _ZN7android8BpBinder16enableCountByUidEv;
+ _ZN7android8BpBinder16setLimitCallbackEPFviE;
+ _ZN7android8BpBinder17disableCountByUidEv;
+ _ZN7android8BpBinder18sCountByUidEnabledE;
+ _ZN7android8BpBinder19getBinderProxyCountEj;
+ _ZN7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZN7android8BpBinder20setCountByUidEnabledEb;
+ _ZN7android8BpBinder26sBinderProxyThrottleCreateE;
+ _ZN7android8BpBinder29sBinderProxyCountLowWatermarkE;
+ _ZN7android8BpBinder29setBinderProxyCountWatermarksEii;
+ _ZN7android8BpBinder30sBinderProxyCountHighWatermarkE;
+ _ZN7android8BpBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android8BpBinder6createEi;
+ _ZN7android8BpBinder6createERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8BpBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BpBinderC1EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC1EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC1EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderC2EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC2EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC2EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderD0Ev;
+ _ZN7android8BpBinderD1Ev;
+ _ZN7android8BpBinderD2Ev;
+ _ZN7android8BpMemoryC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryD0Ev;
+ _ZN7android8BpMemoryD1Ev;
+ _ZN7android8BpMemoryD2Ev;
+ _ZN7android8internal9Stability11getCategoryEPNS_7IBinderE;
+ _ZN7android8internal9Stability11levelStringENS1_5LevelE;
+ _ZN7android8internal9Stability13getLocalLevelEv;
+ _ZN7android8internal9Stability15isDeclaredLevelENS1_5LevelE;
+ _ZN7android8internal9Stability17debugLogStabilityERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability19markCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability22tryMarkCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability24requiresVintfDeclarationERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability25forceDowngradeToStabilityERKNS_2spINS_7IBinderEEENS1_5LevelE;
+ _ZN7android8internal9Stability30forceDowngradeToLocalStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToSystemStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToVendorStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability5checkENS1_8CategoryENS1_5LevelE;
+ _ZN7android8internal9Stability7setReprEPNS_7IBinderEij;
+ _ZN7android8internal9Stability8Category11debugStringEv;
+ _ZN7android8internal9Stability8markVndkEPNS_7IBinderE;
+ _ZN7android8internal9Stability9markVintfEPNS_7IBinderE;
+ _ZN7android8RpcState11CommandDataC1Em;
+ _ZN7android8RpcState11CommandDataC2Em;
+ _ZN7android8RpcState12countBindersEv;
+ _ZN7android8RpcState12getSessionIdERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPi;
+ _ZN7android8RpcState12waitForReplyERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPNS_6ParcelE;
+ _ZN7android8RpcState13getMaxThreadsERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPm;
+ _ZN7android8RpcState13getRootObjectERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState13sendDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState15onBinderLeavingERKNS_2spINS_10RpcSessionEEERKNS1_INS_7IBinderEEEPNS_10RpcAddressE;
+ _ZN7android8RpcState15processTransactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState16onBinderEnteringERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState16processDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState20getAndExecuteCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState20processServerCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState23processTransactInternalERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEENS0_11CommandDataE;
+ _ZN7android8RpcState4dumpEv;
+ _ZN7android8RpcState6rpcRecERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPvm;
+ _ZN7android8RpcState7rpcSendERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPKvm;
+ _ZN7android8RpcState8transactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressEjRKNS_6ParcelERKNS_2spINS_10RpcSessionEEEPSA_j;
+ _ZN7android8RpcState9terminateEv;
+ _ZN7android8RpcStateC1Ev;
+ _ZN7android8RpcStateC2Ev;
+ _ZN7android8RpcStateD1Ev;
+ _ZN7android8RpcStateD2Ev;
+ _ZN7android9BpRefBase10onFirstRefEv;
+ _ZN7android9BpRefBase15onLastStrongRefEPKv;
+ _ZN7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZN7android9BpRefBaseC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseD0Ev;
+ _ZN7android9BpRefBaseD1Ev;
+ _ZN7android9BpRefBaseD2Ev;
+ _ZN7android9HeapCache10binderDiedERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCache10dump_heapsEv;
+ _ZN7android9HeapCache8get_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9find_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCacheC1Ev;
+ _ZN7android9HeapCacheC2Ev;
+ _ZN7android9HeapCacheD0Ev;
+ _ZN7android9HeapCacheD1Ev;
+ _ZN7android9HeapCacheD2Ev;
+ _ZN7android9hexStringEPKvm;
+ _ZN7android9RpcServer12listSessionsEv;
+ _ZN7android9RpcServer13getMaxThreadsEv;
+ _ZN7android9RpcServer13getRootObjectEv;
+ _ZN7android9RpcServer13releaseServerEv;
+ _ZN7android9RpcServer13setMaxThreadsEm;
+ _ZN7android9RpcServer13setRootObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android9RpcServer15setupInetServerEjPj;
+ _ZN7android9RpcServer16setupVsockServerEj;
+ _ZN7android9RpcServer17setRootObjectWeakERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9RpcServer17setupSocketServerERKNS_16RpcSocketAddressE;
+ _ZN7android9RpcServer19establishConnectionEONS_2spIS0_EENS_4base14unique_fd_implINS4_13DefaultCloserEEE;
+ _ZN7android9RpcServer19setupExternalServerENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android9RpcServer20onSessionTerminatingERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android9RpcServer21setupUnixDomainServerEPKc;
+ _ZN7android9RpcServer24numUninitializedSessionsEv;
+ _ZN7android9RpcServer4joinEv;
+ _ZN7android9RpcServer4makeEv;
+ _ZN7android9RpcServer61iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProductionEv;
+ _ZN7android9RpcServer9acceptOneEv;
+ _ZN7android9RpcServer9hasServerEv;
+ _ZN7android9RpcServerC1Ev;
+ _ZN7android9RpcServerC2Ev;
+ _ZN7android9RpcServerD0Ev;
+ _ZN7android9RpcServerD1Ev;
+ _ZN7android9RpcServerD2Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEE11getInstanceEv;
+ _ZN7android9SingletonINS_15PermissionCacheEE11hasInstanceEv;
+ _ZN7android9SingletonINS_15PermissionCacheEE5sLockE;
+ _ZN7android9SingletonINS_15PermissionCacheEE9sInstanceE;
+ _ZN7android9SingletonINS_15PermissionCacheEEC1Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEEC2Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEED1Ev;
+ _ZN7android9SingletonINS_15PermissionCacheEED2Ev;
+ _ZN7androidlsERNS_10TextOutputERKNS_7HexDumpE;
+ _ZN7androidlsERNS_10TextOutputERKNS_8TypeCodeE;
+ _ZN7androidlsIA15_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA24_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA2_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA34_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA3_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA43_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA4_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA5_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA8_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA9_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIjEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsImEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEERNS_10TextOutputES9_RKT_;
+ _ZN7androidlsIPcEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIPvEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIyEERNS_10TextOutputES2_RKT_;
+ _ZNK7android10MemoryBase9getMemoryEPlPm;
+ _ZNK7android10RpcAddress13writeToParcelEPNS_6ParcelE;
+ _ZNK7android10RpcAddress15viewRawEmbeddedEv;
+ _ZNK7android10RpcAddress6isZeroEv;
+ _ZNK7android10RpcAddress8toStringEv;
+ _ZNK7android10RpcAddressltERKS0_;
+ _ZNK7android11IMemoryHeap22getInterfaceDescriptorEv;
+ _ZNK7android12BpMemoryHeap12assertMappedEv;
+ _ZNK7android12BpMemoryHeap18assertReallyMappedEv;
+ _ZNK7android12BpMemoryHeap7getBaseEv;
+ _ZNK7android12BpMemoryHeap7getSizeEv;
+ _ZNK7android12BpMemoryHeap8getFlagsEv;
+ _ZNK7android12BpMemoryHeap9getHeapIDEv;
+ _ZNK7android12BpMemoryHeap9getOffsetEv;
+ _ZNK7android12MemoryDealer4dumpEPKc;
+ _ZNK7android12MemoryDealer4heapEv;
+ _ZNK7android12MemoryDealer9allocatorEv;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE10do_compareEPKvS5_;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE15do_move_forwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE16do_move_backwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE7do_copyEPvPKvm;
+ _ZNK7android12SortedVectorINS_15PermissionCache5EntryEE8do_splatEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_compareEPKvSA_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE15do_move_forwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE16do_move_backwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE7do_copyEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE8do_splatEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_compareES3_S3_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE15do_move_forwardEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE16do_move_backwardEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE7do_copyEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE8do_splatEPvS3_m;
+ _ZNK7android12SortedVectorINS_8String16EE10do_compareEPKvS4_;
+ _ZNK7android12SortedVectorINS_8String16EE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_8String16EE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_8String16EE15do_move_forwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_8String16EE16do_move_backwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_8String16EE7do_copyEPvPKvm;
+ _ZNK7android12SortedVectorINS_8String16EE8do_splatEPvPKvm;
+ _ZNK7android14IPCThreadState13getCallingPidEv;
+ _ZNK7android14IPCThreadState13getCallingSidEv;
+ _ZNK7android14IPCThreadState13getCallingUidEv;
+ _ZNK7android14IPCThreadState18getCallRestrictionEv;
+ _ZNK7android14IPCThreadState19getStrictModePolicyEv;
+ _ZNK7android14IPCThreadState22getServingStackPointerEv;
+ _ZNK7android14IPCThreadState23getCallingWorkSourceUidEv;
+ _ZNK7android14IPCThreadState25shouldPropagateWorkSourceEv;
+ _ZNK7android14IPCThreadState29getLastTransactionBinderFlagsEv;
+ _ZNK7android14IShellCallback22getInterfaceDescriptorEv;
+ _ZNK7android14MemoryHeapBase7getBaseEv;
+ _ZNK7android14MemoryHeapBase7getSizeEv;
+ _ZNK7android14MemoryHeapBase8getFlagsEv;
+ _ZNK7android14MemoryHeapBase9getDeviceEv;
+ _ZNK7android14MemoryHeapBase9getHeapIDEv;
+ _ZNK7android14MemoryHeapBase9getOffsetEv;
+ _ZNK7android15IResultReceiver22getInterfaceDescriptorEv;
+ _ZNK7android15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android15PermissionCache5checkEPbRKNS_8String16Ej;
+ _ZNK7android18BufferedTextOutput9getBufferEv;
+ _ZNK7android18ServiceManagerShim10getServiceERKNS_8String16E;
+ _ZNK7android18ServiceManagerShim12checkServiceERKNS_8String16E;
+ _ZNK7android21IPermissionController22getInterfaceDescriptorEv;
+ _ZNK7android22SimpleBestFitAllocator4dumpEPKc;
+ _ZNK7android22SimpleBestFitAllocator4dumpERNS_7String8EPKc;
+ _ZNK7android22SimpleBestFitAllocator4sizeEv;
+ _ZNK7android22SimpleBestFitAllocator6dump_lEPKc;
+ _ZNK7android22SimpleBestFitAllocator6dump_lERNS_7String8EPKc;
+ _ZNK7android2os15IClientCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android2os16IServiceCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os16ParcelableHolder13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os16ServiceDebugInfo13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle10getBooleanERKNS_8String16EPb;
+ _ZNK7android2os17PersistableBundle10getIntKeysEv;
+ _ZNK7android2os17PersistableBundle11getLongKeysEv;
+ _ZNK7android2os17PersistableBundle12getIntVectorERKNS_8String16EPNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZNK7android2os17PersistableBundle13getDoubleKeysEv;
+ _ZNK7android2os17PersistableBundle13getLongVectorERKNS_8String16EPNSt3__16vectorIlNS5_9allocatorIlEEEE;
+ _ZNK7android2os17PersistableBundle13getStringKeysEv;
+ _ZNK7android2os17PersistableBundle13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle14getBooleanKeysEv;
+ _ZNK7android2os17PersistableBundle15getDoubleVectorERKNS_8String16EPNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZNK7android2os17PersistableBundle15getStringVectorERKNS_8String16EPNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZNK7android2os17PersistableBundle16getBooleanVectorERKNS_8String16EPNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZNK7android2os17PersistableBundle16getIntVectorKeysEv;
+ _ZNK7android2os17PersistableBundle17getLongVectorKeysEv;
+ _ZNK7android2os17PersistableBundle18writeToParcelInnerEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle19getDoubleVectorKeysEv;
+ _ZNK7android2os17PersistableBundle19getStringVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getBooleanVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getPersistableBundleERKNS_8String16EPS1_;
+ _ZNK7android2os17PersistableBundle24getPersistableBundleKeysEv;
+ _ZNK7android2os17PersistableBundle4sizeEv;
+ _ZNK7android2os17PersistableBundle5emptyEv;
+ _ZNK7android2os17PersistableBundle6getIntERKNS_8String16EPi;
+ _ZNK7android2os17PersistableBundle7getLongERKNS_8String16EPl;
+ _ZNK7android2os17PersistableBundle9getDoubleERKNS_8String16EPd;
+ _ZNK7android2os17PersistableBundle9getStringERKNS_8String16EPS2_;
+ _ZNK7android2os20ParcelFileDescriptor13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status9toString8Ev;
+ _ZNK7android6Parcel10errorCheckEv;
+ _ZNK7android6Parcel10ipcObjectsEv;
+ _ZNK7android6Parcel10readDoubleEPd;
+ _ZNK7android6Parcel10readDoubleEv;
+ _ZNK7android6Parcel10readObjectEb;
+ _ZNK7android6Parcel10readUint32EPj;
+ _ZNK7android6Parcel10readUint32Ev;
+ _ZNK7android6Parcel10readUint64EPm;
+ _ZNK7android6Parcel10readUint64Ev;
+ _ZNK7android6Parcel10scanForFdsEv;
+ _ZNK7android6Parcel11ipcDataSizeEv;
+ _ZNK7android6Parcel11readCStringEv;
+ _ZNK7android6Parcel11readInplaceEm;
+ _ZNK7android6Parcel11readPointerEPm;
+ _ZNK7android6Parcel11readPointerEv;
+ _ZNK7android6Parcel11readString8EPNS_7String8E;
+ _ZNK7android6Parcel11readString8Ev;
+ _ZNK7android6Parcel12dataCapacityEv;
+ _ZNK7android6Parcel12dataPositionEv;
+ _ZNK7android6Parcel12objectsCountEv;
+ _ZNK7android6Parcel12readString16EPNS_8String16E;
+ _ZNK7android6Parcel12readString16EPNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZNK7android6Parcel12readString16EPNSt3__18optionalINS_8String16EEE;
+ _ZNK7android6Parcel12readString16Ev;
+ _ZNK7android6Parcel13markSensitiveEv;
+ _ZNK7android6Parcel14checkInterfaceEPNS_7IBinderE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZNK7android6Parcel14readParcelableEPNS_10ParcelableE;
+ _ZNK7android6Parcel15ipcObjectsCountEv;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__110unique_ptrINS1_6vectorIlNS1_9allocatorIlEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__16vectorIlNS1_9allocatorIlEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__18optionalINS1_6vectorIlNS1_9allocatorIlEEEEEE;
+ _ZNK7android6Parcel15setDataPositionEm;
+ _ZNK7android6Parcel15unflattenBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16enforceInterfaceEPKDsmPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16enforceInterfaceERKNS_8String16EPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZNK7android6Parcel16readNativeHandleEv;
+ _ZNK7android6Parcel16readStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16readStrongBinderEv;
+ _ZNK7android6Parcel16readStrongBinderINS_2os15IClientCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_2os16IServiceCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_7content2pm22IPackageChangeObserverEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__110unique_ptrINS1_6vectorImNS1_9allocatorImEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__16vectorImNS1_9allocatorImEEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__18optionalINS1_6vectorImNS1_9allocatorImEEEEEE;
+ _ZNK7android6Parcel16validateReadDataEm;
+ _ZNK7android6Parcel17getBlobAshmemSizeEv;
+ _ZNK7android6Parcel17getOpenAshmemSizeEv;
+ _ZNK7android6Parcel17readExceptionCodeEv;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZNK7android6Parcel18hasFileDescriptorsEv;
+ _ZNK7android6Parcel18readFileDescriptorEv;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZNK7android6Parcel18readString8InplaceEPm;
+ _ZNK7android6Parcel19readString16InplaceEPm;
+ _ZNK7android6Parcel21finishUnflattenBinderERKNS_2spINS_7IBinderEEEPS3_;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZNK7android6Parcel24readCallingWorkSourceUidEv;
+ _ZNK7android6Parcel24readNullableStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel24readParcelFileDescriptorEv;
+ _ZNK7android6Parcel24readUniqueFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZNK7android6Parcel30readUniqueParcelFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel37updateWorkSourceRequestHeaderPositionEv;
+ _ZNK7android6Parcel4dataEv;
+ _ZNK7android6Parcel4readEPvm;
+ _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE;
+ _ZNK7android6Parcel5printERNS_10TextOutputEj;
+ _ZNK7android6Parcel7ipcDataEv;
+ _ZNK7android6Parcel8allowFdsEv;
+ _ZNK7android6Parcel8dataSizeEv;
+ _ZNK7android6Parcel8isForRpcEv;
+ _ZNK7android6Parcel8readBlobEmPNS0_12ReadableBlobE;
+ _ZNK7android6Parcel8readBoolEPb;
+ _ZNK7android6Parcel8readBoolEv;
+ _ZNK7android6Parcel8readByteEPa;
+ _ZNK7android6Parcel8readByteEv;
+ _ZNK7android6Parcel8readCharEPDs;
+ _ZNK7android6Parcel8readCharEv;
+ _ZNK7android6Parcel9dataAvailEv;
+ _ZNK7android6Parcel9readFloatEPf;
+ _ZNK7android6Parcel9readFloatEv;
+ _ZNK7android6Parcel9readInt32EPi;
+ _ZNK7android6Parcel9readInt32Ev;
+ _ZNK7android6Parcel9readInt64EPl;
+ _ZNK7android6Parcel9readInt64Ev;
+ _ZNK7android6VectorIiE10do_destroyEPvm;
+ _ZNK7android6VectorIiE12do_constructEPvm;
+ _ZNK7android6VectorIiE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIiE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIiE7do_copyEPvPKvm;
+ _ZNK7android6VectorIiE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE12do_constructEPvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE12do_constructEPvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE12do_constructEPvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE10do_destroyEPvm;
+ _ZNK7android6VectorINS_8String16EE12do_constructEPvm;
+ _ZNK7android6VectorINS_8String16EE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7BBinderEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7BBinderEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE8do_splatEPvPKvm;
+ _ZNK7android7BBinder10findObjectEPKv;
+ _ZNK7android7BBinder13isBinderAliveEv;
+ _ZNK7android7BBinder22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm18PackageChangeEvent13writeToParcelEPNS_6ParcelE;
+ _ZNK7android7content2pm21IPackageManagerNative22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm22IPackageChangeObserver22getInterfaceDescriptorEv;
+ _ZNK7android7IBinder13checkSubclassEPKv;
+ _ZNK7android7IMemory11fastPointerERKNS_2spINS_7IBinderEEEl;
+ _ZNK7android7IMemory15unsecurePointerEv;
+ _ZNK7android7IMemory22getInterfaceDescriptorEv;
+ _ZNK7android7IMemory4sizeEv;
+ _ZNK7android7IMemory6offsetEv;
+ _ZNK7android7IMemory7pointerEv;
+ _ZNK7android8BpBinder10findObjectEPKv;
+ _ZNK7android8BpBinder10rpcAddressEv;
+ _ZNK7android8BpBinder10rpcSessionEv;
+ _ZNK7android8BpBinder11isRpcBinderEv;
+ _ZNK7android8BpBinder12binderHandleEv;
+ _ZNK7android8BpBinder13isBinderAliveEv;
+ _ZNK7android8BpBinder13ObjectManager4findEPKv;
+ _ZNK7android8BpBinder18isDescriptorCachedEv;
+ _ZNK7android8BpBinder22getInterfaceDescriptorEv;
+ _ZNK7android8BpMemory9getMemoryEPlPm;
+ _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__111__sift_downIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeESB_;
+ _ZNSt3__111unique_lockINS_5mutexEE6unlockEv;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE14__erase_uniqueIiEEmRKT_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE25__emplace_unique_key_argsIiJRKNS_21piecewise_construct_tENS_5tupleIJRKiEEENSI_IJEEEEEENS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEERKT_DpOT0_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6rehashEm;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS2_PvEEEE;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE8__rehashEm;
+ _ZNSt3__113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEMN7android9RpcServerEFvONS7_2spIS8_EENS7_4base14unique_fd_implINSC_13DefaultCloserEEEEPS8_SA_SF_EEEEEPvSK_;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m;
+ _ZNSt3__127__tree_balance_after_insertIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE12__find_equalIS2_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISC_EERKT_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE25__emplace_unique_key_argsIS2_JRKS2_EEENS_4pairINS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE7destroyEPNS_11__tree_nodeIS2_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JNS_4pairIKS3_S5_EEEEENSF_INS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_lEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_lEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SG_EElEERPNS_15__tree_end_nodeISI_EESJ_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISI_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__assign_multiINS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEEEvT_SL_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE15__emplace_multiIJRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSI_IJEEEEEENS_4pairINS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEENS_21__tree_const_iteratorIS6_SO_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE16__construct_nodeIJRKNS_4pairIKS3_S7_EEEEENS_10unique_ptrINS_11__tree_nodeIS8_PvEENS_22__tree_node_destructorINS5_ISO_EEEEEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE16__construct_nodeIJRKNS_4pairIKS3_S7_EEEEENS_10unique_ptrINS_11__tree_nodeIS8_PvEENS_22__tree_node_destructorINS5_ISO_EEEEEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE5eraseENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_11__thread_idENS_6threadEEENS_19__map_value_compareIS2_S4_NS_4lessIS2_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE12__find_equalIS7_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISO_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE25__emplace_unique_key_argsIS7_JRKNS_21piecewise_construct_tENS_5tupleIJRKS7_EEENSO_IJEEEEEENS_4pairINS_15__tree_iteratorISD_PNS_11__tree_nodeISD_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE7destroyEPNS_11__tree_nodeISD_PvEE;
+ _ZNSt3__16vectorIaNS_9allocatorIaEEE6insertIPKaEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIaNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPaEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb0ELm0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb1ELm0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE7reserveEm;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE9push_backERKb;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEEaSERKS3_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6assignIPdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6insertIPKdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPdEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE24__emplace_back_slow_pathIJDsEEEvDpOT_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE7reserveEm;
+ _ZNSt3__16vectorIfNS_9allocatorIfEEE6insertIPKfEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIfNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPfEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIhNS_9allocatorIhEEE6insertIPKhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPhEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6assignIPiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6insertIPKiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPiEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIlNS_9allocatorIlEEE6assignIPlEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIlNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorImNS_9allocatorImEEE6insertIPKmEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleImNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPmEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIN7android2os16ServiceDebugInfoENS_9allocatorIS3_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSession13RpcConnectionEEENS_9allocatorIS5_EEE21__push_back_slow_pathIRKS5_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSessionEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android4base14unique_fd_implINS2_13DefaultCloserEEENS_9allocatorIS5_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android8RpcState10BinderNode9AsyncTodoENS_9allocatorIS4_EEE21__push_back_slow_pathIS4_EEvOT_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE8__appendEm;
+ _ZNSt3__16vectorINS_10unique_ptrIN7android8String16ENS_14default_deleteIS3_EEEENS_9allocatorIS6_EEE8__appendEm;
+ _ZNSt3__16vectorINS_10unique_ptrINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_14default_deleteIS7_EEEENS5_ISA_EEE8__appendEm;
+ _ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE8__appendEm;
+ _ZNSt3__16vectorINS_8optionalIN7android8String16EEENS_9allocatorIS4_EEE8__appendEm;
+ _ZNSt3__16vectorINS_8optionalINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEE8__appendEm;
+ _ZTCN7android10AllocationE0_NS_10IInterfaceE;
+ _ZTCN7android10AllocationE0_NS_10MemoryBaseE;
+ _ZTCN7android10AllocationE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10AllocationE0_NS_7IMemoryE;
+ _ZTCN7android10AllocationE0_NS_8BnMemoryE;
+ _ZTCN7android10AllocationE8_NS_7BBinderE;
+ _ZTCN7android10AllocationE8_NS_7IBinderE;
+ _ZTCN7android10MemoryBaseE0_NS_10IInterfaceE;
+ _ZTCN7android10MemoryBaseE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10MemoryBaseE0_NS_7IMemoryE;
+ _ZTCN7android10MemoryBaseE0_NS_8BnMemoryE;
+ _ZTCN7android10MemoryBaseE8_NS_7BBinderE;
+ _ZTCN7android10MemoryBaseE8_NS_7IBinderE;
+ _ZTCN7android10PoolThreadE0_NS_6ThreadE;
+ _ZTCN7android11IMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BnMemoryHeapE8_NS_7BBinderE;
+ _ZTCN7android12BnMemoryHeapE8_NS_7IBinderE;
+ _ZTCN7android12BpMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11BpInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BpMemoryHeapE8_NS_9BpRefBaseE;
+ _ZTCN7android14IShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_11IMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_12BnMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE72_NS_7BBinderE;
+ _ZTCN7android14MemoryHeapBaseE72_NS_7IBinderE;
+ _ZTCN7android15BnShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BnShellCallbackE0_NS_11BnInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BnShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BnShellCallbackE8_NS_7BBinderE;
+ _ZTCN7android15BnShellCallbackE8_NS_7IBinderE;
+ _ZTCN7android15BpShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BpShellCallbackE0_NS_11BpInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BpShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BpShellCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android15IResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_11BnInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BnResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BnResultReceiverE8_NS_7BBinderE;
+ _ZTCN7android16BnResultReceiverE8_NS_7IBinderE;
+ _ZTCN7android16BpResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BpResultReceiverE0_NS_11BpInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BpResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BpResultReceiverE8_NS_9BpRefBaseE;
+ _ZTCN7android18ServiceManagerShimE0_NS_10IInterfaceE;
+ _ZTCN7android18ServiceManagerShimE0_NS_15IServiceManagerE;
+ _ZTCN7android21IPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BnPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BnPermissionControllerE0_NS_11BnInterfaceINS_21IPermissionControllerEEE;
+ _ZTCN7android22BnPermissionControllerE0_NS_21IPermissionControllerE;
+ _ZTCN7android22BnPermissionControllerE8_NS_7BBinderE;
+ _ZTCN7android22BnPermissionControllerE8_NS_7IBinderE;
+ _ZTCN7android22BpPermissionControllerE0_NS_10IInterfaceE;
+ _ZTCN7android22BpPermissionControllerE0_NS_11BpInterfaceINS_21IPermissionControllerEEE;
+ _ZTCN7android22BpPermissionControllerE0_NS_21IPermissionControllerE;
+ _ZTCN7android22BpPermissionControllerE8_NS_9BpRefBaseE;
+ _ZTCN7android2os15IClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_11BnInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BnClientCallbackE8_NS_7BBinderE;
+ _ZTCN7android2os16BnClientCallbackE8_NS_7IBinderE;
+ _ZTCN7android2os16BnServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_11BnInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BnServiceManagerE8_NS_7BBinderE;
+ _ZTCN7android2os16BnServiceManagerE8_NS_7IBinderE;
+ _ZTCN7android2os16BpClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_11BpInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BpClientCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android2os16BpServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_11BpInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BpServiceManagerE8_NS_9BpRefBaseE;
+ _ZTCN7android2os16IServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_11BnInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BnServiceCallbackE8_NS_7BBinderE;
+ _ZTCN7android2os17BnServiceCallbackE8_NS_7IBinderE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_11BpInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BpServiceCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_10IInterfaceE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_11BnInterfaceINS_2os15IClientCallbackEEE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os15IClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os16BnClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE8_NS_7BBinderE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE8_NS_7IBinderE;
+ _ZTCN7android7BBinderE0_NS_7IBinderE;
+ _ZTCN7android7content2pm21IPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_11BnInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE8_NS_7BBinderE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE8_NS_7IBinderE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_11BpInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE8_NS_9BpRefBaseE;
+ _ZTCN7android7content2pm22IPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_11BnInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE8_NS_7BBinderE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE8_NS_7IBinderE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_11BpInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE8_NS_9BpRefBaseE;
+ _ZTCN7android7IMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BnMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BnMemoryE8_NS_7BBinderE;
+ _ZTCN7android8BnMemoryE8_NS_7IBinderE;
+ _ZTCN7android8BpBinderE0_NS_7IBinderE;
+ _ZTCN7android8BpMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BpMemoryE0_NS_11BpInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BpMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BpMemoryE8_NS_9BpRefBaseE;
+ _ZTCN7android9HeapCacheE0_NS_7IBinder14DeathRecipientE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE;
+ _ZThn8_N7android10AllocationD0Ev;
+ _ZThn8_N7android10AllocationD1Ev;
+ _ZThn8_N7android10MemoryBaseD0Ev;
+ _ZThn8_N7android10MemoryBaseD1Ev;
+ _ZThn8_N7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android12BnMemoryHeapD0Ev;
+ _ZThn8_N7android12BnMemoryHeapD1Ev;
+ _ZThn8_N7android12BpMemoryHeapD0Ev;
+ _ZThn8_N7android12BpMemoryHeapD1Ev;
+ _ZThn8_N7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android22BnPermissionController10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn8_N7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn8_N7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android8BnMemoryD0Ev;
+ _ZThn8_N7android8BnMemoryD1Ev;
+ _ZThn8_N7android8BpMemoryD0Ev;
+ _ZThn8_N7android8BpMemoryD1Ev;
+ _ZTTN7android10AllocationE;
+ _ZTTN7android10IInterfaceE;
+ _ZTTN7android10MemoryBaseE;
+ _ZTTN7android10PoolThreadE;
+ _ZTTN7android10RpcSessionE;
+ _ZTTN7android11IMemoryHeapE;
+ _ZTTN7android12BnMemoryHeapE;
+ _ZTTN7android12BpMemoryHeapE;
+ _ZTTN7android12ProcessStateE;
+ _ZTTN7android14IShellCallbackE;
+ _ZTTN7android14MemoryHeapBaseE;
+ _ZTTN7android15BnShellCallbackE;
+ _ZTTN7android15BpShellCallbackE;
+ _ZTTN7android15IResultReceiverE;
+ _ZTTN7android15IServiceManagerE;
+ _ZTTN7android16BnResultReceiverE;
+ _ZTTN7android16BpResultReceiverE;
+ _ZTTN7android18ServiceManagerShimE;
+ _ZTTN7android21IPermissionControllerE;
+ _ZTTN7android22BnPermissionControllerE;
+ _ZTTN7android22BpPermissionControllerE;
+ _ZTTN7android2os15IClientCallbackE;
+ _ZTTN7android2os15IServiceManagerE;
+ _ZTTN7android2os16BnClientCallbackE;
+ _ZTTN7android2os16BnServiceManagerE;
+ _ZTTN7android2os16BpClientCallbackE;
+ _ZTTN7android2os16BpServiceManagerE;
+ _ZTTN7android2os16IServiceCallbackE;
+ _ZTTN7android2os17BnServiceCallbackE;
+ _ZTTN7android2os17BpServiceCallbackE;
+ _ZTTN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTTN7android7BBinderE;
+ _ZTTN7android7content2pm21IPackageManagerNativeE;
+ _ZTTN7android7content2pm22BnPackageManagerNativeE;
+ _ZTTN7android7content2pm22BpPackageManagerNativeE;
+ _ZTTN7android7content2pm22IPackageChangeObserverE;
+ _ZTTN7android7content2pm23BnPackageChangeObserverE;
+ _ZTTN7android7content2pm23BpPackageChangeObserverE;
+ _ZTTN7android7IBinderE;
+ _ZTTN7android7IMemoryE;
+ _ZTTN7android8BnMemoryE;
+ _ZTTN7android8BpBinderE;
+ _ZTTN7android8BpMemoryE;
+ _ZTTN7android9BpRefBaseE;
+ _ZTTN7android9HeapCacheE;
+ _ZTTN7android9RpcServerE;
+ _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTv0_n24_N7android10AllocationD0Ev;
+ _ZTv0_n24_N7android10AllocationD1Ev;
+ _ZTv0_n24_N7android10IInterfaceD0Ev;
+ _ZTv0_n24_N7android10IInterfaceD1Ev;
+ _ZTv0_n24_N7android10MemoryBaseD0Ev;
+ _ZTv0_n24_N7android10MemoryBaseD1Ev;
+ _ZTv0_n24_N7android10RpcSessionD0Ev;
+ _ZTv0_n24_N7android10RpcSessionD1Ev;
+ _ZTv0_n24_N7android11IMemoryHeapD0Ev;
+ _ZTv0_n24_N7android11IMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12BnMemoryHeapD0Ev;
+ _ZTv0_n24_N7android12BnMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12BpMemoryHeapD0Ev;
+ _ZTv0_n24_N7android12BpMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12ProcessStateD0Ev;
+ _ZTv0_n24_N7android12ProcessStateD1Ev;
+ _ZTv0_n24_N7android14IShellCallbackD0Ev;
+ _ZTv0_n24_N7android14IShellCallbackD1Ev;
+ _ZTv0_n24_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n24_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n24_N7android15IResultReceiverD0Ev;
+ _ZTv0_n24_N7android15IResultReceiverD1Ev;
+ _ZTv0_n24_N7android15IServiceManagerD0Ev;
+ _ZTv0_n24_N7android15IServiceManagerD1Ev;
+ _ZTv0_n24_N7android21IPermissionControllerD0Ev;
+ _ZTv0_n24_N7android21IPermissionControllerD1Ev;
+ _ZTv0_n24_N7android2os15IClientCallbackD0Ev;
+ _ZTv0_n24_N7android2os15IClientCallbackD1Ev;
+ _ZTv0_n24_N7android2os15IServiceManagerD0Ev;
+ _ZTv0_n24_N7android2os15IServiceManagerD1Ev;
+ _ZTv0_n24_N7android2os16IServiceCallbackD0Ev;
+ _ZTv0_n24_N7android2os16IServiceCallbackD1Ev;
+ _ZTv0_n24_N7android7BBinderD0Ev;
+ _ZTv0_n24_N7android7BBinderD1Ev;
+ _ZTv0_n24_N7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZTv0_n24_N7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZTv0_n24_N7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZTv0_n24_N7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZTv0_n24_N7android7IBinderD0Ev;
+ _ZTv0_n24_N7android7IBinderD1Ev;
+ _ZTv0_n24_N7android7IMemoryD0Ev;
+ _ZTv0_n24_N7android7IMemoryD1Ev;
+ _ZTv0_n24_N7android8BnMemoryD0Ev;
+ _ZTv0_n24_N7android8BnMemoryD1Ev;
+ _ZTv0_n24_N7android8BpBinderD0Ev;
+ _ZTv0_n24_N7android8BpBinderD1Ev;
+ _ZTv0_n24_N7android8BpMemoryD0Ev;
+ _ZTv0_n24_N7android8BpMemoryD1Ev;
+ _ZTv0_n24_N7android9BpRefBaseD0Ev;
+ _ZTv0_n24_N7android9BpRefBaseD1Ev;
+ _ZTv0_n24_N7android9HeapCacheD0Ev;
+ _ZTv0_n24_N7android9HeapCacheD1Ev;
+ _ZTv0_n24_N7android9RpcServerD0Ev;
+ _ZTv0_n24_N7android9RpcServerD1Ev;
+ _ZTv0_n32_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n32_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n32_N7android8BpBinder10onFirstRefEv;
+ _ZTv0_n32_N7android9BpRefBase10onFirstRefEv;
+ _ZTv0_n40_N7android8BpBinder15onLastStrongRefEPKv;
+ _ZTv0_n40_N7android9BpRefBase15onLastStrongRefEPKv;
+ _ZTv0_n48_N7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZTv0_n48_N7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZTv0_n56_NK7android14MemoryHeapBase9getHeapIDEv;
+ _ZTv0_n64_NK7android14MemoryHeapBase7getBaseEv;
+ _ZTv0_n72_NK7android14MemoryHeapBase7getSizeEv;
+ _ZTv0_n80_NK7android14MemoryHeapBase8getFlagsEv;
+ _ZTv0_n88_NK7android14MemoryHeapBase9getOffsetEv;
+ _ZTVN7android10AllocationE;
+ _ZTVN7android10IInterfaceE;
+ _ZTVN7android10MemoryBaseE;
+ _ZTVN7android10PoolThreadE;
+ _ZTVN7android10RpcSession13RpcConnectionE;
+ _ZTVN7android10RpcSessionE;
+ _ZTVN7android10TextOutputE;
+ _ZTVN7android11IMemoryHeapE;
+ _ZTVN7android12BnMemoryHeapE;
+ _ZTVN7android12BpMemoryHeapE;
+ _ZTVN7android12FdTextOutputE;
+ _ZTVN7android12MemoryDealerE;
+ _ZTVN7android12ProcessStateE;
+ _ZTVN7android12SortedVectorINS_15PermissionCache5EntryEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEEE;
+ _ZTVN7android12SortedVectorINS_8String16EEE;
+ _ZTVN7android13LogTextOutputE;
+ _ZTVN7android14IShellCallbackE;
+ _ZTVN7android14MemoryHeapBaseE;
+ _ZTVN7android15BnShellCallbackE;
+ _ZTVN7android15BpShellCallbackE;
+ _ZTVN7android15IResultReceiverE;
+ _ZTVN7android15IServiceManagerE;
+ _ZTVN7android16BnResultReceiverE;
+ _ZTVN7android16BpResultReceiverE;
+ _ZTVN7android17InetSocketAddressE;
+ _ZTVN7android17UnixSocketAddressE;
+ _ZTVN7android18BufferedTextOutput11BufferStateE;
+ _ZTVN7android18BufferedTextOutputE;
+ _ZTVN7android18ServiceManagerShimE;
+ _ZTVN7android18VsockSocketAddressE;
+ _ZTVN7android21IPermissionControllerE;
+ _ZTVN7android22BnPermissionControllerE;
+ _ZTVN7android22BpPermissionControllerE;
+ _ZTVN7android2os15IClientCallbackE;
+ _ZTVN7android2os15IServiceManagerE;
+ _ZTVN7android2os16BnClientCallbackE;
+ _ZTVN7android2os16BnServiceManagerE;
+ _ZTVN7android2os16BpClientCallbackE;
+ _ZTVN7android2os16BpServiceManagerE;
+ _ZTVN7android2os16IServiceCallbackE;
+ _ZTVN7android2os16ParcelableHolderE;
+ _ZTVN7android2os16ServiceDebugInfoE;
+ _ZTVN7android2os17BnServiceCallbackE;
+ _ZTVN7android2os17BpServiceCallbackE;
+ _ZTVN7android2os17PersistableBundleE;
+ _ZTVN7android2os20ParcelFileDescriptorE;
+ _ZTVN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTVN7android6VectorIiEE;
+ _ZTVN7android6VectorINS_12ProcessState12handle_entryEEE;
+ _ZTVN7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEEE;
+ _ZTVN7android6VectorINS_8BpBinder8ObituaryEEE;
+ _ZTVN7android6VectorINS_8String16EEE;
+ _ZTVN7android6VectorIPNS_7BBinderEEE;
+ _ZTVN7android6VectorIPNS_7RefBase12weakref_typeEEE;
+ _ZTVN7android6VectorIPNS_7RefBaseEEE;
+ _ZTVN7android7BBinderE;
+ _ZTVN7android7content2pm18PackageChangeEventE;
+ _ZTVN7android7content2pm21IPackageManagerNativeE;
+ _ZTVN7android7content2pm22BnPackageManagerNativeE;
+ _ZTVN7android7content2pm22BpPackageManagerNativeE;
+ _ZTVN7android7content2pm22IPackageChangeObserverE;
+ _ZTVN7android7content2pm23BnPackageChangeObserverE;
+ _ZTVN7android7content2pm23BpPackageChangeObserverE;
+ _ZTVN7android7IBinderE;
+ _ZTVN7android7IMemoryE;
+ _ZTVN7android8BnMemoryE;
+ _ZTVN7android8BpBinderE;
+ _ZTVN7android8BpMemoryE;
+ _ZTVN7android9BpRefBaseE;
+ _ZTVN7android9HeapCacheE;
+ _ZTVN7android9RpcServerE;
+ _ZTvn8_n32_N7android14MemoryHeapBaseD0Ev;
+ _ZTvn8_n32_N7android14MemoryHeapBaseD1Ev;
+ _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEEE;
+ local:
+ *;
+};
diff --git a/libs/binder/libbinder.arm64.vendor.map b/libs/binder/libbinder.arm64.vendor.map
new file mode 100644
index 0000000..971ba92
--- /dev/null
+++ b/libs/binder/libbinder.arm64.vendor.map
@@ -0,0 +1,1525 @@
+# b/190148312: Populate with correct list of ABI symbols
+LIBBINDER {
+ global:
+ getBinderKernelReferences;
+ kDefaultDriver;
+ _ZN7android10AllocationC1ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEElm;
+ _ZN7android10AllocationC2ERKNS_2spINS_12MemoryDealerEEERKNS1_INS_11IMemoryHeapEEElm;
+ _ZN7android10AllocationD0Ev;
+ _ZN7android10AllocationD1Ev;
+ _ZN7android10AllocationD2Ev;
+ _ZN7android10IInterface8asBinderEPKS0_;
+ _ZN7android10IInterface8asBinderERKNS_2spIS0_EE;
+ _ZN7android10IInterfaceC2Ev;
+ _ZN7android10IInterfaceD0Ev;
+ _ZN7android10IInterfaceD1Ev;
+ _ZN7android10IInterfaceD2Ev;
+ _ZN7android10MemoryBaseC1ERKNS_2spINS_11IMemoryHeapEEElm;
+ _ZN7android10MemoryBaseC2ERKNS_2spINS_11IMemoryHeapEEElm;
+ _ZN7android10MemoryBaseD0Ev;
+ _ZN7android10MemoryBaseD1Ev;
+ _ZN7android10MemoryBaseD2Ev;
+ _ZN7android10RpcAddress14readFromParcelERKNS_6ParcelE;
+ _ZN7android10RpcAddress15fromRawEmbeddedEPKNS_14RpcWireAddressE;
+ _ZN7android10RpcAddress4zeroEv;
+ _ZN7android10RpcAddress6uniqueEv;
+ _ZN7android10RpcAddressC1Ev;
+ _ZN7android10RpcAddressC2Ev;
+ _ZN7android10RpcAddressD1Ev;
+ _ZN7android10RpcAddressD2Ev;
+ _ZN7android10RpcSession12setForServerERKNS_2wpINS_9RpcServerEEEi;
+ _ZN7android10RpcSession13getRootObjectEv;
+ _ZN7android10RpcSession13sendDecStrongERKNS_10RpcAddressE;
+ _ZN7android10RpcSession15setupInetClientEPKcj;
+ _ZN7android10RpcSession15terminateLockedEv;
+ _ZN7android10RpcSession16setupVsockClientEjj;
+ _ZN7android10RpcSession17setupSocketClientERKNS_16RpcSocketAddressE;
+ _ZN7android10RpcSession19addClientConnectionENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession19ExclusiveConnection14findConnectionEiPNS_2spINS0_13RpcConnectionEEES5_RNSt3__16vectorIS4_NS6_9allocatorIS4_EEEEm;
+ _ZN7android10RpcSession19ExclusiveConnectionC1ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionC2ERKNS_2spIS0_EENS0_13ConnectionUseE;
+ _ZN7android10RpcSession19ExclusiveConnectionD1Ev;
+ _ZN7android10RpcSession19ExclusiveConnectionD2Ev;
+ _ZN7android10RpcSession19getRemoteMaxThreadsEPm;
+ _ZN7android10RpcSession20setupOneSocketClientERKNS_16RpcSocketAddressEi;
+ _ZN7android10RpcSession21setupUnixDomainClientEPKc;
+ _ZN7android10RpcSession22addNullDebuggingClientEv;
+ _ZN7android10RpcSession22removeServerConnectionERKNS_2spINS0_13RpcConnectionEEE;
+ _ZN7android10RpcSession24assignServerToThisThreadENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4joinENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android10RpcSession4makeEv;
+ _ZN7android10RpcSession6readIdEv;
+ _ZN7android10RpcSession6serverEv;
+ _ZN7android10RpcSession7preJoinENSt3__16threadE;
+ _ZN7android10RpcSession8transactERKNS_10RpcAddressEjRKNS_6ParcelEPS4_j;
+ _ZN7android10RpcSessionC1Ev;
+ _ZN7android10RpcSessionC2Ev;
+ _ZN7android10RpcSessionD0Ev;
+ _ZN7android10RpcSessionD1Ev;
+ _ZN7android10RpcSessionD2Ev;
+ _ZN7android10TextOutputC2Ev;
+ _ZN7android10TextOutputD0Ev;
+ _ZN7android10TextOutputD1Ev;
+ _ZN7android10TextOutputD2Ev;
+ _ZN7android10zeroMemoryEPhm;
+ _ZN7android11BnInterfaceINS_11IMemoryHeapEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_14IShellCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_15IResultReceiverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IClientCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os15IServiceManagerEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_2os16IServiceCallbackEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm21IPackageManagerNativeEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7content2pm22IPackageChangeObserverEE10onAsBinderEv;
+ _ZN7android11BnInterfaceINS_7IMemoryEE10onAsBinderEv;
+ _ZN7android11IMemoryHeap10descriptorE;
+ _ZN7android11IMemoryHeap11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android11IMemoryHeap12default_implE;
+ _ZN7android11IMemoryHeap14getDefaultImplEv;
+ _ZN7android11IMemoryHeap14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android11IMemoryHeapC2Ev;
+ _ZN7android11IMemoryHeapD0Ev;
+ _ZN7android11IMemoryHeapD1Ev;
+ _ZN7android11IMemoryHeapD2Ev;
+ _ZN7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android12BnMemoryHeapC2Ev;
+ _ZN7android12BnMemoryHeapD0Ev;
+ _ZN7android12BnMemoryHeapD1Ev;
+ _ZN7android12BnMemoryHeapD2Ev;
+ _ZN7android12BpMemoryHeapC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android12BpMemoryHeapD0Ev;
+ _ZN7android12BpMemoryHeapD1Ev;
+ _ZN7android12BpMemoryHeapD2Ev;
+ _ZN7android12gTextBuffersE;
+ _ZN7android12MemoryDealer10deallocateEm;
+ _ZN7android12MemoryDealer22getAllocationAlignmentEv;
+ _ZN7android12MemoryDealer8allocateEm;
+ _ZN7android12MemoryDealerC1EmPKcj;
+ _ZN7android12MemoryDealerC2EmPKcj;
+ _ZN7android12MemoryDealerD0Ev;
+ _ZN7android12MemoryDealerD1Ev;
+ _ZN7android12MemoryDealerD2Ev;
+ _ZN7android12printHexDataEiPKvmmimbPFvPvPKcES2_;
+ _ZN7android12ProcessState10selfOrNullEv;
+ _ZN7android12ProcessState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android12ProcessState13getDriverNameEv;
+ _ZN7android12ProcessState14initWithDriverEPKc;
+ _ZN7android12ProcessState15startThreadPoolEv;
+ _ZN7android12ProcessState16getContextObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android12ProcessState17spawnPooledThreadEb;
+ _ZN7android12ProcessState18giveThreadPoolNameEv;
+ _ZN7android12ProcessState18lookupHandleLockedEi;
+ _ZN7android12ProcessState18setCallRestrictionENS0_15CallRestrictionE;
+ _ZN7android12ProcessState19getKernelReferencesEmPm;
+ _ZN7android12ProcessState20becomeContextManagerEv;
+ _ZN7android12ProcessState20makeBinderThreadNameEv;
+ _ZN7android12ProcessState23getStrongProxyForHandleEi;
+ _ZN7android12ProcessState24getStrongRefCountForNodeERKNS_2spINS_8BpBinderEEE;
+ _ZN7android12ProcessState25enableOnewaySpamDetectionEb;
+ _ZN7android12ProcessState27setThreadPoolMaxThreadCountEm;
+ _ZN7android12ProcessState4initEPKcb;
+ _ZN7android12ProcessState4selfEv;
+ _ZN7android12ProcessStateC1EPKc;
+ _ZN7android12ProcessStateC2EPKc;
+ _ZN7android12ProcessStateD0Ev;
+ _ZN7android12ProcessStateD1Ev;
+ _ZN7android12ProcessStateD2Ev;
+ _ZN7android13printTypeCodeEjPFvPvPKcES0_;
+ _ZN7android14IPCThreadState10freeBufferEPNS_6ParcelEPKhmPKym;
+ _ZN7android14IPCThreadState10selfOrNullEv;
+ _ZN7android14IPCThreadState11clearCallerEv;
+ _ZN7android14IPCThreadState11stopProcessEb;
+ _ZN7android14IPCThreadState12setupPollingEPi;
+ _ZN7android14IPCThreadState13decWeakHandleEi;
+ _ZN7android14IPCThreadState13expungeHandleEiPNS_7IBinderE;
+ _ZN7android14IPCThreadState13flushCommandsEv;
+ _ZN7android14IPCThreadState13flushIfNeededEv;
+ _ZN7android14IPCThreadState13incWeakHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState14clearLastErrorEv;
+ _ZN7android14IPCThreadState14executeCommandEi;
+ _ZN7android14IPCThreadState14joinThreadPoolEb;
+ _ZN7android14IPCThreadState14talkWithDriverEb;
+ _ZN7android14IPCThreadState15decStrongHandleEi;
+ _ZN7android14IPCThreadState15incStrongHandleEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState15waitForResponseEPNS_6ParcelEPi;
+ _ZN7android14IPCThreadState16threadDestructorEPv;
+ _ZN7android14IPCThreadState18setCallRestrictionENS_12ProcessState15CallRestrictionE;
+ _ZN7android14IPCThreadState19setStrictModePolicyEi;
+ _ZN7android14IPCThreadState19setTheContextObjectERKNS_2spINS_7BBinderEEE;
+ _ZN7android14IPCThreadState20clearCallingIdentityEv;
+ _ZN7android14IPCThreadState20getAndExecuteCommandEv;
+ _ZN7android14IPCThreadState20getProcessFreezeInfoEiPbS1_;
+ _ZN7android14IPCThreadState20handlePolledCommandsEv;
+ _ZN7android14IPCThreadState20processPendingDerefsEv;
+ _ZN7android14IPCThreadState20writeTransactionDataEijijRKNS_6ParcelEPi;
+ _ZN7android14IPCThreadState22attemptIncStrongHandleEi;
+ _ZN7android14IPCThreadState22clearCallingWorkSourceEv;
+ _ZN7android14IPCThreadState22clearDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState22processPostWriteDerefsEv;
+ _ZN7android14IPCThreadState22restoreCallingIdentityEl;
+ _ZN7android14IPCThreadState23setCallingWorkSourceUidEj;
+ _ZN7android14IPCThreadState24clearPropagateWorkSourceEv;
+ _ZN7android14IPCThreadState24requestDeathNotificationEiPNS_8BpBinderE;
+ _ZN7android14IPCThreadState24restoreCallingWorkSourceEl;
+ _ZN7android14IPCThreadState25blockUntilThreadAvailableEv;
+ _ZN7android14IPCThreadState27disableBackgroundSchedulingEb;
+ _ZN7android14IPCThreadState28backgroundSchedulingDisabledEv;
+ _ZN7android14IPCThreadState29setLastTransactionBinderFlagsEi;
+ _ZN7android14IPCThreadState41setCallingWorkSourceUidWithoutPropagationEj;
+ _ZN7android14IPCThreadState4selfEv;
+ _ZN7android14IPCThreadState6freezeEibj;
+ _ZN7android14IPCThreadState7processEv;
+ _ZN7android14IPCThreadState8shutdownEv;
+ _ZN7android14IPCThreadState8transactEijRKNS_6ParcelEPS1_j;
+ _ZN7android14IPCThreadState9sendReplyERKNS_6ParcelEj;
+ _ZN7android14IPCThreadStateC1Ev;
+ _ZN7android14IPCThreadStateC2Ev;
+ _ZN7android14IPCThreadStateD1Ev;
+ _ZN7android14IPCThreadStateD2Ev;
+ _ZN7android14IShellCallback10descriptorE;
+ _ZN7android14IShellCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android14IShellCallback12default_implE;
+ _ZN7android14IShellCallback14getDefaultImplEv;
+ _ZN7android14IShellCallback14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android14IShellCallbackC2Ev;
+ _ZN7android14IShellCallbackD0Ev;
+ _ZN7android14IShellCallbackD1Ev;
+ _ZN7android14IShellCallbackD2Ev;
+ _ZN7android14MemoryHeapBase4initEiPvmiPKc;
+ _ZN7android14MemoryHeapBase5mapfdEibml;
+ _ZN7android14MemoryHeapBase7disposeEv;
+ _ZN7android14MemoryHeapBaseC1Eimjl;
+ _ZN7android14MemoryHeapBaseC1EmjPKc;
+ _ZN7android14MemoryHeapBaseC1EPKcmj;
+ _ZN7android14MemoryHeapBaseC1Ev;
+ _ZN7android14MemoryHeapBaseC2Eimjl;
+ _ZN7android14MemoryHeapBaseC2EmjPKc;
+ _ZN7android14MemoryHeapBaseC2EPKcmj;
+ _ZN7android14MemoryHeapBaseC2Ev;
+ _ZN7android14MemoryHeapBaseD0Ev;
+ _ZN7android14MemoryHeapBaseD1Ev;
+ _ZN7android14MemoryHeapBaseD2Ev;
+ _ZN7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android15IResultReceiver10descriptorE;
+ _ZN7android15IResultReceiver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android15IResultReceiver12default_implE;
+ _ZN7android15IResultReceiver14getDefaultImplEv;
+ _ZN7android15IResultReceiver14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android15IResultReceiverC2Ev;
+ _ZN7android15IResultReceiverD0Ev;
+ _ZN7android15IResultReceiverD1Ev;
+ _ZN7android15IResultReceiverD2Ev;
+ _ZN7android15IServiceManagerC2Ev;
+ _ZN7android15IServiceManagerD0Ev;
+ _ZN7android15IServiceManagerD1Ev;
+ _ZN7android15IServiceManagerD2Ev;
+ _ZN7android15stringForIndentEi;
+ _ZN7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android18BufferedTextOutput10moveIndentEi;
+ _ZN7android18BufferedTextOutput10pushBundleEv;
+ _ZN7android18BufferedTextOutput5printEPKcm;
+ _ZN7android18BufferedTextOutput9popBundleEv;
+ _ZN7android18BufferedTextOutputC2Ej;
+ _ZN7android18BufferedTextOutputD0Ev;
+ _ZN7android18BufferedTextOutputD1Ev;
+ _ZN7android18BufferedTextOutputD2Ev;
+ _ZN7android18ServiceManagerShim10addServiceERKNS_8String16ERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android18ServiceManagerShim10isDeclaredERKNS_8String16E;
+ _ZN7android18ServiceManagerShim12listServicesEi;
+ _ZN7android18ServiceManagerShim14waitForServiceERKNS_8String16E;
+ _ZN7android18ServiceManagerShim16updatableViaApexERKNS_8String16E;
+ _ZN7android18ServiceManagerShim20getDeclaredInstancesERKNS_8String16E;
+ _ZN7android18ServiceManagerShimC1ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18ServiceManagerShimC2ERKNS_2spINS_2os15IServiceManagerEEE;
+ _ZN7android18the_context_objectE;
+ _ZN7android21defaultServiceManagerEv;
+ _ZN7android22SimpleBestFitAllocator10deallocateEm;
+ _ZN7android22SimpleBestFitAllocator12kMemoryAlignE;
+ _ZN7android22SimpleBestFitAllocator5allocEmj;
+ _ZN7android22SimpleBestFitAllocator7deallocEm;
+ _ZN7android22SimpleBestFitAllocator8allocateEmj;
+ _ZN7android22SimpleBestFitAllocatorC1Em;
+ _ZN7android22SimpleBestFitAllocatorC2Em;
+ _ZN7android22SimpleBestFitAllocatorD1Ev;
+ _ZN7android22SimpleBestFitAllocatorD2Ev;
+ _ZN7android24setDefaultServiceManagerERKNS_2spINS_15IServiceManagerEEE;
+ _ZN7android2os15IClientCallback10descriptorE;
+ _ZN7android2os15IClientCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IClientCallback12default_implE;
+ _ZN7android2os15IClientCallback14getDefaultImplEv;
+ _ZN7android2os15IClientCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IClientCallbackC2Ev;
+ _ZN7android2os15IClientCallbackD0Ev;
+ _ZN7android2os15IClientCallbackD1Ev;
+ _ZN7android2os15IClientCallbackD2Ev;
+ _ZN7android2os15IServiceManager10descriptorE;
+ _ZN7android2os15IServiceManager11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os15IServiceManager12default_implE;
+ _ZN7android2os15IServiceManager14getDefaultImplEv;
+ _ZN7android2os15IServiceManager14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os15IServiceManagerC2Ev;
+ _ZN7android2os15IServiceManagerD0Ev;
+ _ZN7android2os15IServiceManagerD1Ev;
+ _ZN7android2os15IServiceManagerD2Ev;
+ _ZN7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnClientCallbackC2Ev;
+ _ZN7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os16BnServiceManagerC2Ev;
+ _ZN7android2os16BpClientCallback9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android2os16BpClientCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpClientCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10addServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEEbi;
+ _ZN7android2os16BpServiceManager10getServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager10isDeclaredERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPb;
+ _ZN7android2os16BpServiceManager12checkServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager12listServicesEiPNSt3__16vectorINS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS7_IS9_EEEE;
+ _ZN7android2os16BpServiceManager16updatableViaApexERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_8optionalIS8_EE;
+ _ZN7android2os16BpServiceManager19getServiceDebugInfoEPNSt3__16vectorINS0_16ServiceDebugInfoENS2_9allocatorIS4_EEEE;
+ _ZN7android2os16BpServiceManager20getDeclaredInstancesERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEPNS2_6vectorIS8_NS6_IS8_EEEE;
+ _ZN7android2os16BpServiceManager20tryUnregisterServiceERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManager22registerClientCallbackERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEERKNSB_INS0_15IClientCallbackEEE;
+ _ZN7android2os16BpServiceManager24registerForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManager26unregisterForNotificationsERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS0_16IServiceCallbackEEE;
+ _ZN7android2os16BpServiceManagerC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16BpServiceManagerC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback10descriptorE;
+ _ZN7android2os16IServiceCallback11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os16IServiceCallback12default_implE;
+ _ZN7android2os16IServiceCallback14getDefaultImplEv;
+ _ZN7android2os16IServiceCallback14setDefaultImplENSt3__110unique_ptrIS1_NS2_14default_deleteIS1_EEEE;
+ _ZN7android2os16IServiceCallbackC2Ev;
+ _ZN7android2os16IServiceCallbackD0Ev;
+ _ZN7android2os16IServiceCallbackD1Ev;
+ _ZN7android2os16IServiceCallbackD2Ev;
+ _ZN7android2os16ParcelableHolder14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os16ServiceDebugInfo14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZN7android2os17BnServiceCallbackC2Ev;
+ _ZN7android2os17BpServiceCallback14onRegistrationERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17BpServiceCallbackC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android2os17PersistableBundle10putBooleanERKNS_8String16Eb;
+ _ZN7android2os17PersistableBundle12putIntVectorERKNS_8String16ERKNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZN7android2os17PersistableBundle13putLongVectorERKNS_8String16ERKNSt3__16vectorIlNS5_9allocatorIlEEEE;
+ _ZN7android2os17PersistableBundle14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os17PersistableBundle15putDoubleVectorERKNS_8String16ERKNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZN7android2os17PersistableBundle15putStringVectorERKNS_8String16ERKNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZN7android2os17PersistableBundle16putBooleanVectorERKNS_8String16ERKNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZN7android2os17PersistableBundle19readFromParcelInnerEPKNS_6ParcelEm;
+ _ZN7android2os17PersistableBundle20putPersistableBundleERKNS_8String16ERKS1_;
+ _ZN7android2os17PersistableBundle5eraseERKNS_8String16E;
+ _ZN7android2os17PersistableBundle6putIntERKNS_8String16Ei;
+ _ZN7android2os17PersistableBundle7putLongERKNS_8String16El;
+ _ZN7android2os17PersistableBundle9putDoubleERKNS_8String16Ed;
+ _ZN7android2os17PersistableBundle9putStringERKNS_8String16ES4_;
+ _ZN7android2os20ParcelFileDescriptor14readFromParcelEPKNS_6ParcelE;
+ _ZN7android2os20ParcelFileDescriptorC1ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC1Ev;
+ _ZN7android2os20ParcelFileDescriptorC2ENS_4base14unique_fd_implINS2_13DefaultCloserEEE;
+ _ZN7android2os20ParcelFileDescriptorC2Ev;
+ _ZN7android2os20ParcelFileDescriptorD0Ev;
+ _ZN7android2os20ParcelFileDescriptorD1Ev;
+ _ZN7android2os20ParcelFileDescriptorD2Ev;
+ _ZN7android2spINS_7BBinderEED2Ev;
+ _ZN7android2spINS_7IBinderEEaSEOS2_;
+ _ZN7android2spINS_7IBinderEEaSERKS2_;
+ _ZN7android2spINS_9HeapCacheEED2Ev;
+ _ZN7android4aerrE;
+ _ZN7android4alogE;
+ _ZN7android4aoutE;
+ _ZN7android6binder20LazyServiceRegistrar10reRegisterEv;
+ _ZN7android6binder20LazyServiceRegistrar11getInstanceEv;
+ _ZN7android6binder20LazyServiceRegistrar12forcePersistEb;
+ _ZN7android6binder20LazyServiceRegistrar13tryUnregisterEv;
+ _ZN7android6binder20LazyServiceRegistrar15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEbi;
+ _ZN7android6binder20LazyServiceRegistrar25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder20LazyServiceRegistrarC1Ev;
+ _ZN7android6binder20LazyServiceRegistrarC2Ev;
+ _ZN7android6binder6Status11fromStatusTEi;
+ _ZN7android6binder6Status12setExceptionEiRKNS_7String8E;
+ _ZN7android6binder6Status14readFromParcelERKNS_6ParcelE;
+ _ZN7android6binder6Status14setFromStatusTEi;
+ _ZN7android6binder6Status17exceptionToStringEi;
+ _ZN7android6binder6Status17fromExceptionCodeEi;
+ _ZN7android6binder6Status17fromExceptionCodeEiPKc;
+ _ZN7android6binder6Status17fromExceptionCodeEiRKNS_7String8E;
+ _ZN7android6binder6Status23setServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEi;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiPKc;
+ _ZN7android6binder6Status24fromServiceSpecificErrorEiRKNS_7String8E;
+ _ZN7android6binder6Status2okEv;
+ _ZN7android6binder6StatusC1Eii;
+ _ZN7android6binder6StatusC1EiiRKNS_7String8E;
+ _ZN7android6binder6StatusC2Eii;
+ _ZN7android6binder6StatusC2EiiRKNS_7String8E;
+ _ZN7android6binder8internal21ClientCounterCallback10reRegisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback12forcePersistEb;
+ _ZN7android6binder8internal21ClientCounterCallback13tryUnregisterEv;
+ _ZN7android6binder8internal21ClientCounterCallback15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal21ClientCounterCallback25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal21ClientCounterCallbackC1Ev;
+ _ZN7android6binder8internal21ClientCounterCallbackC2Ev;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl10reRegisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl11tryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl12forcePersistEb;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl13tryUnregisterEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl15registerServiceERKNS_2spINS_7IBinderEEERKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEEbi;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl16maybeTryShutdownEv;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl23assertRegisteredServiceERKNS_2spINS_7IBinderEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl25setActiveServicesCallbackERKNSt3__18functionIFbbEEE;
+ _ZN7android6binder8internal25ClientCounterCallbackImpl9onClientsERKNS_2spINS_7IBinderEEEb;
+ _ZN7android6Parcel10appendFromEPKS0_mm;
+ _ZN7android6Parcel10markForRpcERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android6Parcel10writeFloatEf;
+ _ZN7android6Parcel10writeInt32Ei;
+ _ZN7android6Parcel10writeInt64El;
+ _ZN7android6Parcel11compareDataERKS0_;
+ _ZN7android6Parcel11finishWriteEm;
+ _ZN7android6Parcel11setDataSizeEm;
+ _ZN7android6Parcel11writeDoubleEd;
+ _ZN7android6Parcel11writeObjectERK18flat_binder_objectb;
+ _ZN7android6Parcel11writeUint32Ej;
+ _ZN7android6Parcel11writeUint64Em;
+ _ZN7android6Parcel12pushAllowFdsEb;
+ _ZN7android6Parcel12restartWriteEm;
+ _ZN7android6Parcel12writeCStringEPKc;
+ _ZN7android6Parcel12writeInplaceEm;
+ _ZN7android6Parcel12writePointerEm;
+ _ZN7android6Parcel12writeString8EPKcm;
+ _ZN7android6Parcel12writeString8ERKNS_7String8E;
+ _ZN7android6Parcel13continueWriteEm;
+ _ZN7android6Parcel13flattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13markForBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel13writeString16EPKDsm;
+ _ZN7android6Parcel13writeString16ERKNS_8String16E;
+ _ZN7android6Parcel13writeString16ERKNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZN7android6Parcel13writeString16ERKNSt3__18optionalINS_8String16EEE;
+ _ZN7android6Parcel13writeUnpaddedEPKvm;
+ _ZN7android6Parcel14acquireObjectsEv;
+ _ZN7android6Parcel14freeDataNoInitEv;
+ _ZN7android6Parcel14releaseObjectsEv;
+ _ZN7android6Parcel14writeByteArrayEmPKh;
+ _ZN7android6Parcel15restoreAllowFdsEb;
+ _ZN7android6Parcel15setDataCapacityEm;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZN7android6Parcel15writeBoolVectorERKNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZN7android6Parcel15writeByteVectorERKNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZN7android6Parcel15writeCharVectorERKNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZN7android6Parcel15writeInt32ArrayEmPKi;
+ _ZN7android6Parcel15writeParcelableERKNS_10ParcelableE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZN7android6Parcel16writeFloatVectorERKNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZN7android6Parcel16writeInt32VectorERKNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__110unique_ptrINS1_6vectorIlNS1_9allocatorIlEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__16vectorIlNS1_9allocatorIlEEEE;
+ _ZN7android6Parcel16writeInt64VectorERKNSt3__18optionalINS1_6vectorIlNS1_9allocatorIlEEEEEE;
+ _ZN7android6Parcel16writeNoExceptionEv;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZN7android6Parcel16writeUtf8AsUtf16ERKNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZN7android6Parcel17writeDoubleVectorERKNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZN7android6Parcel17writeNativeHandleEPK13native_handle;
+ _ZN7android6Parcel17writeStrongBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__110unique_ptrINS1_6vectorImNS1_9allocatorImEEEENS1_14default_deleteIS6_EEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__16vectorImNS1_9allocatorImEEEE;
+ _ZN7android6Parcel17writeUint64VectorERKNSt3__18optionalINS1_6vectorImNS1_9allocatorImEEEEEE;
+ _ZN7android6Parcel18getGlobalAllocSizeEv;
+ _ZN7android6Parcel19finishFlattenBinderERKNS_2spINS_7IBinderEEE;
+ _ZN7android6Parcel19getGlobalAllocCountEv;
+ _ZN7android6Parcel19ipcSetDataReferenceEPKhmPKymPFvPS0_S2_mS4_mE;
+ _ZN7android6Parcel19writeFileDescriptorEib;
+ _ZN7android6Parcel19writeInterfaceTokenEPKDsm;
+ _ZN7android6Parcel19writeInterfaceTokenERKNS_8String16E;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZN7android6Parcel19writeString16VectorERKNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZN7android6Parcel20closeFileDescriptorsEv;
+ _ZN7android6Parcel22writeDupFileDescriptorEi;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZN7android6Parcel23writeStrongBinderVectorERKNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZN7android6Parcel25writeParcelFileDescriptorEib;
+ _ZN7android6Parcel25writeUniqueFileDescriptorERKNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android6Parcel26writeRawNullableParcelableEPKNS_10ParcelableE;
+ _ZN7android6Parcel27replaceCallingWorkSourceUidEj;
+ _ZN7android6Parcel28writeDupParcelFileDescriptorEi;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZN7android6Parcel28writeUtf8VectorAsUtf16VectorERKNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZN7android6Parcel31writeUniqueFileDescriptorVectorERKNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZN7android6Parcel35writeDupImmutableBlobFileDescriptorEi;
+ _ZN7android6Parcel4Blob4initEiPvmb;
+ _ZN7android6Parcel4Blob5clearEv;
+ _ZN7android6Parcel4Blob7releaseEv;
+ _ZN7android6Parcel4BlobC1Ev;
+ _ZN7android6Parcel4BlobC2Ev;
+ _ZN7android6Parcel4BlobD1Ev;
+ _ZN7android6Parcel4BlobD2Ev;
+ _ZN7android6Parcel5writeEPKvm;
+ _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE;
+ _ZN7android6Parcel7setDataEPKhm;
+ _ZN7android6Parcel8freeDataEv;
+ _ZN7android6Parcel8growDataEm;
+ _ZN7android6Parcel8setErrorEi;
+ _ZN7android6Parcel9initStateEv;
+ _ZN7android6Parcel9writeBlobEmbPNS0_12WritableBlobE;
+ _ZN7android6Parcel9writeBoolEb;
+ _ZN7android6Parcel9writeByteEa;
+ _ZN7android6Parcel9writeCharEDs;
+ _ZN7android6ParcelC1Ev;
+ _ZN7android6ParcelC2Ev;
+ _ZN7android6ParcelD1Ev;
+ _ZN7android6ParcelD2Ev;
+ _ZN7android7BBinder10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinder10pingBinderEv;
+ _ZN7android7BBinder11getDebugPidEv;
+ _ZN7android7BBinder11isInheritRtEv;
+ _ZN7android7BBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android7BBinder11localBinderEv;
+ _ZN7android7BBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android7BBinder12detachObjectEPKv;
+ _ZN7android7BBinder12getExtensionEv;
+ _ZN7android7BBinder12setExtensionERKNS_2spINS_7IBinderEEE;
+ _ZN7android7BBinder12setInheritRtEb;
+ _ZN7android7BBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android7BBinder15isRequestingSidEv;
+ _ZN7android7BBinder16setRequestingSidEb;
+ _ZN7android7BBinder17getOrCreateExtrasEv;
+ _ZN7android7BBinder21getMinSchedulerPolicyEv;
+ _ZN7android7BBinder21setMinSchedulerPolicyEii;
+ _ZN7android7BBinder23getMinSchedulerPriorityEv;
+ _ZN7android7BBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android7BBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android7BBinderC1Ev;
+ _ZN7android7BBinderC2Ev;
+ _ZN7android7BBinderD0Ev;
+ _ZN7android7BBinderD1Ev;
+ _ZN7android7BBinderD2Ev;
+ _ZN7android7content2pm18PackageChangeEvent14readFromParcelEPKNS_6ParcelE;
+ _ZN7android7content2pm21IPackageManagerNative10descriptorE;
+ _ZN7android7content2pm21IPackageManagerNative11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm21IPackageManagerNative12default_implE;
+ _ZN7android7content2pm21IPackageManagerNative14getDefaultImplEv;
+ _ZN7android7content2pm21IPackageManagerNative14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm21IPackageManagerNativeC2Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZN7android7content2pm21IPackageManagerNativeD2Ev;
+ _ZN7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm22BnPackageManagerNativeC2Ev;
+ _ZN7android7content2pm22BpPackageManagerNative14getAllPackagesEPNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative15getNamesForUidsERKNSt3__16vectorIiNS3_9allocatorIiEEEEPNS4_INS3_12basic_stringIcNS3_11char_traitsIcEENS5_IcEEEENS5_ISE_EEEE;
+ _ZN7android7content2pm22BpPackageManagerNative16getLocationFlagsERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEPi;
+ _ZN7android7content2pm22BpPackageManagerNative16hasSystemFeatureERKNS_8String16EiPb;
+ _ZN7android7content2pm22BpPackageManagerNative19isPackageDebuggableERKNS_8String16EPb;
+ _ZN7android7content2pm22BpPackageManagerNative22getInstallerForPackageERKNS_8String16EPNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative24getVersionCodeForPackageERKNS_8String16EPl;
+ _ZN7android7content2pm22BpPackageManagerNative27hasSha256SigningCertificateERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERKNS3_6vectorIhNS7_IhEEEEPb;
+ _ZN7android7content2pm22BpPackageManagerNative28getModuleMetadataPackageNameEPNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29getTargetSdkVersionForPackageERKNS_8String16EPi;
+ _ZN7android7content2pm22BpPackageManagerNative29isAudioPlaybackCaptureAllowedERKNSt3__16vectorINS3_12basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEENS8_ISA_EEEEPNS4_IbNS8_IbEEEE;
+ _ZN7android7content2pm22BpPackageManagerNative29registerPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNative31unregisterPackageChangeObserverERKNS_2spINS1_22IPackageChangeObserverEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22BpPackageManagerNativeC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver10descriptorE;
+ _ZN7android7content2pm22IPackageChangeObserver11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm22IPackageChangeObserver12default_implE;
+ _ZN7android7content2pm22IPackageChangeObserver14getDefaultImplEv;
+ _ZN7android7content2pm22IPackageChangeObserver14setDefaultImplENSt3__110unique_ptrIS2_NS3_14default_deleteIS2_EEEE;
+ _ZN7android7content2pm22IPackageChangeObserverC2Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZN7android7content2pm22IPackageChangeObserverD2Ev;
+ _ZN7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZN7android7content2pm23BnPackageChangeObserverC2Ev;
+ _ZN7android7content2pm23BpPackageChangeObserver16onPackageChangedERKNS1_18PackageChangeEventE;
+ _ZN7android7content2pm23BpPackageChangeObserverC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7content2pm23BpPackageChangeObserverC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android7HexDumpC1EPKvmm;
+ _ZN7android7HexDumpC2EPKvmm;
+ _ZN7android7IBinder11getDebugPidEPi;
+ _ZN7android7IBinder11localBinderEv;
+ _ZN7android7IBinder12getExtensionEPNS_2spIS0_EE;
+ _ZN7android7IBinder12remoteBinderEv;
+ _ZN7android7IBinder12shellCommandERKNS_2spIS0_EEiiiRNS_6VectorINS_8String16EEERKNS1_INS_14IShellCallbackEEERKNS1_INS_15IResultReceiverEEE;
+ _ZN7android7IBinder19queryLocalInterfaceERKNS_8String16E;
+ _ZN7android7IBinderC2Ev;
+ _ZN7android7IBinderD0Ev;
+ _ZN7android7IBinderD1Ev;
+ _ZN7android7IBinderD2Ev;
+ _ZN7android7IMemory10descriptorE;
+ _ZN7android7IMemory11asInterfaceERKNS_2spINS_7IBinderEEE;
+ _ZN7android7IMemory12default_implE;
+ _ZN7android7IMemory14getDefaultImplEv;
+ _ZN7android7IMemory14setDefaultImplENSt3__110unique_ptrIS0_NS1_14default_deleteIS0_EEEE;
+ _ZN7android7IMemoryC2Ev;
+ _ZN7android7IMemoryD0Ev;
+ _ZN7android7IMemoryD1Ev;
+ _ZN7android7IMemoryD2Ev;
+ _ZN7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BnMemoryC2Ev;
+ _ZN7android8BnMemoryD0Ev;
+ _ZN7android8BnMemoryD1Ev;
+ _ZN7android8BnMemoryD2Ev;
+ _ZN7android8BpBinder10onFirstRefEv;
+ _ZN7android8BpBinder10pingBinderEv;
+ _ZN7android8BpBinder11linkToDeathERKNS_2spINS_7IBinder14DeathRecipientEEEPvj;
+ _ZN7android8BpBinder12attachObjectEPKvPvS3_PFvS2_S3_S3_E;
+ _ZN7android8BpBinder12detachObjectEPKv;
+ _ZN7android8BpBinder12remoteBinderEv;
+ _ZN7android8BpBinder12sendObituaryEv;
+ _ZN7android8BpBinder12sTrackingMapE;
+ _ZN7android8BpBinder13getCountByUidERNS_6VectorIjEES3_;
+ _ZN7android8BpBinder13ObjectManager4killEv;
+ _ZN7android8BpBinder13ObjectManager6attachEPKvPvS4_PFvS3_S4_S4_E;
+ _ZN7android8BpBinder13ObjectManager6detachEPKv;
+ _ZN7android8BpBinder13ObjectManagerC1Ev;
+ _ZN7android8BpBinder13ObjectManagerC2Ev;
+ _ZN7android8BpBinder13ObjectManagerD1Ev;
+ _ZN7android8BpBinder13ObjectManagerD2Ev;
+ _ZN7android8BpBinder13sTrackingLockE;
+ _ZN7android8BpBinder13unlinkToDeathERKNS_2wpINS_7IBinder14DeathRecipientEEEPvjPS4_;
+ _ZN7android8BpBinder14reportOneDeathERKNS0_8ObituaryE;
+ _ZN7android8BpBinder14sLimitCallbackE;
+ _ZN7android8BpBinder15onLastStrongRefEPKv;
+ _ZN7android8BpBinder15sNumTrackedUidsE;
+ _ZN7android8BpBinder16enableCountByUidEv;
+ _ZN7android8BpBinder16setLimitCallbackEPFviE;
+ _ZN7android8BpBinder17disableCountByUidEv;
+ _ZN7android8BpBinder18sCountByUidEnabledE;
+ _ZN7android8BpBinder19getBinderProxyCountEj;
+ _ZN7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZN7android8BpBinder20setCountByUidEnabledEb;
+ _ZN7android8BpBinder26sBinderProxyThrottleCreateE;
+ _ZN7android8BpBinder29sBinderProxyCountLowWatermarkE;
+ _ZN7android8BpBinder29setBinderProxyCountWatermarksEii;
+ _ZN7android8BpBinder30sBinderProxyCountHighWatermarkE;
+ _ZN7android8BpBinder4dumpEiRKNS_6VectorINS_8String16EEE;
+ _ZN7android8BpBinder6createEi;
+ _ZN7android8BpBinder6createERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8BpBinder8transactEjRKNS_6ParcelEPS1_j;
+ _ZN7android8BpBinderC1EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC1EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC1EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderC2EONS0_12BinderHandleEi;
+ _ZN7android8BpBinderC2EONS0_9RpcHandleE;
+ _ZN7android8BpBinderC2EONSt3__17variantIJNS0_12BinderHandleENS0_9RpcHandleEEEE;
+ _ZN7android8BpBinderD0Ev;
+ _ZN7android8BpBinderD1Ev;
+ _ZN7android8BpBinderD2Ev;
+ _ZN7android8BpMemoryC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android8BpMemoryD0Ev;
+ _ZN7android8BpMemoryD1Ev;
+ _ZN7android8BpMemoryD2Ev;
+ _ZN7android8internal9Stability11getCategoryEPNS_7IBinderE;
+ _ZN7android8internal9Stability11levelStringENS1_5LevelE;
+ _ZN7android8internal9Stability13getLocalLevelEv;
+ _ZN7android8internal9Stability15isDeclaredLevelENS1_5LevelE;
+ _ZN7android8internal9Stability17debugLogStabilityERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability19markCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability22tryMarkCompilationUnitEPNS_7IBinderE;
+ _ZN7android8internal9Stability24requiresVintfDeclarationERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability25forceDowngradeToStabilityERKNS_2spINS_7IBinderEEENS1_5LevelE;
+ _ZN7android8internal9Stability30forceDowngradeToLocalStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToSystemStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability31forceDowngradeToVendorStabilityERKNS_2spINS_7IBinderEEE;
+ _ZN7android8internal9Stability5checkENS1_8CategoryENS1_5LevelE;
+ _ZN7android8internal9Stability7setReprEPNS_7IBinderEij;
+ _ZN7android8internal9Stability8Category11debugStringEv;
+ _ZN7android8internal9Stability8markVndkEPNS_7IBinderE;
+ _ZN7android8internal9Stability9markVintfEPNS_7IBinderE;
+ _ZN7android8RpcState11CommandDataC1Em;
+ _ZN7android8RpcState11CommandDataC2Em;
+ _ZN7android8RpcState12countBindersEv;
+ _ZN7android8RpcState12getSessionIdERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPi;
+ _ZN7android8RpcState12waitForReplyERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPNS_6ParcelE;
+ _ZN7android8RpcState13getMaxThreadsERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEEPm;
+ _ZN7android8RpcState13getRootObjectERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState13sendDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState15onBinderLeavingERKNS_2spINS_10RpcSessionEEERKNS1_INS_7IBinderEEEPNS_10RpcAddressE;
+ _ZN7android8RpcState15processTransactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState16onBinderEnteringERKNS_2spINS_10RpcSessionEEERKNS_10RpcAddressE;
+ _ZN7android8RpcState16processDecStrongERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState20getAndExecuteCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android8RpcState20processServerCommandERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEERKNS_13RpcWireHeaderE;
+ _ZN7android8RpcState23processTransactInternalERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_2spINS_10RpcSessionEEENS0_11CommandDataE;
+ _ZN7android8RpcState4dumpEv;
+ _ZN7android8RpcState6rpcRecERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPvm;
+ _ZN7android8RpcState7rpcSendERKNS_4base14unique_fd_implINS1_13DefaultCloserEEEPKcPKvm;
+ _ZN7android8RpcState8transactERKNS_4base14unique_fd_implINS1_13DefaultCloserEEERKNS_10RpcAddressEjRKNS_6ParcelERKNS_2spINS_10RpcSessionEEEPSA_j;
+ _ZN7android8RpcState9terminateEv;
+ _ZN7android8RpcStateC1Ev;
+ _ZN7android8RpcStateC2Ev;
+ _ZN7android8RpcStateD1Ev;
+ _ZN7android8RpcStateD2Ev;
+ _ZN7android9BpRefBase10onFirstRefEv;
+ _ZN7android9BpRefBase15onLastStrongRefEPKv;
+ _ZN7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZN7android9BpRefBaseC1ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseC2ERKNS_2spINS_7IBinderEEE;
+ _ZN7android9BpRefBaseD0Ev;
+ _ZN7android9BpRefBaseD1Ev;
+ _ZN7android9BpRefBaseD2Ev;
+ _ZN7android9HeapCache10binderDiedERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCache10dump_heapsEv;
+ _ZN7android9HeapCache8get_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9find_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2spINS_7IBinderEEE;
+ _ZN7android9HeapCache9free_heapERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9HeapCacheC1Ev;
+ _ZN7android9HeapCacheC2Ev;
+ _ZN7android9HeapCacheD0Ev;
+ _ZN7android9HeapCacheD1Ev;
+ _ZN7android9HeapCacheD2Ev;
+ _ZN7android9hexStringEPKvm;
+ _ZN7android9RpcServer12listSessionsEv;
+ _ZN7android9RpcServer13getMaxThreadsEv;
+ _ZN7android9RpcServer13getRootObjectEv;
+ _ZN7android9RpcServer13releaseServerEv;
+ _ZN7android9RpcServer13setMaxThreadsEm;
+ _ZN7android9RpcServer13setRootObjectERKNS_2spINS_7IBinderEEE;
+ _ZN7android9RpcServer15setupInetServerEjPj;
+ _ZN7android9RpcServer16setupVsockServerEj;
+ _ZN7android9RpcServer17setRootObjectWeakERKNS_2wpINS_7IBinderEEE;
+ _ZN7android9RpcServer17setupSocketServerERKNS_16RpcSocketAddressE;
+ _ZN7android9RpcServer19establishConnectionEONS_2spIS0_EENS_4base14unique_fd_implINS4_13DefaultCloserEEE;
+ _ZN7android9RpcServer19setupExternalServerENS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZN7android9RpcServer20onSessionTerminatingERKNS_2spINS_10RpcSessionEEE;
+ _ZN7android9RpcServer21setupUnixDomainServerEPKc;
+ _ZN7android9RpcServer24numUninitializedSessionsEv;
+ _ZN7android9RpcServer4joinEv;
+ _ZN7android9RpcServer4makeEv;
+ _ZN7android9RpcServer61iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProductionEv;
+ _ZN7android9RpcServer9acceptOneEv;
+ _ZN7android9RpcServer9hasServerEv;
+ _ZN7android9RpcServerC1Ev;
+ _ZN7android9RpcServerC2Ev;
+ _ZN7android9RpcServerD0Ev;
+ _ZN7android9RpcServerD1Ev;
+ _ZN7android9RpcServerD2Ev;
+ _ZN7androidlsERNS_10TextOutputERKNS_7HexDumpE;
+ _ZN7androidlsERNS_10TextOutputERKNS_8TypeCodeE;
+ _ZN7androidlsIA15_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA24_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA2_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA34_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA3_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA43_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA4_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA5_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA8_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIA9_cEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIjEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsImEERNS_10TextOutputES2_RKT_;
+ _ZN7androidlsINSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEERNS_10TextOutputES9_RKT_;
+ _ZN7androidlsIPcEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIPvEERNS_10TextOutputES3_RKT_;
+ _ZN7androidlsIyEERNS_10TextOutputES2_RKT_;
+ _ZNK7android10MemoryBase9getMemoryEPlPm;
+ _ZNK7android10RpcAddress13writeToParcelEPNS_6ParcelE;
+ _ZNK7android10RpcAddress15viewRawEmbeddedEv;
+ _ZNK7android10RpcAddress6isZeroEv;
+ _ZNK7android10RpcAddress8toStringEv;
+ _ZNK7android10RpcAddressltERKS0_;
+ _ZNK7android11IMemoryHeap22getInterfaceDescriptorEv;
+ _ZNK7android12BpMemoryHeap12assertMappedEv;
+ _ZNK7android12BpMemoryHeap18assertReallyMappedEv;
+ _ZNK7android12BpMemoryHeap7getBaseEv;
+ _ZNK7android12BpMemoryHeap7getSizeEv;
+ _ZNK7android12BpMemoryHeap8getFlagsEv;
+ _ZNK7android12BpMemoryHeap9getHeapIDEv;
+ _ZNK7android12BpMemoryHeap9getOffsetEv;
+ _ZNK7android12MemoryDealer4dumpEPKc;
+ _ZNK7android12MemoryDealer4heapEv;
+ _ZNK7android12MemoryDealer9allocatorEv;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_compareEPKvSA_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE15do_move_forwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE16do_move_backwardEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE7do_copyEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEE8do_splatEPvPKvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_compareES3_S3_;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE10do_destroyEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE12do_constructEPvm;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE15do_move_forwardEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE16do_move_backwardEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE7do_copyEPvS3_m;
+ _ZNK7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEE8do_splatEPvS3_m;
+ _ZNK7android14IPCThreadState13getCallingPidEv;
+ _ZNK7android14IPCThreadState13getCallingSidEv;
+ _ZNK7android14IPCThreadState13getCallingUidEv;
+ _ZNK7android14IPCThreadState18getCallRestrictionEv;
+ _ZNK7android14IPCThreadState19getStrictModePolicyEv;
+ _ZNK7android14IPCThreadState22getServingStackPointerEv;
+ _ZNK7android14IPCThreadState23getCallingWorkSourceUidEv;
+ _ZNK7android14IPCThreadState25shouldPropagateWorkSourceEv;
+ _ZNK7android14IPCThreadState29getLastTransactionBinderFlagsEv;
+ _ZNK7android14IShellCallback22getInterfaceDescriptorEv;
+ _ZNK7android14MemoryHeapBase7getBaseEv;
+ _ZNK7android14MemoryHeapBase7getSizeEv;
+ _ZNK7android14MemoryHeapBase8getFlagsEv;
+ _ZNK7android14MemoryHeapBase9getDeviceEv;
+ _ZNK7android14MemoryHeapBase9getHeapIDEv;
+ _ZNK7android14MemoryHeapBase9getOffsetEv;
+ _ZNK7android15IResultReceiver22getInterfaceDescriptorEv;
+ _ZNK7android15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android18BufferedTextOutput9getBufferEv;
+ _ZNK7android18ServiceManagerShim10getServiceERKNS_8String16E;
+ _ZNK7android18ServiceManagerShim12checkServiceERKNS_8String16E;
+ _ZNK7android22SimpleBestFitAllocator4dumpEPKc;
+ _ZNK7android22SimpleBestFitAllocator4dumpERNS_7String8EPKc;
+ _ZNK7android22SimpleBestFitAllocator4sizeEv;
+ _ZNK7android22SimpleBestFitAllocator6dump_lEPKc;
+ _ZNK7android22SimpleBestFitAllocator6dump_lERNS_7String8EPKc;
+ _ZNK7android2os15IClientCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os15IServiceManager22getInterfaceDescriptorEv;
+ _ZNK7android2os16IServiceCallback22getInterfaceDescriptorEv;
+ _ZNK7android2os16ParcelableHolder13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os16ServiceDebugInfo13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle10getBooleanERKNS_8String16EPb;
+ _ZNK7android2os17PersistableBundle10getIntKeysEv;
+ _ZNK7android2os17PersistableBundle11getLongKeysEv;
+ _ZNK7android2os17PersistableBundle12getIntVectorERKNS_8String16EPNSt3__16vectorIiNS5_9allocatorIiEEEE;
+ _ZNK7android2os17PersistableBundle13getDoubleKeysEv;
+ _ZNK7android2os17PersistableBundle13getLongVectorERKNS_8String16EPNSt3__16vectorIlNS5_9allocatorIlEEEE;
+ _ZNK7android2os17PersistableBundle13getStringKeysEv;
+ _ZNK7android2os17PersistableBundle13writeToParcelEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle14getBooleanKeysEv;
+ _ZNK7android2os17PersistableBundle15getDoubleVectorERKNS_8String16EPNSt3__16vectorIdNS5_9allocatorIdEEEE;
+ _ZNK7android2os17PersistableBundle15getStringVectorERKNS_8String16EPNSt3__16vectorIS2_NS5_9allocatorIS2_EEEE;
+ _ZNK7android2os17PersistableBundle16getBooleanVectorERKNS_8String16EPNSt3__16vectorIbNS5_9allocatorIbEEEE;
+ _ZNK7android2os17PersistableBundle16getIntVectorKeysEv;
+ _ZNK7android2os17PersistableBundle17getLongVectorKeysEv;
+ _ZNK7android2os17PersistableBundle18writeToParcelInnerEPNS_6ParcelE;
+ _ZNK7android2os17PersistableBundle19getDoubleVectorKeysEv;
+ _ZNK7android2os17PersistableBundle19getStringVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getBooleanVectorKeysEv;
+ _ZNK7android2os17PersistableBundle20getPersistableBundleERKNS_8String16EPS1_;
+ _ZNK7android2os17PersistableBundle24getPersistableBundleKeysEv;
+ _ZNK7android2os17PersistableBundle4sizeEv;
+ _ZNK7android2os17PersistableBundle5emptyEv;
+ _ZNK7android2os17PersistableBundle6getIntERKNS_8String16EPi;
+ _ZNK7android2os17PersistableBundle7getLongERKNS_8String16EPl;
+ _ZNK7android2os17PersistableBundle9getDoubleERKNS_8String16EPd;
+ _ZNK7android2os17PersistableBundle9getStringERKNS_8String16EPS2_;
+ _ZNK7android2os20ParcelFileDescriptor13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status13writeToParcelEPNS_6ParcelE;
+ _ZNK7android6binder6Status9toString8Ev;
+ _ZNK7android6Parcel10errorCheckEv;
+ _ZNK7android6Parcel10ipcObjectsEv;
+ _ZNK7android6Parcel10readDoubleEPd;
+ _ZNK7android6Parcel10readDoubleEv;
+ _ZNK7android6Parcel10readObjectEb;
+ _ZNK7android6Parcel10readUint32EPj;
+ _ZNK7android6Parcel10readUint32Ev;
+ _ZNK7android6Parcel10readUint64EPm;
+ _ZNK7android6Parcel10readUint64Ev;
+ _ZNK7android6Parcel10scanForFdsEv;
+ _ZNK7android6Parcel11ipcDataSizeEv;
+ _ZNK7android6Parcel11readCStringEv;
+ _ZNK7android6Parcel11readInplaceEm;
+ _ZNK7android6Parcel11readPointerEPm;
+ _ZNK7android6Parcel11readPointerEv;
+ _ZNK7android6Parcel11readString8EPNS_7String8E;
+ _ZNK7android6Parcel11readString8Ev;
+ _ZNK7android6Parcel12dataCapacityEv;
+ _ZNK7android6Parcel12dataPositionEv;
+ _ZNK7android6Parcel12objectsCountEv;
+ _ZNK7android6Parcel12readString16EPNS_8String16E;
+ _ZNK7android6Parcel12readString16EPNSt3__110unique_ptrINS_8String16ENS1_14default_deleteIS3_EEEE;
+ _ZNK7android6Parcel12readString16EPNSt3__18optionalINS_8String16EEE;
+ _ZNK7android6Parcel12readString16Ev;
+ _ZNK7android6Parcel13markSensitiveEv;
+ _ZNK7android6Parcel14checkInterfaceEPNS_7IBinderE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__110unique_ptrINS1_6vectorIbNS1_9allocatorIbEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__16vectorIbNS1_9allocatorIbEEEE;
+ _ZNK7android6Parcel14readBoolVectorEPNSt3__18optionalINS1_6vectorIbNS1_9allocatorIbEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIaNS1_9allocatorIaEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__110unique_ptrINS1_6vectorIhNS1_9allocatorIhEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIaNS1_9allocatorIaEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__16vectorIhNS1_9allocatorIhEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIaNS1_9allocatorIaEEEEEE;
+ _ZNK7android6Parcel14readByteVectorEPNSt3__18optionalINS1_6vectorIhNS1_9allocatorIhEEEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__110unique_ptrINS1_6vectorIDsNS1_9allocatorIDsEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__16vectorIDsNS1_9allocatorIDsEEEE;
+ _ZNK7android6Parcel14readCharVectorEPNSt3__18optionalINS1_6vectorIDsNS1_9allocatorIDsEEEEEE;
+ _ZNK7android6Parcel14readParcelableEPNS_10ParcelableE;
+ _ZNK7android6Parcel15ipcObjectsCountEv;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__110unique_ptrINS1_6vectorIfNS1_9allocatorIfEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__16vectorIfNS1_9allocatorIfEEEE;
+ _ZNK7android6Parcel15readFloatVectorEPNSt3__18optionalINS1_6vectorIfNS1_9allocatorIfEEEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__110unique_ptrINS1_6vectorIiNS1_9allocatorIiEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__16vectorIiNS1_9allocatorIiEEEE;
+ _ZNK7android6Parcel15readInt32VectorEPNSt3__18optionalINS1_6vectorIiNS1_9allocatorIiEEEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__110unique_ptrINS1_6vectorIlNS1_9allocatorIlEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__16vectorIlNS1_9allocatorIlEEEE;
+ _ZNK7android6Parcel15readInt64VectorEPNSt3__18optionalINS1_6vectorIlNS1_9allocatorIlEEEEEE;
+ _ZNK7android6Parcel15setDataPositionEm;
+ _ZNK7android6Parcel15unflattenBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16enforceInterfaceEPKDsmPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16enforceInterfaceERKNS_8String16EPNS_14IPCThreadStateE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__110unique_ptrINS1_6vectorIdNS1_9allocatorIdEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__16vectorIdNS1_9allocatorIdEEEE;
+ _ZNK7android6Parcel16readDoubleVectorEPNSt3__18optionalINS1_6vectorIdNS1_9allocatorIdEEEEEE;
+ _ZNK7android6Parcel16readNativeHandleEv;
+ _ZNK7android6Parcel16readStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel16readStrongBinderEv;
+ _ZNK7android6Parcel16readStrongBinderINS_2os15IClientCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_2os16IServiceCallbackEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readStrongBinderINS_7content2pm22IPackageChangeObserverEEEiPNS_2spIT_EE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__110unique_ptrINS1_6vectorImNS1_9allocatorImEEEENS1_14default_deleteIS6_EEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__16vectorImNS1_9allocatorImEEEE;
+ _ZNK7android6Parcel16readUint64VectorEPNSt3__18optionalINS1_6vectorImNS1_9allocatorImEEEEEE;
+ _ZNK7android6Parcel16validateReadDataEm;
+ _ZNK7android6Parcel17getBlobAshmemSizeEv;
+ _ZNK7android6Parcel17getOpenAshmemSizeEv;
+ _ZNK7android6Parcel17readExceptionCodeEv;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__110unique_ptrINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS8_EEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE;
+ _ZNK7android6Parcel17readUtf8FromUtf16EPNSt3__18optionalINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEE;
+ _ZNK7android6Parcel18hasFileDescriptorsEv;
+ _ZNK7android6Parcel18readFileDescriptorEv;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS_8String16ENS1_14default_deleteIS4_EEEENS1_9allocatorIS7_EEEENS5_ISA_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__16vectorINS_8String16ENS1_9allocatorIS3_EEEE;
+ _ZNK7android6Parcel18readString16VectorEPNSt3__18optionalINS1_6vectorINS2_INS_8String16EEENS1_9allocatorIS5_EEEEEE;
+ _ZNK7android6Parcel18readString8InplaceEPm;
+ _ZNK7android6Parcel19readString16InplaceEPm;
+ _ZNK7android6Parcel21finishUnflattenBinderERKNS_2spINS_7IBinderEEEPS3_;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__110unique_ptrINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEENS1_14default_deleteIS9_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__16vectorINS_2spINS_7IBinderEEENS1_9allocatorIS5_EEEE;
+ _ZNK7android6Parcel22readStrongBinderVectorEPNSt3__18optionalINS1_6vectorINS_2spINS_7IBinderEEENS1_9allocatorIS6_EEEEEE;
+ _ZNK7android6Parcel24readCallingWorkSourceUidEv;
+ _ZNK7android6Parcel24readNullableStrongBinderEPNS_2spINS_7IBinderEEE;
+ _ZNK7android6Parcel24readParcelFileDescriptorEv;
+ _ZNK7android6Parcel24readUniqueFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__110unique_ptrINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS1_14default_deleteIS9_EEEENS7_ISC_EEEENSA_ISE_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__16vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEE;
+ _ZNK7android6Parcel29readUtf8VectorFromUtf16VectorEPNSt3__18optionalINS1_6vectorINS2_INS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS7_ISA_EEEEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__110unique_ptrINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEENS1_14default_deleteISA_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__16vectorINS_4base14unique_fd_implINS3_13DefaultCloserEEENS1_9allocatorIS6_EEEE;
+ _ZNK7android6Parcel30readUniqueFileDescriptorVectorEPNSt3__18optionalINS1_6vectorINS_4base14unique_fd_implINS4_13DefaultCloserEEENS1_9allocatorIS7_EEEEEE;
+ _ZNK7android6Parcel30readUniqueParcelFileDescriptorEPNS_4base14unique_fd_implINS1_13DefaultCloserEEE;
+ _ZNK7android6Parcel37updateWorkSourceRequestHeaderPositionEv;
+ _ZNK7android6Parcel4dataEv;
+ _ZNK7android6Parcel4readEPvm;
+ _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE;
+ _ZNK7android6Parcel5printERNS_10TextOutputEj;
+ _ZNK7android6Parcel7ipcDataEv;
+ _ZNK7android6Parcel8allowFdsEv;
+ _ZNK7android6Parcel8dataSizeEv;
+ _ZNK7android6Parcel8isForRpcEv;
+ _ZNK7android6Parcel8readBlobEmPNS0_12ReadableBlobE;
+ _ZNK7android6Parcel8readBoolEPb;
+ _ZNK7android6Parcel8readBoolEv;
+ _ZNK7android6Parcel8readByteEPa;
+ _ZNK7android6Parcel8readByteEv;
+ _ZNK7android6Parcel8readCharEPDs;
+ _ZNK7android6Parcel8readCharEv;
+ _ZNK7android6Parcel9dataAvailEv;
+ _ZNK7android6Parcel9readFloatEPf;
+ _ZNK7android6Parcel9readFloatEv;
+ _ZNK7android6Parcel9readInt32EPi;
+ _ZNK7android6Parcel9readInt32Ev;
+ _ZNK7android6Parcel9readInt64EPl;
+ _ZNK7android6Parcel9readInt64Ev;
+ _ZNK7android6VectorIiE10do_destroyEPvm;
+ _ZNK7android6VectorIiE12do_constructEPvm;
+ _ZNK7android6VectorIiE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIiE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIiE7do_copyEPvPKvm;
+ _ZNK7android6VectorIiE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE12do_constructEPvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_12ProcessState12handle_entryEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE12do_constructEPvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE10do_destroyEPvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE12do_constructEPvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_8BpBinder8ObituaryEE8do_splatEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE10do_destroyEPvm;
+ _ZNK7android6VectorINS_8String16EE12do_constructEPvm;
+ _ZNK7android6VectorINS_8String16EE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE7do_copyEPvPKvm;
+ _ZNK7android6VectorINS_8String16EE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7BBinderEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7BBinderEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7BBinderEE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBase12weakref_typeEE8do_splatEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE10do_destroyEPvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE12do_constructEPvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE15do_move_forwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE16do_move_backwardEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE7do_copyEPvPKvm;
+ _ZNK7android6VectorIPNS_7RefBaseEE8do_splatEPvPKvm;
+ _ZNK7android7BBinder10findObjectEPKv;
+ _ZNK7android7BBinder13isBinderAliveEv;
+ _ZNK7android7BBinder22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm18PackageChangeEvent13writeToParcelEPNS_6ParcelE;
+ _ZNK7android7content2pm21IPackageManagerNative22getInterfaceDescriptorEv;
+ _ZNK7android7content2pm22IPackageChangeObserver22getInterfaceDescriptorEv;
+ _ZNK7android7IBinder13checkSubclassEPKv;
+ _ZNK7android7IMemory11fastPointerERKNS_2spINS_7IBinderEEEl;
+ _ZNK7android7IMemory15unsecurePointerEv;
+ _ZNK7android7IMemory22getInterfaceDescriptorEv;
+ _ZNK7android7IMemory4sizeEv;
+ _ZNK7android7IMemory6offsetEv;
+ _ZNK7android7IMemory7pointerEv;
+ _ZNK7android8BpBinder10findObjectEPKv;
+ _ZNK7android8BpBinder10rpcAddressEv;
+ _ZNK7android8BpBinder10rpcSessionEv;
+ _ZNK7android8BpBinder11isRpcBinderEv;
+ _ZNK7android8BpBinder12binderHandleEv;
+ _ZNK7android8BpBinder13isBinderAliveEv;
+ _ZNK7android8BpBinder13ObjectManager4findEPKv;
+ _ZNK7android8BpBinder18isDescriptorCachedEv;
+ _ZNK7android8BpBinder22getInterfaceDescriptorEv;
+ _ZNK7android8BpMemory9getMemoryEPlPm;
+ _ZNKSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE3strEv;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNKSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__111__sift_downIRNS_4lessIN7android8RpcState10BinderNode9AsyncTodoEEENS_11__wrap_iterIPS5_EEEEvT0_SB_T_NS_15iterator_traitsISB_E15difference_typeESB_;
+ _ZNSt3__111unique_lockINS_5mutexEE6unlockEv;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE14__erase_uniqueIiEEmRKT_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE25__emplace_unique_key_argsIiJRKNS_21piecewise_construct_tENS_5tupleIJRKiEEENSI_IJEEEEEENS_4pairINS_15__hash_iteratorIPNS_11__hash_nodeIS2_PvEEEEbEERKT_DpOT0_;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6rehashEm;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE6removeENS_21__hash_const_iteratorIPNS_11__hash_nodeIS2_PvEEEE;
+ _ZNSt3__112__hash_tableINS_17__hash_value_typeIijEENS_22__unordered_map_hasherIiS2_NS_4hashIiEELb1EEENS_21__unordered_map_equalIiS2_NS_8equal_toIiEELb1EEENS_9allocatorIS2_EEE8__rehashEm;
+ _ZNSt3__113__tree_removeIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__copy_alignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEMN7android9RpcServerEFvONS7_2spIS8_EENS7_4base14unique_fd_implINSC_13DefaultCloserEEEEPS8_SA_SF_EEEEEPvSK_;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE7seekoffExNS_8ios_base7seekdirEj;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE8overflowEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9pbackfailEi;
+ _ZNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEE9underflowEv;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb0EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__116__copy_unalignedINS_6vectorIbNS_9allocatorIbEEEELb1EEENS_14__bit_iteratorIT_Lb0EXLi0EEEENS5_IS6_XT0_EXLi0EEEES8_S7_;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE16__on_zero_sharedEv;
+ _ZNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEE21__on_zero_shared_weakEv;
+ _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m;
+ _ZNSt3__127__tree_balance_after_insertIPNS_16__tree_node_baseIPvEEEEvT_S5_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE12__find_equalIS2_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISC_EERKT_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE25__emplace_unique_key_argsIS2_JRKS2_EEENS_4pairINS_15__tree_iteratorIS2_PNS_11__tree_nodeIS2_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeIN7android8String16ENS_4lessIS2_EENS_9allocatorIS2_EEE7destroyEPNS_11__tree_nodeIS2_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIiN7android2spINS2_10RpcSessionEEEEENS_19__map_value_compareIiS6_NS_4lessIiEELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JNS_4pairIKS3_S5_EEEEENSF_INS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android10RpcAddressENS2_8RpcState10BinderNodeEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_bEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EbEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_dEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EdEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_iEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16EiEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_lEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_lEEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ElEENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_SG_EElEERPNS_15__tree_end_nodeISI_EESJ_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISI_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__assign_multiINS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEEEvT_SL_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE15__emplace_multiIJRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSI_IJEEEEEENS_4pairINS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S5_EEEEENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEENS_21__tree_const_iteratorIS6_SO_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE4findIS3_EENS_15__tree_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE5eraseENS_21__tree_const_iteratorIS6_PNS_11__tree_nodeIS6_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS2_2os17PersistableBundleEEENS_19__map_value_compareIS3_S6_NS_4lessIS3_EELb1EEENS_9allocatorIS6_EEE7destroyEPNS_11__tree_nodeIS6_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE16__construct_nodeIJRKNS_4pairIKS3_S7_EEEEENS_10unique_ptrINS_11__tree_nodeIS8_PvEENS_22__tree_node_destructorINS5_ISO_EEEEEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIbNS_9allocatorIbEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIdNS_9allocatorIdEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIiNS_9allocatorIiEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIlNS_9allocatorIlEEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_SH_EElEERPNS_15__tree_end_nodeISJ_EESK_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISJ_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__assign_multiINS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEEEvT_SM_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE15__emplace_multiIJRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE16__construct_nodeIJRKNS_4pairIKS3_S7_EEEEENS_10unique_ptrINS_11__tree_nodeIS8_PvEENS_22__tree_node_destructorINS5_ISO_EEEEEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSJ_IJEEEEEENS_4pairINS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S7_EEEEENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEENS_21__tree_const_iteratorIS8_SP_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE4findIS3_EENS_15__tree_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE5eraseENS_21__tree_const_iteratorIS8_PNS_11__tree_nodeIS8_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ENS_6vectorIS3_NS_9allocatorIS3_EEEEEENS_19__map_value_compareIS3_S8_NS_4lessIS3_EELb1EEENS5_IS8_EEE7destroyEPNS_11__tree_nodeIS8_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_SE_EElEERPNS_15__tree_end_nodeISG_EESH_RKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE12__find_equalIS3_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISG_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__assign_multiINS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEEEvT_SJ_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE14__erase_uniqueIS3_EEmRKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE15__emplace_multiIJRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEDpOT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE25__emplace_unique_key_argsIS3_JRKNS_21piecewise_construct_tENS_5tupleIJRKS3_EEENSG_IJEEEEEENS_4pairINS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE30__emplace_hint_unique_key_argsIS3_JRKNS_4pairIKS3_S3_EEEEENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEENS_21__tree_const_iteratorIS4_SM_lEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE4findIS3_EENS_15__tree_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEERKT_;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE5eraseENS_21__tree_const_iteratorIS4_PNS_11__tree_nodeIS4_PvEElEE;
+ _ZNSt3__16__treeINS_12__value_typeIN7android8String16ES3_EENS_19__map_value_compareIS3_S4_NS_4lessIS3_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_11__thread_idENS_6threadEEENS_19__map_value_compareIS2_S4_NS_4lessIS2_EELb1EEENS_9allocatorIS4_EEE7destroyEPNS_11__tree_nodeIS4_PvEE;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE12__find_equalIS7_EERPNS_16__tree_node_baseIPvEERPNS_15__tree_end_nodeISO_EERKT_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE25__emplace_unique_key_argsIS7_JRKNS_21piecewise_construct_tENS_5tupleIJRKS7_EEENSO_IJEEEEEENS_4pairINS_15__tree_iteratorISD_PNS_11__tree_nodeISD_PvEElEEbEERKT_DpOT0_;
+ _ZNSt3__16__treeINS_12__value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7android6binder8internal25ClientCounterCallbackImpl7ServiceEEENS_19__map_value_compareIS7_SD_NS_4lessIS7_EELb1EEENS5_ISD_EEE7destroyEPNS_11__tree_nodeISD_PvEE;
+ _ZNSt3__16vectorIaNS_9allocatorIaEEE6insertIPKaEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIaNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPaEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb0ELm0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE18__construct_at_endINS_14__bit_iteratorIS3_Lb1ELm0EEEEENS_9enable_ifIXsr21__is_forward_iteratorIT_EE5valueEvE4typeES8_S8_;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE7reserveEm;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEE9push_backERKb;
+ _ZNSt3__16vectorIbNS_9allocatorIbEEEaSERKS3_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6assignIPdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIdNS_9allocatorIdEEE6insertIPKdEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIdNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPdEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE24__emplace_back_slow_pathIJDsEEEvDpOT_;
+ _ZNSt3__16vectorIDsNS_9allocatorIDsEEE7reserveEm;
+ _ZNSt3__16vectorIfNS_9allocatorIfEEE6insertIPKfEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIfNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPfEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIhNS_9allocatorIhEEE6insertIPKhEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIhNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPhEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6assignIPiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorIiNS_9allocatorIiEEE6insertIPKiEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIiNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPiEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIlNS_9allocatorIlEEE6assignIPlEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIlNS_15iterator_traitsIS7_E9referenceEEE5valueEvE4typeES7_S7_;
+ _ZNSt3__16vectorImNS_9allocatorImEEE6insertIPKmEENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleImNS_15iterator_traitsIS8_E9referenceEEE5valueENS_11__wrap_iterIPmEEE4typeENSC_IS6_EES8_S8_;
+ _ZNSt3__16vectorIN7android2os16ServiceDebugInfoENS_9allocatorIS3_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSession13RpcConnectionEEENS_9allocatorIS5_EEE21__push_back_slow_pathIRKS5_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_10RpcSessionEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE21__push_back_slow_pathIRKS4_EEvOT_;
+ _ZNSt3__16vectorIN7android2spINS1_7IBinderEEENS_9allocatorIS4_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android4base14unique_fd_implINS2_13DefaultCloserEEENS_9allocatorIS5_EEE8__appendEm;
+ _ZNSt3__16vectorIN7android8RpcState10BinderNode9AsyncTodoENS_9allocatorIS4_EEE21__push_back_slow_pathIS4_EEvOT_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE6assignIPS2_EENS_9enable_ifIXaasr21__is_forward_iteratorIT_EE5valuesr16is_constructibleIS2_NS_15iterator_traitsIS9_E9referenceEEE5valueEvE4typeES9_S9_;
+ _ZNSt3__16vectorIN7android8String16ENS_9allocatorIS2_EEE8__appendEm;
+ _ZNSt3__16vectorINS_10unique_ptrIN7android8String16ENS_14default_deleteIS3_EEEENS_9allocatorIS6_EEE8__appendEm;
+ _ZNSt3__16vectorINS_10unique_ptrINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_14default_deleteIS7_EEEENS5_ISA_EEE8__appendEm;
+ _ZNSt3__16vectorINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS4_IS6_EEE8__appendEm;
+ _ZNSt3__16vectorINS_8optionalIN7android8String16EEENS_9allocatorIS4_EEE8__appendEm;
+ _ZNSt3__16vectorINS_8optionalINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEENS5_IS8_EEE8__appendEm;
+ _ZTCN7android10AllocationE0_NS_10IInterfaceE;
+ _ZTCN7android10AllocationE0_NS_10MemoryBaseE;
+ _ZTCN7android10AllocationE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10AllocationE0_NS_7IMemoryE;
+ _ZTCN7android10AllocationE0_NS_8BnMemoryE;
+ _ZTCN7android10AllocationE8_NS_7BBinderE;
+ _ZTCN7android10AllocationE8_NS_7IBinderE;
+ _ZTCN7android10MemoryBaseE0_NS_10IInterfaceE;
+ _ZTCN7android10MemoryBaseE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android10MemoryBaseE0_NS_7IMemoryE;
+ _ZTCN7android10MemoryBaseE0_NS_8BnMemoryE;
+ _ZTCN7android10MemoryBaseE8_NS_7BBinderE;
+ _ZTCN7android10MemoryBaseE8_NS_7IBinderE;
+ _ZTCN7android10PoolThreadE0_NS_6ThreadE;
+ _ZTCN7android11IMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BnMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BnMemoryHeapE8_NS_7BBinderE;
+ _ZTCN7android12BnMemoryHeapE8_NS_7IBinderE;
+ _ZTCN7android12BpMemoryHeapE0_NS_10IInterfaceE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11BpInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android12BpMemoryHeapE0_NS_11IMemoryHeapE;
+ _ZTCN7android12BpMemoryHeapE8_NS_9BpRefBaseE;
+ _ZTCN7android14IShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_10IInterfaceE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_11BnInterfaceINS_11IMemoryHeapEEE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_11IMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE64_NS_12BnMemoryHeapE;
+ _ZTCN7android14MemoryHeapBaseE72_NS_7BBinderE;
+ _ZTCN7android14MemoryHeapBaseE72_NS_7IBinderE;
+ _ZTCN7android15BnShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BnShellCallbackE0_NS_11BnInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BnShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BnShellCallbackE8_NS_7BBinderE;
+ _ZTCN7android15BnShellCallbackE8_NS_7IBinderE;
+ _ZTCN7android15BpShellCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android15BpShellCallbackE0_NS_11BpInterfaceINS_14IShellCallbackEEE;
+ _ZTCN7android15BpShellCallbackE0_NS_14IShellCallbackE;
+ _ZTCN7android15BpShellCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android15IResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BnResultReceiverE0_NS_11BnInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BnResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BnResultReceiverE8_NS_7BBinderE;
+ _ZTCN7android16BnResultReceiverE8_NS_7IBinderE;
+ _ZTCN7android16BpResultReceiverE0_NS_10IInterfaceE;
+ _ZTCN7android16BpResultReceiverE0_NS_11BpInterfaceINS_15IResultReceiverEEE;
+ _ZTCN7android16BpResultReceiverE0_NS_15IResultReceiverE;
+ _ZTCN7android16BpResultReceiverE8_NS_9BpRefBaseE;
+ _ZTCN7android18ServiceManagerShimE0_NS_10IInterfaceE;
+ _ZTCN7android18ServiceManagerShimE0_NS_15IServiceManagerE;
+ _ZTCN7android2os15IClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os15IServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnClientCallbackE0_NS_11BnInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BnClientCallbackE8_NS_7BBinderE;
+ _ZTCN7android2os16BnClientCallbackE8_NS_7IBinderE;
+ _ZTCN7android2os16BnServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BnServiceManagerE0_NS_11BnInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BnServiceManagerE8_NS_7BBinderE;
+ _ZTCN7android2os16BnServiceManagerE8_NS_7IBinderE;
+ _ZTCN7android2os16BpClientCallbackE0_NS0_15IClientCallbackE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpClientCallbackE0_NS_11BpInterfaceINS0_15IClientCallbackEEE;
+ _ZTCN7android2os16BpClientCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android2os16BpServiceManagerE0_NS0_15IServiceManagerE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_10IInterfaceE;
+ _ZTCN7android2os16BpServiceManagerE0_NS_11BpInterfaceINS0_15IServiceManagerEEE;
+ _ZTCN7android2os16BpServiceManagerE8_NS_9BpRefBaseE;
+ _ZTCN7android2os16IServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BnServiceCallbackE0_NS_11BnInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BnServiceCallbackE8_NS_7BBinderE;
+ _ZTCN7android2os17BnServiceCallbackE8_NS_7IBinderE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS0_16IServiceCallbackE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_10IInterfaceE;
+ _ZTCN7android2os17BpServiceCallbackE0_NS_11BpInterfaceINS0_16IServiceCallbackEEE;
+ _ZTCN7android2os17BpServiceCallbackE8_NS_9BpRefBaseE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_10IInterfaceE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_11BnInterfaceINS_2os15IClientCallbackEEE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os15IClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE0_NS_2os16BnClientCallbackE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE8_NS_7BBinderE;
+ _ZTCN7android6binder8internal25ClientCounterCallbackImplE8_NS_7IBinderE;
+ _ZTCN7android7BBinderE0_NS_7IBinderE;
+ _ZTCN7android7content2pm21IPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS_11BnInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE8_NS_7BBinderE;
+ _ZTCN7android7content2pm22BnPackageManagerNativeE8_NS_7IBinderE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS_11BpInterfaceINS1_21IPackageManagerNativeEEE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE0_NS1_21IPackageManagerNativeE;
+ _ZTCN7android7content2pm22BpPackageManagerNativeE8_NS_9BpRefBaseE;
+ _ZTCN7android7content2pm22IPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS_11BnInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE8_NS_7BBinderE;
+ _ZTCN7android7content2pm23BnPackageChangeObserverE8_NS_7IBinderE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_10IInterfaceE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS_11BpInterfaceINS1_22IPackageChangeObserverEEE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE0_NS1_22IPackageChangeObserverE;
+ _ZTCN7android7content2pm23BpPackageChangeObserverE8_NS_9BpRefBaseE;
+ _ZTCN7android7IMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BnMemoryE0_NS_11BnInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BnMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BnMemoryE8_NS_7BBinderE;
+ _ZTCN7android8BnMemoryE8_NS_7IBinderE;
+ _ZTCN7android8BpBinderE0_NS_7IBinderE;
+ _ZTCN7android8BpMemoryE0_NS_10IInterfaceE;
+ _ZTCN7android8BpMemoryE0_NS_11BpInterfaceINS_7IMemoryEEE;
+ _ZTCN7android8BpMemoryE0_NS_7IMemoryE;
+ _ZTCN7android8BpMemoryE8_NS_9BpRefBaseE;
+ _ZTCN7android9HeapCacheE0_NS_7IBinder14DeathRecipientE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE;
+ _ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE;
+ _ZThn8_N7android10AllocationD0Ev;
+ _ZThn8_N7android10AllocationD1Ev;
+ _ZThn8_N7android10MemoryBaseD0Ev;
+ _ZThn8_N7android10MemoryBaseD1Ev;
+ _ZThn8_N7android12BnMemoryHeap10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android12BnMemoryHeapD0Ev;
+ _ZThn8_N7android12BnMemoryHeapD1Ev;
+ _ZThn8_N7android12BpMemoryHeapD0Ev;
+ _ZThn8_N7android12BpMemoryHeapD1Ev;
+ _ZThn8_N7android15BnShellCallback10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android16BnResultReceiver10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android2os16BnClientCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android2os16BnServiceManager10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android2os17BnServiceCallback10onTransactEjRKNS_6ParcelEPS2_j;
+ _ZThn8_N7android7content2pm22BnPackageManagerNative10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn8_N7android7content2pm23BnPackageChangeObserver10onTransactEjRKNS_6ParcelEPS3_j;
+ _ZThn8_N7android8BnMemory10onTransactEjRKNS_6ParcelEPS1_j;
+ _ZThn8_N7android8BnMemoryD0Ev;
+ _ZThn8_N7android8BnMemoryD1Ev;
+ _ZThn8_N7android8BpMemoryD0Ev;
+ _ZThn8_N7android8BpMemoryD1Ev;
+ _ZTTN7android10AllocationE;
+ _ZTTN7android10IInterfaceE;
+ _ZTTN7android10MemoryBaseE;
+ _ZTTN7android10PoolThreadE;
+ _ZTTN7android10RpcSessionE;
+ _ZTTN7android11IMemoryHeapE;
+ _ZTTN7android12BnMemoryHeapE;
+ _ZTTN7android12BpMemoryHeapE;
+ _ZTTN7android12ProcessStateE;
+ _ZTTN7android14IShellCallbackE;
+ _ZTTN7android14MemoryHeapBaseE;
+ _ZTTN7android15BnShellCallbackE;
+ _ZTTN7android15BpShellCallbackE;
+ _ZTTN7android15IResultReceiverE;
+ _ZTTN7android15IServiceManagerE;
+ _ZTTN7android16BnResultReceiverE;
+ _ZTTN7android16BpResultReceiverE;
+ _ZTTN7android18ServiceManagerShimE;
+ _ZTTN7android2os15IClientCallbackE;
+ _ZTTN7android2os15IServiceManagerE;
+ _ZTTN7android2os16BnClientCallbackE;
+ _ZTTN7android2os16BnServiceManagerE;
+ _ZTTN7android2os16BpClientCallbackE;
+ _ZTTN7android2os16BpServiceManagerE;
+ _ZTTN7android2os16IServiceCallbackE;
+ _ZTTN7android2os17BnServiceCallbackE;
+ _ZTTN7android2os17BpServiceCallbackE;
+ _ZTTN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTTN7android7BBinderE;
+ _ZTTN7android7content2pm21IPackageManagerNativeE;
+ _ZTTN7android7content2pm22BnPackageManagerNativeE;
+ _ZTTN7android7content2pm22BpPackageManagerNativeE;
+ _ZTTN7android7content2pm22IPackageChangeObserverE;
+ _ZTTN7android7content2pm23BnPackageChangeObserverE;
+ _ZTTN7android7content2pm23BpPackageChangeObserverE;
+ _ZTTN7android7IBinderE;
+ _ZTTN7android7IMemoryE;
+ _ZTTN7android8BnMemoryE;
+ _ZTTN7android8BpBinderE;
+ _ZTTN7android8BpMemoryE;
+ _ZTTN7android9BpRefBaseE;
+ _ZTTN7android9HeapCacheE;
+ _ZTTN7android9RpcServerE;
+ _ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTv0_n24_N7android10AllocationD0Ev;
+ _ZTv0_n24_N7android10AllocationD1Ev;
+ _ZTv0_n24_N7android10IInterfaceD0Ev;
+ _ZTv0_n24_N7android10IInterfaceD1Ev;
+ _ZTv0_n24_N7android10MemoryBaseD0Ev;
+ _ZTv0_n24_N7android10MemoryBaseD1Ev;
+ _ZTv0_n24_N7android10RpcSessionD0Ev;
+ _ZTv0_n24_N7android10RpcSessionD1Ev;
+ _ZTv0_n24_N7android11IMemoryHeapD0Ev;
+ _ZTv0_n24_N7android11IMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12BnMemoryHeapD0Ev;
+ _ZTv0_n24_N7android12BnMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12BpMemoryHeapD0Ev;
+ _ZTv0_n24_N7android12BpMemoryHeapD1Ev;
+ _ZTv0_n24_N7android12ProcessStateD0Ev;
+ _ZTv0_n24_N7android12ProcessStateD1Ev;
+ _ZTv0_n24_N7android14IShellCallbackD0Ev;
+ _ZTv0_n24_N7android14IShellCallbackD1Ev;
+ _ZTv0_n24_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n24_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n24_N7android15IResultReceiverD0Ev;
+ _ZTv0_n24_N7android15IResultReceiverD1Ev;
+ _ZTv0_n24_N7android15IServiceManagerD0Ev;
+ _ZTv0_n24_N7android15IServiceManagerD1Ev;
+ _ZTv0_n24_N7android2os15IClientCallbackD0Ev;
+ _ZTv0_n24_N7android2os15IClientCallbackD1Ev;
+ _ZTv0_n24_N7android2os15IServiceManagerD0Ev;
+ _ZTv0_n24_N7android2os15IServiceManagerD1Ev;
+ _ZTv0_n24_N7android2os16IServiceCallbackD0Ev;
+ _ZTv0_n24_N7android2os16IServiceCallbackD1Ev;
+ _ZTv0_n24_N7android7BBinderD0Ev;
+ _ZTv0_n24_N7android7BBinderD1Ev;
+ _ZTv0_n24_N7android7content2pm21IPackageManagerNativeD0Ev;
+ _ZTv0_n24_N7android7content2pm21IPackageManagerNativeD1Ev;
+ _ZTv0_n24_N7android7content2pm22IPackageChangeObserverD0Ev;
+ _ZTv0_n24_N7android7content2pm22IPackageChangeObserverD1Ev;
+ _ZTv0_n24_N7android7IBinderD0Ev;
+ _ZTv0_n24_N7android7IBinderD1Ev;
+ _ZTv0_n24_N7android7IMemoryD0Ev;
+ _ZTv0_n24_N7android7IMemoryD1Ev;
+ _ZTv0_n24_N7android8BnMemoryD0Ev;
+ _ZTv0_n24_N7android8BnMemoryD1Ev;
+ _ZTv0_n24_N7android8BpBinderD0Ev;
+ _ZTv0_n24_N7android8BpBinderD1Ev;
+ _ZTv0_n24_N7android8BpMemoryD0Ev;
+ _ZTv0_n24_N7android8BpMemoryD1Ev;
+ _ZTv0_n24_N7android9BpRefBaseD0Ev;
+ _ZTv0_n24_N7android9BpRefBaseD1Ev;
+ _ZTv0_n24_N7android9HeapCacheD0Ev;
+ _ZTv0_n24_N7android9HeapCacheD1Ev;
+ _ZTv0_n24_N7android9RpcServerD0Ev;
+ _ZTv0_n24_N7android9RpcServerD1Ev;
+ _ZTv0_n32_N7android14MemoryHeapBaseD0Ev;
+ _ZTv0_n32_N7android14MemoryHeapBaseD1Ev;
+ _ZTv0_n32_N7android8BpBinder10onFirstRefEv;
+ _ZTv0_n32_N7android9BpRefBase10onFirstRefEv;
+ _ZTv0_n40_N7android8BpBinder15onLastStrongRefEPKv;
+ _ZTv0_n40_N7android9BpRefBase15onLastStrongRefEPKv;
+ _ZTv0_n48_N7android8BpBinder20onIncStrongAttemptedEjPKv;
+ _ZTv0_n48_N7android9BpRefBase20onIncStrongAttemptedEjPKv;
+ _ZTv0_n56_NK7android14MemoryHeapBase9getHeapIDEv;
+ _ZTv0_n64_NK7android14MemoryHeapBase7getBaseEv;
+ _ZTv0_n72_NK7android14MemoryHeapBase7getSizeEv;
+ _ZTv0_n80_NK7android14MemoryHeapBase8getFlagsEv;
+ _ZTv0_n88_NK7android14MemoryHeapBase9getOffsetEv;
+ _ZTVN7android10AllocationE;
+ _ZTVN7android10IInterfaceE;
+ _ZTVN7android10MemoryBaseE;
+ _ZTVN7android10PoolThreadE;
+ _ZTVN7android10RpcSession13RpcConnectionE;
+ _ZTVN7android10RpcSessionE;
+ _ZTVN7android10TextOutputE;
+ _ZTVN7android11IMemoryHeapE;
+ _ZTVN7android12BnMemoryHeapE;
+ _ZTVN7android12BpMemoryHeapE;
+ _ZTVN7android12FdTextOutputE;
+ _ZTVN7android12MemoryDealerE;
+ _ZTVN7android12ProcessStateE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tINS_2wpINS_7IBinderEEENS_9HeapCache11heap_info_tEEEEE;
+ _ZTVN7android12SortedVectorINS_16key_value_pair_tIPKvNS_8BpBinder13ObjectManager7entry_tEEEEE;
+ _ZTVN7android13LogTextOutputE;
+ _ZTVN7android14IShellCallbackE;
+ _ZTVN7android14MemoryHeapBaseE;
+ _ZTVN7android15BnShellCallbackE;
+ _ZTVN7android15BpShellCallbackE;
+ _ZTVN7android15IResultReceiverE;
+ _ZTVN7android15IServiceManagerE;
+ _ZTVN7android16BnResultReceiverE;
+ _ZTVN7android16BpResultReceiverE;
+ _ZTVN7android17InetSocketAddressE;
+ _ZTVN7android17UnixSocketAddressE;
+ _ZTVN7android18BufferedTextOutput11BufferStateE;
+ _ZTVN7android18BufferedTextOutputE;
+ _ZTVN7android18ServiceManagerShimE;
+ _ZTVN7android18VsockSocketAddressE;
+ _ZTVN7android2os15IClientCallbackE;
+ _ZTVN7android2os15IServiceManagerE;
+ _ZTVN7android2os16BnClientCallbackE;
+ _ZTVN7android2os16BnServiceManagerE;
+ _ZTVN7android2os16BpClientCallbackE;
+ _ZTVN7android2os16BpServiceManagerE;
+ _ZTVN7android2os16IServiceCallbackE;
+ _ZTVN7android2os16ParcelableHolderE;
+ _ZTVN7android2os16ServiceDebugInfoE;
+ _ZTVN7android2os17BnServiceCallbackE;
+ _ZTVN7android2os17BpServiceCallbackE;
+ _ZTVN7android2os17PersistableBundleE;
+ _ZTVN7android2os20ParcelFileDescriptorE;
+ _ZTVN7android6binder8internal25ClientCounterCallbackImplE;
+ _ZTVN7android6VectorIiEE;
+ _ZTVN7android6VectorINS_12ProcessState12handle_entryEEE;
+ _ZTVN7android6VectorINS_2spINS_18BufferedTextOutput11BufferStateEEEEE;
+ _ZTVN7android6VectorINS_8BpBinder8ObituaryEEE;
+ _ZTVN7android6VectorINS_8String16EEE;
+ _ZTVN7android6VectorIPNS_7BBinderEEE;
+ _ZTVN7android6VectorIPNS_7RefBase12weakref_typeEEE;
+ _ZTVN7android6VectorIPNS_7RefBaseEEE;
+ _ZTVN7android7BBinderE;
+ _ZTVN7android7content2pm18PackageChangeEventE;
+ _ZTVN7android7content2pm21IPackageManagerNativeE;
+ _ZTVN7android7content2pm22BnPackageManagerNativeE;
+ _ZTVN7android7content2pm22BpPackageManagerNativeE;
+ _ZTVN7android7content2pm22IPackageChangeObserverE;
+ _ZTVN7android7content2pm23BnPackageChangeObserverE;
+ _ZTVN7android7content2pm23BpPackageChangeObserverE;
+ _ZTVN7android7IBinderE;
+ _ZTVN7android7IMemoryE;
+ _ZTVN7android8BnMemoryE;
+ _ZTVN7android8BpBinderE;
+ _ZTVN7android8BpMemoryE;
+ _ZTVN7android9BpRefBaseE;
+ _ZTVN7android9HeapCacheE;
+ _ZTVN7android9RpcServerE;
+ _ZTvn8_n32_N7android14MemoryHeapBaseD0Ev;
+ _ZTvn8_n32_N7android14MemoryHeapBaseD1Ev;
+ _ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android14RpcWireAddressENS_9allocatorIS2_EEEE;
+ _ZTVNSt3__120__shared_ptr_emplaceIN7android6binder8internal21ClientCounterCallbackENS_9allocatorIS4_EEEE;
+ local:
+ *;
+};
diff --git a/libs/binder/libbinder.map b/libs/binder/libbinder.map
deleted file mode 100644
index 9ca14bc..0000000
--- a/libs/binder/libbinder.map
+++ /dev/null
@@ -1,5 +0,0 @@
-# b/190148312: Populate with correct list of ABI symbols
-LIBBINDER {
- global:
- *;
-};
diff --git a/libs/binder/rust/src/native.rs b/libs/binder/rust/src/native.rs
index 3b3fd08..3920129 100644
--- a/libs/binder/rust/src/native.rs
+++ b/libs/binder/rust/src/native.rs
@@ -24,7 +24,6 @@
use std::ffi::{c_void, CString};
use std::mem::ManuallyDrop;
use std::ops::Deref;
-use std::ptr;
/// Rust wrapper around Binder remotable objects.
///
@@ -273,7 +272,7 @@
/// Must be called with a valid pointer to a `T` object. After this call,
/// the pointer will be invalid and should not be dereferenced.
unsafe extern "C" fn on_destroy(object: *mut c_void) {
- ptr::drop_in_place(object as *mut T)
+ Box::from_raw(object as *mut T);
}
/// Called whenever a new, local `AIBinder` object is needed of a specific
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
index 68514cf..364c939 100644
--- a/libs/gui/BLASTBufferQueue.cpp
+++ b/libs/gui/BLASTBufferQueue.cpp
@@ -29,9 +29,10 @@
#include <gui/IProducerListener.h>
#include <gui/Surface.h>
#include <utils/Singleton.h>
-
#include <utils/Trace.h>
+#include <private/gui/ComposerService.h>
+
#include <chrono>
using namespace std::chrono_literals;
@@ -150,6 +151,7 @@
1, false);
static int32_t id = 0;
auto consumerName = mName + "(BLAST Consumer)" + std::to_string(id);
+ mPendingBufferTrace = "PendingBuffer - " + mName + "BLAST#" + std::to_string(id);
id++;
mBufferItemConsumer->setName(String8(consumerName.c_str()));
mBufferItemConsumer->setFrameAvailableListener(this);
@@ -158,13 +160,15 @@
mBufferItemConsumer->setDefaultBufferFormat(convertBufferFormat(format));
mBufferItemConsumer->setBlastBufferQueue(this);
+ ComposerService::getComposerService()->getMaxAcquiredBufferCount(&mMaxAcquiredBuffers);
+ mBufferItemConsumer->setMaxAcquiredBufferCount(mMaxAcquiredBuffers);
+
mTransformHint = mSurfaceControl->getTransformHint();
mBufferItemConsumer->setTransformHint(mTransformHint);
SurfaceComposerClient::Transaction()
.setFlags(surface, layer_state_t::eEnableBackpressure,
layer_state_t::eEnableBackpressure)
.apply();
-
mNumAcquired = 0;
mNumFrameAvailable = 0;
}
@@ -260,15 +264,18 @@
mTransformHint = stat.transformHint;
mBufferItemConsumer->setTransformHint(mTransformHint);
- mBufferItemConsumer
- ->updateFrameTimestamps(stat.frameEventStats.frameNumber,
- stat.frameEventStats.refreshStartTime,
- stat.frameEventStats.gpuCompositionDoneFence,
- stat.presentFence, stat.previousReleaseFence,
- stat.frameEventStats.compositorTiming,
- stat.latchTime,
- stat.frameEventStats.dequeueReadyTime);
-
+ // Update frametime stamps if the frame was latched and presented, indicated by a
+ // valid latch time.
+ if (stat.latchTime > 0) {
+ mBufferItemConsumer
+ ->updateFrameTimestamps(stat.frameEventStats.frameNumber,
+ stat.frameEventStats.refreshStartTime,
+ stat.frameEventStats.gpuCompositionDoneFence,
+ stat.presentFence, stat.previousReleaseFence,
+ stat.frameEventStats.compositorTiming,
+ stat.latchTime,
+ stat.frameEventStats.dequeueReadyTime);
+ }
currFrameNumber = stat.frameEventStats.frameNumber;
if (mTransactionCompleteCallback &&
@@ -307,18 +314,20 @@
// So we pass in a weak pointer to the BBQ and if it still alive, then we release the buffer.
// Otherwise, this is a no-op.
static void releaseBufferCallbackThunk(wp<BLASTBufferQueue> context, uint64_t graphicBufferId,
- const sp<Fence>& releaseFence, uint32_t transformHint) {
+ const sp<Fence>& releaseFence, uint32_t transformHint,
+ uint32_t currentMaxAcquiredBufferCount) {
sp<BLASTBufferQueue> blastBufferQueue = context.promote();
ALOGV("releaseBufferCallbackThunk graphicBufferId=%" PRIu64 " blastBufferQueue=%s",
graphicBufferId, blastBufferQueue ? "alive" : "dead");
if (blastBufferQueue) {
- blastBufferQueue->releaseBufferCallback(graphicBufferId, releaseFence, transformHint);
+ blastBufferQueue->releaseBufferCallback(graphicBufferId, releaseFence, transformHint,
+ currentMaxAcquiredBufferCount);
}
}
void BLASTBufferQueue::releaseBufferCallback(uint64_t graphicBufferId,
- const sp<Fence>& releaseFence,
- uint32_t transformHint) {
+ const sp<Fence>& releaseFence, uint32_t transformHint,
+ uint32_t currentMaxAcquiredBufferCount) {
ATRACE_CALL();
std::unique_lock _lock{mMutex};
BQA_LOGV("releaseBufferCallback graphicBufferId=%" PRIu64, graphicBufferId);
@@ -329,16 +338,38 @@
mBufferItemConsumer->setTransformHint(mTransformHint);
}
- auto it = mSubmitted.find(graphicBufferId);
- if (it == mSubmitted.end()) {
- BQA_LOGE("ERROR: releaseBufferCallback without corresponding submitted buffer %" PRIu64,
- graphicBufferId);
- return;
+ // Calculate how many buffers we need to hold before we release them back
+ // to the buffer queue. This will prevent higher latency when we are running
+ // on a lower refresh rate than the max supported. We only do that for EGL
+ // clients as others don't care about latency
+ const bool isEGL = [&] {
+ const auto it = mSubmitted.find(graphicBufferId);
+ return it != mSubmitted.end() && it->second.mApi == NATIVE_WINDOW_API_EGL;
+ }();
+
+ const auto numPendingBuffersToHold =
+ isEGL ? std::max(0u, mMaxAcquiredBuffers - currentMaxAcquiredBufferCount) : 0;
+ mPendingRelease.emplace_back(ReleasedBuffer{graphicBufferId, releaseFence});
+
+ // Release all buffers that are beyond the ones that we need to hold
+ while (mPendingRelease.size() > numPendingBuffersToHold) {
+ const auto releaseBuffer = mPendingRelease.front();
+ mPendingRelease.pop_front();
+ auto it = mSubmitted.find(releaseBuffer.bufferId);
+ if (it == mSubmitted.end()) {
+ BQA_LOGE("ERROR: releaseBufferCallback without corresponding submitted buffer %" PRIu64,
+ graphicBufferId);
+ return;
+ }
+
+ mBufferItemConsumer->releaseBuffer(it->second, releaseBuffer.releaseFence);
+ mSubmitted.erase(it);
}
- mBufferItemConsumer->releaseBuffer(it->second, releaseFence);
- mSubmitted.erase(it);
+ ATRACE_INT("PendingRelease", mPendingRelease.size());
+
mNumAcquired--;
+ ATRACE_INT(mPendingBufferTrace.c_str(), mNumFrameAvailable + mNumAcquired);
processNextBufferLocked(false /* useNextTransaction */);
mCallbackCV.notify_all();
}
@@ -419,7 +450,8 @@
auto releaseBufferCallback =
std::bind(releaseBufferCallbackThunk, wp<BLASTBufferQueue>(this) /* callbackContext */,
- std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
+ std::placeholders::_1, std::placeholders::_2, std::placeholders::_3,
+ std::placeholders::_4);
t->setBuffer(mSurfaceControl, buffer, releaseBufferCallback);
t->setDataspace(mSurfaceControl, static_cast<ui::Dataspace>(bufferItem.mDataSpace));
t->setHdrMetadata(mSurfaceControl, bufferItem.mHdrMetadata);
@@ -506,6 +538,7 @@
}
// add to shadow queue
mNumFrameAvailable++;
+ ATRACE_INT(mPendingBufferTrace.c_str(), mNumFrameAvailable + mNumAcquired);
BQA_LOGV("onFrameAvailable framenumber=%" PRIu64 " nextTransactionSet=%s", item.mFrameNumber,
toString(nextTransactionSet));
@@ -572,7 +605,7 @@
// includeExtraAcquire is true to include this buffer to the count. Since this depends on the state
// of the buffer, the next acquire may return with NO_BUFFER_AVAILABLE.
bool BLASTBufferQueue::maxBuffersAcquired(bool includeExtraAcquire) const {
- int maxAcquiredBuffers = MAX_ACQUIRED_BUFFERS + (includeExtraAcquire ? 2 : 1);
+ int maxAcquiredBuffers = mMaxAcquiredBuffers + (includeExtraAcquire ? 2 : 1);
return mNumAcquired == maxAcquiredBuffers;
}
diff --git a/libs/gui/ISurfaceComposer.cpp b/libs/gui/ISurfaceComposer.cpp
index 71e18a9..0d7795e 100644
--- a/libs/gui/ISurfaceComposer.cpp
+++ b/libs/gui/ISurfaceComposer.cpp
@@ -1215,16 +1215,17 @@
return reply.readInt32();
}
- status_t getExtraBufferCount(int* extraBuffers) const override {
+ status_t getMaxAcquiredBufferCount(int* buffers) const override {
Parcel data, reply;
data.writeInterfaceToken(ISurfaceComposer::getInterfaceDescriptor());
- status_t err = remote()->transact(BnSurfaceComposer::GET_EXTRA_BUFFER_COUNT, data, &reply);
+ status_t err =
+ remote()->transact(BnSurfaceComposer::GET_MAX_ACQUIRED_BUFFER_COUNT, data, &reply);
if (err != NO_ERROR) {
- ALOGE("getExtraBufferCount failed to read data: %s (%d)", strerror(-err), err);
+ ALOGE("getMaxAcquiredBufferCount failed to read data: %s (%d)", strerror(-err), err);
return err;
}
- return reply.readInt32(extraBuffers);
+ return reply.readInt32(buffers);
}
};
@@ -2069,14 +2070,14 @@
SAFE_PARCEL(reply->writeInt32, priority);
return NO_ERROR;
}
- case GET_EXTRA_BUFFER_COUNT: {
+ case GET_MAX_ACQUIRED_BUFFER_COUNT: {
CHECK_INTERFACE(ISurfaceComposer, data, reply);
- int extraBuffers = 0;
- int err = getExtraBufferCount(&extraBuffers);
+ int buffers = 0;
+ int err = getMaxAcquiredBufferCount(&buffers);
if (err != NO_ERROR) {
return err;
}
- SAFE_PARCEL(reply->writeInt32, extraBuffers);
+ SAFE_PARCEL(reply->writeInt32, buffers);
return NO_ERROR;
}
case OVERRIDE_HDR_TYPES: {
diff --git a/libs/gui/ITransactionCompletedListener.cpp b/libs/gui/ITransactionCompletedListener.cpp
index 63d07ba..17499ec 100644
--- a/libs/gui/ITransactionCompletedListener.cpp
+++ b/libs/gui/ITransactionCompletedListener.cpp
@@ -119,6 +119,7 @@
SAFE_PARCEL(output->writeBool, false);
}
SAFE_PARCEL(output->writeUint32, transformHint);
+ SAFE_PARCEL(output->writeUint32, currentMaxAcquiredBufferCount);
SAFE_PARCEL(output->writeParcelable, eventStats);
SAFE_PARCEL(output->writeInt32, static_cast<int32_t>(jankData.size()));
for (const auto& data : jankData) {
@@ -138,6 +139,7 @@
SAFE_PARCEL(input->read, *previousReleaseFence);
}
SAFE_PARCEL(input->readUint32, &transformHint);
+ SAFE_PARCEL(input->readUint32, ¤tMaxAcquiredBufferCount);
SAFE_PARCEL(input->readParcelable, &eventStats);
int32_t jankData_size = 0;
@@ -251,11 +253,13 @@
stats);
}
- void onReleaseBuffer(uint64_t graphicBufferId, sp<Fence> releaseFence,
- uint32_t transformHint) override {
+ void onReleaseBuffer(uint64_t graphicBufferId, sp<Fence> releaseFence, uint32_t transformHint,
+ uint32_t currentMaxAcquiredBufferCount) override {
callRemoteAsync<decltype(
&ITransactionCompletedListener::onReleaseBuffer)>(Tag::ON_RELEASE_BUFFER,
- graphicBufferId, releaseFence, transformHint);
+ graphicBufferId, releaseFence,
+ transformHint,
+ currentMaxAcquiredBufferCount);
}
};
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index e117d11..821ec16 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -1501,9 +1501,6 @@
case NATIVE_WINDOW_SET_FRAME_TIMELINE_INFO:
res = dispatchSetFrameTimelineInfo(args);
break;
- case NATIVE_WINDOW_GET_EXTRA_BUFFER_COUNT:
- res = dispatchGetExtraBufferCount(args);
- break;
default:
res = NAME_NOT_FOUND;
break;
@@ -1853,14 +1850,6 @@
return setFrameTimelineInfo({frameTimelineVsyncId, inputEventId});
}
-int Surface::dispatchGetExtraBufferCount(va_list args) {
- ATRACE_CALL();
- auto extraBuffers = static_cast<int*>(va_arg(args, int*));
-
- ALOGV("Surface::dispatchGetExtraBufferCount");
- return getExtraBufferCount(extraBuffers);
-}
-
bool Surface::transformToDisplayInverse() const {
return (mTransform & NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY) ==
NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY;
@@ -2632,8 +2621,4 @@
return composerService()->setFrameTimelineInfo(mGraphicBufferProducer, frameTimelineInfo);
}
-status_t Surface::getExtraBufferCount(int* extraBuffers) const {
- return composerService()->getExtraBufferCount(extraBuffers);
-}
-
}; // namespace android
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp
index 9610437..c69435d 100644
--- a/libs/gui/SurfaceComposerClient.cpp
+++ b/libs/gui/SurfaceComposerClient.cpp
@@ -182,12 +182,12 @@
void TransactionCompletedListener::addJankListener(const sp<JankDataListener>& listener,
sp<SurfaceControl> surfaceControl) {
- std::lock_guard<std::mutex> lock(mMutex);
+ std::scoped_lock<std::recursive_mutex> lock(mJankListenerMutex);
mJankListeners.insert({surfaceControl->getHandle(), listener});
}
void TransactionCompletedListener::removeJankListener(const sp<JankDataListener>& listener) {
- std::lock_guard<std::mutex> lock(mMutex);
+ std::scoped_lock<std::recursive_mutex> lock(mJankListenerMutex);
for (auto it = mJankListeners.begin(); it != mJankListeners.end();) {
if (it->second == listener) {
it = mJankListeners.erase(it);
@@ -210,13 +210,13 @@
void TransactionCompletedListener::addSurfaceStatsListener(void* context, void* cookie,
sp<SurfaceControl> surfaceControl, SurfaceStatsCallback listener) {
- std::lock_guard<std::mutex> lock(mMutex);
+ std::scoped_lock<std::recursive_mutex> lock(mSurfaceStatsListenerMutex);
mSurfaceStatsListeners.insert({surfaceControl->getHandle(),
SurfaceStatsCallbackEntry(context, cookie, listener)});
}
void TransactionCompletedListener::removeSurfaceStatsListener(void* context, void* cookie) {
- std::lock_guard<std::mutex> lock(mMutex);
+ std::scoped_lock<std::recursive_mutex> lock(mSurfaceStatsListenerMutex);
for (auto it = mSurfaceStatsListeners.begin(); it != mSurfaceStatsListeners.end();) {
auto [itContext, itCookie, itListener] = it->second;
if (itContext == context && itCookie == cookie) {
@@ -242,8 +242,6 @@
void TransactionCompletedListener::onTransactionCompleted(ListenerStats listenerStats) {
std::unordered_map<CallbackId, CallbackTranslation, CallbackIdHash> callbacksMap;
- std::multimap<sp<IBinder>, sp<JankDataListener>> jankListenersMap;
- std::multimap<sp<IBinder>, SurfaceStatsCallbackEntry> surfaceListeners;
{
std::lock_guard<std::mutex> lock(mMutex);
@@ -259,8 +257,6 @@
* sp<SurfaceControl> that could possibly exist for the callbacks.
*/
callbacksMap = mCallbacks;
- jankListenersMap = mJankListeners;
- surfaceListeners = mSurfaceStatsListeners;
for (const auto& transactionStats : listenerStats.transactionStats) {
for (auto& callbackId : transactionStats.callbackIds) {
mCallbacks.erase(callbackId);
@@ -332,7 +328,8 @@
surfaceStats.previousReleaseFence
? surfaceStats.previousReleaseFence
: Fence::NO_FENCE,
- surfaceStats.transformHint);
+ surfaceStats.transformHint,
+ surfaceStats.currentMaxAcquiredBufferCount);
}
}
}
@@ -341,15 +338,26 @@
surfaceControlStats);
}
for (const auto& surfaceStats : transactionStats.surfaceStats) {
- auto listenerRange = surfaceListeners.equal_range(surfaceStats.surfaceControl);
- for (auto it = listenerRange.first; it != listenerRange.second; it++) {
- auto entry = it->second;
- entry.callback(entry.context, transactionStats.latchTime,
- transactionStats.presentFence, surfaceStats);
+ {
+ // Acquire surface stats listener lock such that we guarantee that after calling
+ // unregister, there won't be any further callback.
+ std::scoped_lock<std::recursive_mutex> lock(mSurfaceStatsListenerMutex);
+ auto listenerRange = mSurfaceStatsListeners.equal_range(
+ surfaceStats.surfaceControl);
+ for (auto it = listenerRange.first; it != listenerRange.second; it++) {
+ auto entry = it->second;
+ entry.callback(entry.context, transactionStats.latchTime,
+ transactionStats.presentFence, surfaceStats);
+ }
}
if (surfaceStats.jankData.empty()) continue;
- auto jankRange = jankListenersMap.equal_range(surfaceStats.surfaceControl);
+
+ // Acquire jank listener lock such that we guarantee that after calling unregister,
+ // there won't be any further callback.
+ std::scoped_lock<std::recursive_mutex> lock(mJankListenerMutex);
+ auto copy = mJankListeners;
+ auto jankRange = copy.equal_range(surfaceStats.surfaceControl);
for (auto it = jankRange.first; it != jankRange.second; it++) {
it->second->onJankDataAvailable(surfaceStats.jankData);
}
@@ -357,9 +365,9 @@
}
}
-void TransactionCompletedListener::onReleaseBuffer(uint64_t graphicBufferId,
- sp<Fence> releaseFence,
- uint32_t transformHint) {
+void TransactionCompletedListener::onReleaseBuffer(uint64_t graphicBufferId, sp<Fence> releaseFence,
+ uint32_t transformHint,
+ uint32_t currentMaxAcquiredBufferCount) {
ReleaseBufferCallback callback;
{
std::scoped_lock<std::mutex> lock(mMutex);
@@ -369,7 +377,7 @@
ALOGE("Could not call release buffer callback, buffer not found %" PRIu64, graphicBufferId);
return;
}
- callback(graphicBufferId, releaseFence, transformHint);
+ callback(graphicBufferId, releaseFence, transformHint, currentMaxAcquiredBufferCount);
}
ReleaseBufferCallback TransactionCompletedListener::popReleaseBufferCallbackLocked(
diff --git a/libs/gui/SurfaceControl.cpp b/libs/gui/SurfaceControl.cpp
index d7c07b9..6529a4e 100644
--- a/libs/gui/SurfaceControl.cpp
+++ b/libs/gui/SurfaceControl.cpp
@@ -139,7 +139,7 @@
ISurfaceComposerClient::eOpaque);
mBbqChild = mClient->createSurface(String8("bbq-wrapper"), 0, 0, mFormat,
flags, mHandle, {}, &ignore);
- mBbq = new BLASTBufferQueue("bbq-adapter", mBbqChild, mWidth, mHeight, mFormat);
+ mBbq = sp<BLASTBufferQueue>::make("bbq-adapter", mBbqChild, mWidth, mHeight, mFormat);
// This surface is always consumed by SurfaceFlinger, so the
// producerControlledByApp value doesn't matter; using false.
diff --git a/libs/gui/include/gui/BLASTBufferQueue.h b/libs/gui/include/gui/BLASTBufferQueue.h
index 3ab1ee1..cb0e65e 100644
--- a/libs/gui/include/gui/BLASTBufferQueue.h
+++ b/libs/gui/include/gui/BLASTBufferQueue.h
@@ -90,7 +90,7 @@
void transactionCallback(nsecs_t latchTime, const sp<Fence>& presentFence,
const std::vector<SurfaceControlStats>& stats);
void releaseBufferCallback(uint64_t graphicBufferId, const sp<Fence>& releaseFence,
- uint32_t transformHint);
+ uint32_t transformHint, uint32_t currentMaxAcquiredBufferCount);
void setNextTransaction(SurfaceComposerClient::Transaction *t);
void mergeWithNextTransaction(SurfaceComposerClient::Transaction* t, uint64_t frameNumber);
void setTransactionCompleteCallback(uint64_t frameNumber,
@@ -125,6 +125,7 @@
static PixelFormat convertBufferFormat(PixelFormat& format);
std::string mName;
+ std::string mPendingBufferTrace;
sp<SurfaceControl> mSurfaceControl;
std::mutex mMutex;
@@ -132,7 +133,7 @@
// BufferQueue internally allows 1 more than
// the max to be acquired
- static const int MAX_ACQUIRED_BUFFERS = 1;
+ int32_t mMaxAcquiredBuffers = 1;
int32_t mNumFrameAvailable GUARDED_BY(mMutex);
int32_t mNumAcquired GUARDED_BY(mMutex);
@@ -141,6 +142,15 @@
// buffer or the buffer has been presented and a new buffer is ready to be presented.
std::unordered_map<uint64_t /* bufferId */, BufferItem> mSubmitted GUARDED_BY(mMutex);
+ // Keep a queue of the released buffers instead of immediately releasing
+ // the buffers back to the buffer queue. This would be controlled by SF
+ // setting the max acquired buffer count.
+ struct ReleasedBuffer {
+ uint64_t bufferId;
+ sp<Fence> releaseFence;
+ };
+ std::deque<ReleasedBuffer> mPendingRelease GUARDED_BY(mMutex);
+
ui::Size mSize GUARDED_BY(mMutex);
ui::Size mRequestedSize GUARDED_BY(mMutex);
int32_t mFormat GUARDED_BY(mMutex);
diff --git a/libs/gui/include/gui/FrameTimestamps.h b/libs/gui/include/gui/FrameTimestamps.h
index 0750080..dd3de58 100644
--- a/libs/gui/include/gui/FrameTimestamps.h
+++ b/libs/gui/include/gui/FrameTimestamps.h
@@ -131,6 +131,7 @@
// Public for testing.
static nsecs_t snapToNextTick(
nsecs_t timestamp, nsecs_t tickPhase, nsecs_t tickInterval);
+ nsecs_t getReportedCompositeDeadline() const { return mCompositorTiming.deadline; };
nsecs_t getNextCompositeDeadline(const nsecs_t now) const;
nsecs_t getCompositeInterval() const { return mCompositorTiming.interval; }
diff --git a/libs/gui/include/gui/ISurfaceComposer.h b/libs/gui/include/gui/ISurfaceComposer.h
index 439d90a..2a3f6a4 100644
--- a/libs/gui/include/gui/ISurfaceComposer.h
+++ b/libs/gui/include/gui/ISurfaceComposer.h
@@ -537,22 +537,21 @@
virtual int getGPUContextPriority() = 0;
/**
- * Gets the extra buffers a client would need to allocate if it passes
- * the Choreographer#getVsyncId with its buffers.
- *
- * When Choreographer#getVsyncId is passed to SurfaceFlinger, it is used
- * as an indication of when to latch the buffer. SurfaceFlinger will make
- * sure that it will give the app at least the time configured as the
- * 'appDuration' before trying to latch the buffer.
+ * Gets the number of buffers SurfaceFlinger would need acquire. This number
+ * would be propagated to the client via MIN_UNDEQUEUED_BUFFERS so that the
+ * client could allocate enough buffers to match SF expectations of the
+ * pipeline depth. SurfaceFlinger will make sure that it will give the app at
+ * least the time configured as the 'appDuration' before trying to latch
+ * the buffer.
*
* The total buffers needed for a given configuration is basically the
* numbers of vsyncs a single buffer is used across the stack. For the default
* configuration a buffer is held ~1 vsync by the app, ~1 vsync by SurfaceFlinger
* and 1 vsync by the display. The extra buffers are calculated as the
- * number of additional buffers on top of the 3 buffers already allocated
- * by the app.
+ * number of additional buffers on top of the 2 buffers already present
+ * in MIN_UNDEQUEUED_BUFFERS.
*/
- virtual status_t getExtraBufferCount(int* extraBuffers) const = 0;
+ virtual status_t getMaxAcquiredBufferCount(int* buffers) const = 0;
};
// ----------------------------------------------------------------------------
@@ -615,7 +614,7 @@
SET_FRAME_TIMELINE_INFO,
ADD_TRANSACTION_TRACE_LISTENER,
GET_GPU_CONTEXT_PRIORITY,
- GET_EXTRA_BUFFER_COUNT,
+ GET_MAX_ACQUIRED_BUFFER_COUNT,
GET_DYNAMIC_DISPLAY_INFO,
ADD_FPS_LISTENER,
REMOVE_FPS_LISTENER,
diff --git a/libs/gui/include/gui/ITransactionCompletedListener.h b/libs/gui/include/gui/ITransactionCompletedListener.h
index 3bfeef1..d286c34 100644
--- a/libs/gui/include/gui/ITransactionCompletedListener.h
+++ b/libs/gui/include/gui/ITransactionCompletedListener.h
@@ -101,12 +101,14 @@
SurfaceStats() = default;
SurfaceStats(const sp<IBinder>& sc, nsecs_t time, const sp<Fence>& prevReleaseFence,
- uint32_t hint, FrameEventHistoryStats frameEventStats,
- std::vector<JankData> jankData, uint64_t previousBufferId)
+ uint32_t hint, uint32_t currentMaxAcquiredBuffersCount,
+ FrameEventHistoryStats frameEventStats, std::vector<JankData> jankData,
+ uint64_t previousBufferId)
: surfaceControl(sc),
acquireTime(time),
previousReleaseFence(prevReleaseFence),
transformHint(hint),
+ currentMaxAcquiredBufferCount(currentMaxAcquiredBuffersCount),
eventStats(frameEventStats),
jankData(std::move(jankData)),
previousBufferId(previousBufferId) {}
@@ -115,6 +117,7 @@
nsecs_t acquireTime = -1;
sp<Fence> previousReleaseFence;
uint32_t transformHint = 0;
+ uint32_t currentMaxAcquiredBufferCount = 0;
FrameEventHistoryStats eventStats;
std::vector<JankData> jankData;
uint64_t previousBufferId;
@@ -159,7 +162,8 @@
virtual void onTransactionCompleted(ListenerStats stats) = 0;
virtual void onReleaseBuffer(uint64_t graphicBufferId, sp<Fence> releaseFence,
- uint32_t transformHint) = 0;
+ uint32_t transformHint,
+ uint32_t currentMaxAcquiredBufferCount) = 0;
};
class BnTransactionCompletedListener : public SafeBnInterface<ITransactionCompletedListener> {
diff --git a/libs/gui/include/gui/Surface.h b/libs/gui/include/gui/Surface.h
index 48885eb..7e4143b 100644
--- a/libs/gui/include/gui/Surface.h
+++ b/libs/gui/include/gui/Surface.h
@@ -190,7 +190,6 @@
virtual status_t setFrameRate(float frameRate, int8_t compatibility,
int8_t changeFrameRateStrategy);
virtual status_t setFrameTimelineInfo(const FrameTimelineInfo& info);
- virtual status_t getExtraBufferCount(int* extraBuffers) const;
protected:
virtual ~Surface();
@@ -278,7 +277,6 @@
int dispatchGetLastQueuedBuffer(va_list args);
int dispatchGetLastQueuedBuffer2(va_list args);
int dispatchSetFrameTimelineInfo(va_list args);
- int dispatchGetExtraBufferCount(va_list args);
protected:
virtual int dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd);
diff --git a/libs/gui/include/gui/SurfaceComposerClient.h b/libs/gui/include/gui/SurfaceComposerClient.h
index 62a782f..fa91bfa 100644
--- a/libs/gui/include/gui/SurfaceComposerClient.h
+++ b/libs/gui/include/gui/SurfaceComposerClient.h
@@ -83,7 +83,7 @@
const std::vector<SurfaceControlStats>& /*stats*/)>;
using ReleaseBufferCallback =
std::function<void(uint64_t /* graphicsBufferId */, const sp<Fence>& /*releaseFence*/,
- uint32_t transformHint)>;
+ uint32_t transformHint, uint32_t currentMaxAcquiredBufferCount)>;
using SurfaceStatsCallback =
std::function<void(void* /*context*/, nsecs_t /*latchTime*/,
@@ -652,6 +652,12 @@
std::mutex mMutex;
+ // This lock needs to be recursive so we can unregister a callback from within that callback.
+ std::recursive_mutex mJankListenerMutex;
+
+ // This lock needs to be recursive so we can unregister a callback from within that callback.
+ std::recursive_mutex mSurfaceStatsListenerMutex;
+
bool mListening GUARDED_BY(mMutex) = false;
int64_t mCallbackIdCounter GUARDED_BY(mMutex) = 1;
@@ -674,11 +680,16 @@
std::unordered_map<CallbackId, CallbackTranslation, CallbackIdHash> mCallbacks
GUARDED_BY(mMutex);
- std::multimap<sp<IBinder>, sp<JankDataListener>> mJankListeners GUARDED_BY(mMutex);
+
+ // This is protected by mJankListenerMutex, but GUARDED_BY isn't supported for
+ // std::recursive_mutex
+ std::multimap<sp<IBinder>, sp<JankDataListener>> mJankListeners;
std::unordered_map<uint64_t /* graphicsBufferId */, ReleaseBufferCallback>
mReleaseBufferCallbacks GUARDED_BY(mMutex);
- std::multimap<sp<IBinder>, SurfaceStatsCallbackEntry>
- mSurfaceStatsListeners GUARDED_BY(mMutex);
+
+ // This is protected by mSurfaceStatsListenerMutex, but GUARDED_BY isn't supported for
+ // std::recursive_mutex
+ std::multimap<sp<IBinder>, SurfaceStatsCallbackEntry> mSurfaceStatsListeners;
public:
static sp<TransactionCompletedListener> getInstance();
@@ -718,7 +729,7 @@
// BnTransactionCompletedListener overrides
void onTransactionCompleted(ListenerStats stats) override;
void onReleaseBuffer(uint64_t /* graphicsBufferId */, sp<Fence> releaseFence,
- uint32_t transformHint) override;
+ uint32_t transformHint, uint32_t currentMaxAcquiredBufferCount) override;
private:
ReleaseBufferCallback popReleaseBufferCallbackLocked(uint64_t /* graphicsBufferId */);
diff --git a/libs/gui/tests/BLASTBufferQueue_test.cpp b/libs/gui/tests/BLASTBufferQueue_test.cpp
index 5a5da97..6ff67aa 100644
--- a/libs/gui/tests/BLASTBufferQueue_test.cpp
+++ b/libs/gui/tests/BLASTBufferQueue_test.cpp
@@ -394,7 +394,11 @@
setUpProducer(adapter, igbProducer);
std::vector<std::pair<int, sp<Fence>>> allocated;
- for (int i = 0; i < 3; i++) {
+ int minUndequeuedBuffers = 0;
+ ASSERT_EQ(OK, igbProducer->query(NATIVE_WINDOW_MIN_UNDEQUEUED_BUFFERS, &minUndequeuedBuffers));
+ const auto bufferCount = minUndequeuedBuffers + 2;
+
+ for (int i = 0; i < bufferCount; i++) {
int slot;
sp<Fence> fence;
sp<GraphicBuffer> buf;
@@ -944,21 +948,22 @@
class BLASTFrameEventHistoryTest : public BLASTBufferQueueTest {
public:
void setUpAndQueueBuffer(const sp<IGraphicBufferProducer>& igbProducer,
- nsecs_t* requestedPresentTime, nsecs_t* postedTime,
+ nsecs_t* outRequestedPresentTime, nsecs_t* postedTime,
IGraphicBufferProducer::QueueBufferOutput* qbOutput,
- bool getFrameTimestamps, nsecs_t requestedPresentTimeDelay = 0) {
+ bool getFrameTimestamps, nsecs_t requestedPresentTime = systemTime()) {
int slot;
sp<Fence> fence;
sp<GraphicBuffer> buf;
auto ret = igbProducer->dequeueBuffer(&slot, &fence, mDisplayWidth, mDisplayHeight,
PIXEL_FORMAT_RGBA_8888, GRALLOC_USAGE_SW_WRITE_OFTEN,
nullptr, nullptr);
- ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION, ret);
- ASSERT_EQ(OK, igbProducer->requestBuffer(slot, &buf));
+ if (IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION == ret) {
+ ASSERT_EQ(OK, igbProducer->requestBuffer(slot, &buf));
+ }
- nsecs_t requestedTime = systemTime() + requestedPresentTimeDelay;
- if (requestedPresentTime) *requestedPresentTime = requestedTime;
- IGraphicBufferProducer::QueueBufferInput input(requestedTime, false, HAL_DATASPACE_UNKNOWN,
+ *outRequestedPresentTime = requestedPresentTime;
+ IGraphicBufferProducer::QueueBufferInput input(requestedPresentTime, false,
+ HAL_DATASPACE_UNKNOWN,
Rect(mDisplayWidth, mDisplayHeight),
NATIVE_WINDOW_SCALING_MODE_FREEZE, 0,
Fence::NO_FENCE, /*sticky*/ 0,
@@ -1030,9 +1035,11 @@
IGraphicBufferProducer::QueueBufferOutput qbOutput;
nsecs_t requestedPresentTimeA = 0;
nsecs_t postedTimeA = 0;
- nsecs_t presentTimeDelay = std::chrono::nanoseconds(500ms).count();
+ // Present the frame sometime in the future so we can add two frames to the queue so the older
+ // one will be dropped.
+ nsecs_t presentTime = systemTime() + std::chrono::nanoseconds(500ms).count();
setUpAndQueueBuffer(igbProducer, &requestedPresentTimeA, &postedTimeA, &qbOutput, true,
- presentTimeDelay);
+ presentTime);
history.applyDelta(qbOutput.frameTimestamps);
FrameEvents* events = nullptr;
@@ -1045,7 +1052,10 @@
// queue another buffer so the first can be dropped
nsecs_t requestedPresentTimeB = 0;
nsecs_t postedTimeB = 0;
- setUpAndQueueBuffer(igbProducer, &requestedPresentTimeB, &postedTimeB, &qbOutput, true);
+ adapter.setTransactionCompleteCallback(2);
+ presentTime = systemTime() + std::chrono::nanoseconds(1ms).count();
+ setUpAndQueueBuffer(igbProducer, &requestedPresentTimeB, &postedTimeB, &qbOutput, true,
+ presentTime);
history.applyDelta(qbOutput.frameTimestamps);
events = history.getFrame(1);
ASSERT_NE(nullptr, events);
@@ -1055,20 +1065,75 @@
ASSERT_EQ(requestedPresentTimeA, events->requestedPresentTime);
ASSERT_GE(events->postedTime, postedTimeA);
- // a valid latchtime should not be set
+ // a valid latchtime and pre and post composition info should not be set for the dropped frame
ASSERT_FALSE(events->hasLatchInfo());
ASSERT_FALSE(events->hasDequeueReadyInfo());
+ ASSERT_FALSE(events->hasGpuCompositionDoneInfo());
+ ASSERT_FALSE(events->hasDisplayPresentInfo());
+ ASSERT_FALSE(events->hasReleaseInfo());
- ASSERT_NE(nullptr, events->gpuCompositionDoneFence);
- ASSERT_NE(nullptr, events->displayPresentFence);
- ASSERT_NE(nullptr, events->releaseFence);
+ // wait for the last transaction to be completed.
+ adapter.waitForCallback(2);
- // we should also have gotten the initial values for the next frame
+ // queue another buffer so we query for frame event deltas
+ nsecs_t requestedPresentTimeC = 0;
+ nsecs_t postedTimeC = 0;
+ setUpAndQueueBuffer(igbProducer, &requestedPresentTimeC, &postedTimeC, &qbOutput, true);
+ history.applyDelta(qbOutput.frameTimestamps);
+
+ // frame number, requestedPresentTime, and postTime should not have changed
+ ASSERT_EQ(1, events->frameNumber);
+ ASSERT_EQ(requestedPresentTimeA, events->requestedPresentTime);
+ ASSERT_GE(events->postedTime, postedTimeA);
+
+ // a valid latchtime and pre and post composition info should not be set for the dropped frame
+ ASSERT_FALSE(events->hasLatchInfo());
+ ASSERT_FALSE(events->hasDequeueReadyInfo());
+ ASSERT_FALSE(events->hasGpuCompositionDoneInfo());
+ ASSERT_FALSE(events->hasDisplayPresentInfo());
+ ASSERT_FALSE(events->hasReleaseInfo());
+
+ // we should also have gotten values for the presented frame
events = history.getFrame(2);
ASSERT_NE(nullptr, events);
ASSERT_EQ(2, events->frameNumber);
ASSERT_EQ(requestedPresentTimeB, events->requestedPresentTime);
ASSERT_GE(events->postedTime, postedTimeB);
+ ASSERT_GE(events->latchTime, postedTimeB);
+ ASSERT_GE(events->dequeueReadyTime, events->latchTime);
+ ASSERT_NE(nullptr, events->gpuCompositionDoneFence);
+ ASSERT_NE(nullptr, events->displayPresentFence);
+ ASSERT_NE(nullptr, events->releaseFence);
+
+ // wait for any callbacks that have not been received
+ adapter.waitForCallbacks();
+}
+
+TEST_F(BLASTFrameEventHistoryTest, FrameEventHistory_CompositorTimings) {
+ BLASTBufferQueueHelper adapter(mSurfaceControl, mDisplayWidth, mDisplayHeight);
+ sp<IGraphicBufferProducer> igbProducer;
+ ProducerFrameEventHistory history;
+ setUpProducer(adapter, igbProducer);
+
+ IGraphicBufferProducer::QueueBufferOutput qbOutput;
+ nsecs_t requestedPresentTimeA = 0;
+ nsecs_t postedTimeA = 0;
+ adapter.setTransactionCompleteCallback(1);
+ setUpAndQueueBuffer(igbProducer, &requestedPresentTimeA, &postedTimeA, &qbOutput, true);
+ history.applyDelta(qbOutput.frameTimestamps);
+ adapter.waitForCallback(1);
+
+ // queue another buffer so we query for frame event deltas
+ nsecs_t requestedPresentTimeB = 0;
+ nsecs_t postedTimeB = 0;
+ setUpAndQueueBuffer(igbProducer, &requestedPresentTimeB, &postedTimeB, &qbOutput, true);
+ history.applyDelta(qbOutput.frameTimestamps);
+
+ // check for a valid compositor deadline
+ ASSERT_NE(0, history.getReportedCompositeDeadline());
+
+ // wait for any callbacks that have not been received
+ adapter.waitForCallbacks();
}
} // namespace android
diff --git a/libs/gui/tests/Surface_test.cpp b/libs/gui/tests/Surface_test.cpp
index b8d34c3..59b0c04 100644
--- a/libs/gui/tests/Surface_test.cpp
+++ b/libs/gui/tests/Surface_test.cpp
@@ -902,7 +902,7 @@
int getGPUContextPriority() override { return 0; };
- status_t getExtraBufferCount(int* /*extraBuffers*/) const override { return NO_ERROR; }
+ status_t getMaxAcquiredBufferCount(int* /*buffers*/) const override { return NO_ERROR; }
protected:
IBinder* onAsBinder() override { return nullptr; }
diff --git a/libs/input/android/os/IInputConstants.aidl b/libs/input/android/os/IInputConstants.aidl
index 4b90844..3038d9d 100644
--- a/libs/input/android/os/IInputConstants.aidl
+++ b/libs/input/android/os/IInputConstants.aidl
@@ -40,4 +40,18 @@
* available.
*/
const int INVALID_INPUT_EVENT_ID = 0;
+
+ /**
+ * The injected event was originally sent from InputDispatcher. Most likely, the journey of the
+ * event looked as follows:
+ * InputDispatcherPolicyInterface::filterInputEvent -> InputFilter.java::onInputEvent ->
+ * InputFilter.java::sendInputEvent -> InputDispatcher::injectInputEvent, without being modified
+ * along the way.
+ */
+ const int POLICY_FLAG_INPUTFILTER_TRUSTED = 0x10000;
+
+ /**
+ * The input event was injected from accessibility
+ */
+ const int POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY = 0x20000;
}
diff --git a/libs/nativewindow/include/system/window.h b/libs/nativewindow/include/system/window.h
index 935eded..7f01135 100644
--- a/libs/nativewindow/include/system/window.h
+++ b/libs/nativewindow/include/system/window.h
@@ -256,8 +256,7 @@
NATIVE_WINDOW_GET_LAST_QUEUED_BUFFER = 46, /* private */
NATIVE_WINDOW_SET_QUERY_INTERCEPTOR = 47, /* private */
NATIVE_WINDOW_SET_FRAME_TIMELINE_INFO = 48, /* private */
- NATIVE_WINDOW_GET_EXTRA_BUFFER_COUNT = 49, /* private */
- NATIVE_WINDOW_GET_LAST_QUEUED_BUFFER2 = 50, /* private */
+ NATIVE_WINDOW_GET_LAST_QUEUED_BUFFER2 = 49, /* private */
// clang-format on
};
@@ -1032,11 +1031,6 @@
frameTimelineVsyncId, inputEventId);
}
-static inline int native_window_get_extra_buffer_count(
- struct ANativeWindow* window, int* extraBuffers) {
- return window->perform(window, NATIVE_WINDOW_GET_EXTRA_BUFFER_COUNT, extraBuffers);
-}
-
// ------------------------------------------------------------------------------------------------
// Candidates for APEX visibility
// These functions are planned to be made stable for APEX modules, but have not
diff --git a/libs/renderengine/gl/GLESRenderEngine.cpp b/libs/renderengine/gl/GLESRenderEngine.cpp
index 18eb7b5..b5dd8ac 100644
--- a/libs/renderengine/gl/GLESRenderEngine.cpp
+++ b/libs/renderengine/gl/GLESRenderEngine.cpp
@@ -970,37 +970,17 @@
glBindFramebuffer(GL_FRAMEBUFFER, 0);
}
-bool GLESRenderEngine::cleanupPostRender(CleanupMode mode) {
+bool GLESRenderEngine::canSkipPostRenderCleanup() const {
+ return mPriorResourcesCleaned ||
+ (mLastDrawFence != nullptr && mLastDrawFence->getStatus() != Fence::Status::Signaled);
+}
+
+void GLESRenderEngine::cleanupPostRender() {
ATRACE_CALL();
- if (mPriorResourcesCleaned ||
- (mLastDrawFence != nullptr && mLastDrawFence->getStatus() != Fence::Status::Signaled)) {
+ if (canSkipPostRenderCleanup()) {
// If we don't have a prior frame needing cleanup, then don't do anything.
- return false;
- }
-
- // This is a bit of a band-aid fix for FrameCaptureProcessor, as we should
- // not need to keep memory around if we don't need to do so.
- if (mode == CleanupMode::CLEAN_ALL) {
- // TODO: SurfaceFlinger memory utilization may benefit from resetting
- // texture bindings as well. Assess if it does and there's no performance regression
- // when rebinding the same image data to the same texture, and if so then its mode
- // behavior can be tweaked.
- if (mPlaceholderImage != EGL_NO_IMAGE_KHR) {
- for (auto [textureName, bufferId] : mTextureView) {
- if (bufferId && mPlaceholderImage != EGL_NO_IMAGE_KHR) {
- glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureName);
- glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES,
- static_cast<GLeglImageOES>(mPlaceholderImage));
- mTextureView[textureName] = std::nullopt;
- checkErrors();
- }
- }
- }
- {
- std::lock_guard<std::mutex> lock(mRenderingMutex);
- mImageCache.clear();
- }
+ return;
}
// Bind the texture to placeholder so that backing image data can be freed.
@@ -1011,7 +991,6 @@
// we could no-op repeated calls of this method instead.
mLastDrawFence = nullptr;
mPriorResourcesCleaned = true;
- return true;
}
void GLESRenderEngine::cleanFramebufferCache() {
diff --git a/libs/renderengine/gl/GLESRenderEngine.h b/libs/renderengine/gl/GLESRenderEngine.h
index 1ff3674..915dba3 100644
--- a/libs/renderengine/gl/GLESRenderEngine.h
+++ b/libs/renderengine/gl/GLESRenderEngine.h
@@ -68,7 +68,7 @@
const std::shared_ptr<ExternalTexture>& buffer,
const bool useFramebufferCache, base::unique_fd&& bufferFence,
base::unique_fd* drawFence) override;
- bool cleanupPostRender(CleanupMode mode) override;
+ void cleanupPostRender() override;
int getContextPriority() override;
bool supportsBackgroundBlur() override { return mBlurFilter != nullptr; }
void onPrimaryDisplaySizeChanged(ui::Size size) override {}
@@ -106,6 +106,7 @@
void mapExternalTextureBuffer(const sp<GraphicBuffer>& buffer, bool isRenderable)
EXCLUDES(mRenderingMutex);
void unmapExternalTextureBuffer(const sp<GraphicBuffer>& buffer) EXCLUDES(mRenderingMutex);
+ bool canSkipPostRenderCleanup() const override;
private:
friend class BindNativeBufferAsFramebuffer;
diff --git a/libs/renderengine/include/renderengine/RenderEngine.h b/libs/renderengine/include/renderengine/RenderEngine.h
index 1da9adc..ac0affb 100644
--- a/libs/renderengine/include/renderengine/RenderEngine.h
+++ b/libs/renderengine/include/renderengine/RenderEngine.h
@@ -114,25 +114,6 @@
virtual void genTextures(size_t count, uint32_t* names) = 0;
virtual void deleteTextures(size_t count, uint32_t const* names) = 0;
- enum class CleanupMode {
- CLEAN_OUTPUT_RESOURCES,
- CLEAN_ALL,
- };
- // Clean-up method that should be called on the main thread after the
- // drawFence returned by drawLayers fires. This method will free up
- // resources used by the most recently drawn frame. If the frame is still
- // being drawn, then this call is silently ignored.
- //
- // If mode is CLEAN_OUTPUT_RESOURCES, then only resources related to the
- // output framebuffer are cleaned up, including the sibling texture.
- //
- // If mode is CLEAN_ALL, then we also cleanup resources related to any input
- // buffers.
- //
- // Returns true if resources were cleaned up, and false if we didn't need to
- // do any work.
- virtual bool cleanupPostRender(CleanupMode mode = CleanupMode::CLEAN_OUTPUT_RESOURCES) = 0;
-
// queries that are required to be thread safe
virtual size_t getMaxTextureSize() const = 0;
virtual size_t getMaxViewportDims() const = 0;
@@ -186,6 +167,13 @@
const std::shared_ptr<ExternalTexture>& buffer,
const bool useFramebufferCache, base::unique_fd&& bufferFence,
base::unique_fd* drawFence) = 0;
+
+ // Clean-up method that should be called on the main thread after the
+ // drawFence returned by drawLayers fires. This method will free up
+ // resources used by the most recently drawn frame. If the frame is still
+ // being drawn, then the implementation is free to silently ignore this call.
+ virtual void cleanupPostRender() = 0;
+
virtual void cleanFramebufferCache() = 0;
// Returns the priority this context was actually created with. Note: this may not be
// the same as specified at context creation time, due to implementation limits on the
@@ -234,8 +222,15 @@
// that's conflict serializable, i.e. unmap a buffer should never occur before binding the
// buffer if the caller called mapExternalTextureBuffer before calling unmap.
virtual void unmapExternalTextureBuffer(const sp<GraphicBuffer>& buffer) = 0;
+
+ // A thread safe query to determine if any post rendering cleanup is necessary. Returning true
+ // is a signal that calling the postRenderCleanup method would be a no-op and that callers can
+ // avoid any thread synchronization that may be required by directly calling postRenderCleanup.
+ virtual bool canSkipPostRenderCleanup() const = 0;
+
friend class ExternalTexture;
friend class threaded::RenderEngineThreaded;
+ friend class RenderEngineTest_cleanupPostRender_cleansUpOnce_Test;
const RenderEngineType mRenderEngineType;
};
diff --git a/libs/renderengine/include/renderengine/mock/RenderEngine.h b/libs/renderengine/include/renderengine/mock/RenderEngine.h
index baa1305..0175af3 100644
--- a/libs/renderengine/include/renderengine/mock/RenderEngine.h
+++ b/libs/renderengine/include/renderengine/mock/RenderEngine.h
@@ -45,7 +45,8 @@
MOCK_CONST_METHOD0(isProtected, bool());
MOCK_CONST_METHOD0(supportsProtectedContent, bool());
MOCK_METHOD1(useProtectedContext, bool(bool));
- MOCK_METHOD1(cleanupPostRender, bool(CleanupMode mode));
+ MOCK_METHOD0(cleanupPostRender, void());
+ MOCK_CONST_METHOD0(canSkipPostRenderCleanup, bool());
MOCK_METHOD6(drawLayers,
status_t(const DisplaySettings&, const std::vector<const LayerSettings*>&,
const std::shared_ptr<ExternalTexture>&, const bool, base::unique_fd&&,
diff --git a/libs/renderengine/skia/AutoBackendTexture.cpp b/libs/renderengine/skia/AutoBackendTexture.cpp
index 8356005..5c122d4 100644
--- a/libs/renderengine/skia/AutoBackendTexture.cpp
+++ b/libs/renderengine/skia/AutoBackendTexture.cpp
@@ -29,8 +29,8 @@
namespace skia {
AutoBackendTexture::AutoBackendTexture(GrDirectContext* context, AHardwareBuffer* buffer,
- bool isOutputBuffer)
- : mIsOutputBuffer(isOutputBuffer) {
+ bool isOutputBuffer, CleanupManager& cleanupMgr)
+ : mCleanupMgr(cleanupMgr), mIsOutputBuffer(isOutputBuffer) {
ATRACE_CALL();
AHardwareBuffer_Desc desc;
AHardwareBuffer_describe(buffer, &desc);
@@ -49,6 +49,13 @@
this, desc.width, desc.height, createProtectedImage, isOutputBuffer, desc.format);
}
+AutoBackendTexture::~AutoBackendTexture() {
+ if (mBackendTexture.isValid()) {
+ mDeleteProc(mImageCtx);
+ mBackendTexture = {};
+ }
+}
+
void AutoBackendTexture::unref(bool releaseLocalResources) {
if (releaseLocalResources) {
mSurface = nullptr;
@@ -57,11 +64,7 @@
mUsageCount--;
if (mUsageCount <= 0) {
- if (mBackendTexture.isValid()) {
- mDeleteProc(mImageCtx);
- mBackendTexture = {};
- }
- delete this;
+ mCleanupMgr.add(this);
}
}
diff --git a/libs/renderengine/skia/AutoBackendTexture.h b/libs/renderengine/skia/AutoBackendTexture.h
index a9e8430..00b901b 100644
--- a/libs/renderengine/skia/AutoBackendTexture.h
+++ b/libs/renderengine/skia/AutoBackendTexture.h
@@ -25,6 +25,9 @@
#include "android-base/macros.h"
+#include <mutex>
+#include <vector>
+
namespace android {
namespace renderengine {
namespace skia {
@@ -36,13 +39,50 @@
*/
class AutoBackendTexture {
public:
+ // Manager class that is responsible for the immediate or deferred cleanup
+ // of AutoBackendTextures. Clients of AutoBackendTexture are responsible for
+ // ensuring that access to this class is thread safe. Clients also control when
+ // the resources are reclaimed by setting the manager into deferred mode.
+ class CleanupManager {
+ public:
+ CleanupManager() = default;
+ void add(AutoBackendTexture* abt) {
+ if (mDeferCleanup) {
+ mCleanupList.push_back(abt);
+ } else {
+ delete abt;
+ }
+ }
+
+ void setDeferredStatus(bool enabled) { mDeferCleanup = enabled; }
+
+ bool isEmpty() const { return mCleanupList.empty(); }
+
+ // If any AutoBackedTextures were added while in deferred mode this method
+ // will ensure they are deleted before returning. It must only be called
+ // on the thread where the GPU context that created the AutoBackedTexture
+ // is active.
+ void cleanup() {
+ for (auto abt : mCleanupList) {
+ delete abt;
+ }
+ mCleanupList.clear();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(CleanupManager);
+ bool mDeferCleanup = false;
+ std::vector<AutoBackendTexture*> mCleanupList;
+ };
+
// Local reference that supports RAII-style management of an AutoBackendTexture
// AutoBackendTexture by itself can't be managed in a similar fashion because
// of shared ownership with Skia objects, so we wrap it here instead.
class LocalRef {
public:
- LocalRef(GrDirectContext* context, AHardwareBuffer* buffer, bool isOutputBuffer) {
- mTexture = new AutoBackendTexture(context, buffer, isOutputBuffer);
+ LocalRef(GrDirectContext* context, AHardwareBuffer* buffer, bool isOutputBuffer,
+ CleanupManager& cleanupMgr) {
+ mTexture = new AutoBackendTexture(context, buffer, isOutputBuffer, cleanupMgr);
mTexture->ref();
}
@@ -75,10 +115,11 @@
private:
// Creates a GrBackendTexture whose contents come from the provided buffer.
- AutoBackendTexture(GrDirectContext* context, AHardwareBuffer* buffer, bool isOutputBuffer);
+ AutoBackendTexture(GrDirectContext* context, AHardwareBuffer* buffer, bool isOutputBuffer,
+ CleanupManager& cleanupMgr);
// The only way to invoke dtor is with unref, when mUsageCount is 0.
- ~AutoBackendTexture() {}
+ ~AutoBackendTexture();
void ref() { mUsageCount++; }
@@ -100,6 +141,8 @@
GrAHardwareBufferUtils::UpdateImageProc mUpdateProc;
GrAHardwareBufferUtils::TexImageCtx mImageCtx;
+ CleanupManager& mCleanupMgr;
+
static void releaseSurfaceProc(SkSurface::ReleaseContext releaseContext);
static void releaseImageProc(SkImage::ReleaseContext releaseContext);
diff --git a/libs/renderengine/skia/SkiaGLRenderEngine.cpp b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
index f0986a3..cb80ef4 100644
--- a/libs/renderengine/skia/SkiaGLRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
@@ -531,7 +531,7 @@
std::shared_ptr<AutoBackendTexture::LocalRef> imageTextureRef =
std::make_shared<AutoBackendTexture::LocalRef>(grContext,
buffer->toAHardwareBuffer(),
- isRenderable);
+ isRenderable, mTextureCleanupMgr);
cache.insert({buffer->getId(), imageTextureRef});
}
}
@@ -552,13 +552,53 @@
iter->second--;
+ // Swap contexts if needed prior to deleting this buffer
+ // See Issue 1 of
+ // https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_protected_content.txt: even
+ // when a protected context and an unprotected context are part of the same share group,
+ // protected surfaces may not be accessed by an unprotected context, implying that protected
+ // surfaces may only be freed when a protected context is active.
+ const bool inProtected = mInProtectedContext;
+ useProtectedContext(buffer->getUsage() & GRALLOC_USAGE_PROTECTED);
+
if (iter->second == 0) {
mTextureCache.erase(buffer->getId());
mGraphicBufferExternalRefs.erase(buffer->getId());
}
+
+ // Swap back to the previous context so that cached values of isProtected in SurfaceFlinger
+ // are up-to-date.
+ if (inProtected != mInProtectedContext) {
+ useProtectedContext(inProtected);
+ }
}
}
+bool SkiaGLRenderEngine::canSkipPostRenderCleanup() const {
+ std::lock_guard<std::mutex> lock(mRenderingMutex);
+ return mTextureCleanupMgr.isEmpty();
+}
+
+void SkiaGLRenderEngine::cleanupPostRender() {
+ ATRACE_CALL();
+ std::lock_guard<std::mutex> lock(mRenderingMutex);
+ mTextureCleanupMgr.cleanup();
+}
+
+// Helper class intended to be used on the stack to ensure that texture cleanup
+// is deferred until after this class goes out of scope.
+class DeferTextureCleanup final {
+public:
+ DeferTextureCleanup(AutoBackendTexture::CleanupManager& mgr) : mMgr(mgr) {
+ mMgr.setDeferredStatus(true);
+ }
+ ~DeferTextureCleanup() { mMgr.setDeferredStatus(false); }
+
+private:
+ DISALLOW_COPY_AND_ASSIGN(DeferTextureCleanup);
+ AutoBackendTexture::CleanupManager& mMgr;
+};
+
sk_sp<SkShader> SkiaGLRenderEngine::createRuntimeEffectShader(
sk_sp<SkShader> shader,
const LayerSettings* layer, const DisplaySettings& display, bool undoPremultipliedAlpha,
@@ -707,6 +747,9 @@
auto grContext = getActiveGrContext();
auto& cache = mTextureCache;
+ // any AutoBackendTexture deletions will now be deferred until cleanupPostRender is called
+ DeferTextureCleanup dtc(mTextureCleanupMgr);
+
std::shared_ptr<AutoBackendTexture::LocalRef> surfaceTextureRef;
if (const auto& it = cache.find(buffer->getBuffer()->getId()); it != cache.end()) {
surfaceTextureRef = it->second;
@@ -715,7 +758,7 @@
std::make_shared<AutoBackendTexture::LocalRef>(grContext,
buffer->getBuffer()
->toAHardwareBuffer(),
- true);
+ true, mTextureCleanupMgr);
}
const ui::Dataspace dstDataspace =
@@ -971,7 +1014,7 @@
imageTextureRef = std::make_shared<
AutoBackendTexture::LocalRef>(grContext,
item.buffer->getBuffer()->toAHardwareBuffer(),
- false);
+ false, mTextureCleanupMgr);
}
// isOpaque means we need to ignore the alpha in the image,
diff --git a/libs/renderengine/skia/SkiaGLRenderEngine.h b/libs/renderengine/skia/SkiaGLRenderEngine.h
index b972c73..b30355b 100644
--- a/libs/renderengine/skia/SkiaGLRenderEngine.h
+++ b/libs/renderengine/skia/SkiaGLRenderEngine.h
@@ -59,7 +59,8 @@
const std::shared_ptr<ExternalTexture>& buffer,
const bool useFramebufferCache, base::unique_fd&& bufferFence,
base::unique_fd* drawFence) override;
- void cleanFramebufferCache() override {}
+ void cleanupPostRender() override;
+ void cleanFramebufferCache() override{};
int getContextPriority() override;
bool isProtected() const override { return mInProtectedContext; }
bool supportsProtectedContent() const override;
@@ -75,6 +76,7 @@
size_t getMaxViewportDims() const override;
void mapExternalTextureBuffer(const sp<GraphicBuffer>& buffer, bool isRenderable) override;
void unmapExternalTextureBuffer(const sp<GraphicBuffer>& buffer) override;
+ bool canSkipPostRenderCleanup() const override;
private:
static EGLConfig chooseEglConfig(EGLDisplay display, int format, bool logConfig);
@@ -130,13 +132,14 @@
std::unordered_map<GraphicBufferId, std::shared_ptr<AutoBackendTexture::LocalRef>> mTextureCache
GUARDED_BY(mRenderingMutex);
std::unordered_map<LinearEffect, sk_sp<SkRuntimeEffect>, LinearEffectHasher> mRuntimeEffects;
+ AutoBackendTexture::CleanupManager mTextureCleanupMgr GUARDED_BY(mRenderingMutex);
StretchShaderFactory mStretchShaderFactory;
// Mutex guarding rendering operations, so that:
// 1. GL operations aren't interleaved, and
// 2. Internal state related to rendering that is potentially modified by
// multiple threads is guaranteed thread-safe.
- std::mutex mRenderingMutex;
+ mutable std::mutex mRenderingMutex;
sp<Fence> mLastDrawFence;
diff --git a/libs/renderengine/skia/SkiaRenderEngine.h b/libs/renderengine/skia/SkiaRenderEngine.h
index f098a86..31ad63e 100644
--- a/libs/renderengine/skia/SkiaRenderEngine.h
+++ b/libs/renderengine/skia/SkiaRenderEngine.h
@@ -53,7 +53,6 @@
base::unique_fd* /*drawFence*/) override {
return 0;
};
- virtual bool cleanupPostRender(CleanupMode) override { return true; };
virtual int getContextPriority() override { return 0; }
virtual void assertShadersCompiled(int numShaders) {}
virtual int reportShadersCompiled() { return 0; }
diff --git a/libs/renderengine/tests/RenderEngineTest.cpp b/libs/renderengine/tests/RenderEngineTest.cpp
index dfab6e8..e258741 100644
--- a/libs/renderengine/tests/RenderEngineTest.cpp
+++ b/libs/renderengine/tests/RenderEngineTest.cpp
@@ -43,6 +43,7 @@
constexpr bool WRITE_BUFFER_TO_FILE_ON_FAILURE = false;
namespace android {
+namespace renderengine {
class RenderEngineFactory {
public:
@@ -1779,13 +1780,6 @@
}
TEST_P(RenderEngineTest, cleanupPostRender_cleansUpOnce) {
- const auto& renderEngineFactory = GetParam();
-
- if (renderEngineFactory->type() != renderengine::RenderEngine::RenderEngineType::GLES) {
- // GLES-specific test
- return;
- }
-
initializeRenderEngine();
renderengine::DisplaySettings settings;
@@ -1810,53 +1804,9 @@
sync_wait(fd, -1);
}
// Only cleanup the first time.
- EXPECT_TRUE(mRE->cleanupPostRender(
- renderengine::RenderEngine::CleanupMode::CLEAN_OUTPUT_RESOURCES));
- EXPECT_FALSE(mRE->cleanupPostRender(
- renderengine::RenderEngine::CleanupMode::CLEAN_OUTPUT_RESOURCES));
-}
-
-TEST_P(RenderEngineTest, cleanupPostRender_whenCleaningAll_replacesTextureMemory) {
- const auto& renderEngineFactory = GetParam();
-
- if (renderEngineFactory->type() != renderengine::RenderEngine::RenderEngineType::GLES) {
- // GLES-specific test
- return;
- }
-
- initializeRenderEngine();
-
- renderengine::DisplaySettings settings;
- settings.outputDataspace = ui::Dataspace::V0_SRGB_LINEAR;
- settings.physicalDisplay = fullscreenRect();
- settings.clip = fullscreenRect();
-
- std::vector<const renderengine::LayerSettings*> layers;
- renderengine::LayerSettings layer;
- layer.geometry.boundaries = fullscreenRect().toFloatRect();
- BufferSourceVariant<ForceOpaqueBufferVariant>::fillColor(layer, 1.0f, 0.0f, 0.0f, this);
- layer.alpha = 1.0;
- layers.push_back(&layer);
-
- base::unique_fd fence;
- mRE->drawLayers(settings, layers, mBuffer, true, base::unique_fd(), &fence);
-
- const int fd = fence.get();
- if (fd >= 0) {
- sync_wait(fd, -1);
- }
-
- uint64_t bufferId = layer.source.buffer.buffer->getBuffer()->getId();
- uint32_t texName = layer.source.buffer.textureName;
- EXPECT_TRUE(mGLESRE->isImageCachedForTesting(bufferId));
- EXPECT_EQ(bufferId, mGLESRE->getBufferIdForTextureNameForTesting(texName));
-
- EXPECT_TRUE(mRE->cleanupPostRender(renderengine::RenderEngine::CleanupMode::CLEAN_ALL));
-
- // Now check that our view of memory is good.
- EXPECT_FALSE(mGLESRE->isImageCachedForTesting(bufferId));
- EXPECT_EQ(std::nullopt, mGLESRE->getBufferIdForTextureNameForTesting(bufferId));
- EXPECT_TRUE(mGLESRE->isTextureNameKnownForTesting(texName));
+ EXPECT_FALSE(mRE->canSkipPostRenderCleanup());
+ mRE->cleanupPostRender();
+ EXPECT_TRUE(mRE->canSkipPostRenderCleanup());
}
TEST_P(RenderEngineTest, testRoundedCornersCrop) {
@@ -2080,6 +2030,7 @@
expectBufferColor(rect, 0, 255, 0, 255);
}
}
+} // namespace renderengine
} // namespace android
// TODO(b/129481165): remove the #pragma below and fix conversion issues
diff --git a/libs/renderengine/tests/RenderEngineThreadedTest.cpp b/libs/renderengine/tests/RenderEngineThreadedTest.cpp
index e3917cc..c65e731 100644
--- a/libs/renderengine/tests/RenderEngineThreadedTest.cpp
+++ b/libs/renderengine/tests/RenderEngineThreadedTest.cpp
@@ -130,22 +130,22 @@
ASSERT_EQ(true, result);
}
-TEST_F(RenderEngineThreadedTest, cleanupPostRender_returnsFalse) {
- EXPECT_CALL(*mRenderEngine,
- cleanupPostRender(renderengine::RenderEngine::CleanupMode::CLEAN_ALL))
- .WillOnce(Return(false));
- status_t result =
- mThreadedRE->cleanupPostRender(renderengine::RenderEngine::CleanupMode::CLEAN_ALL);
- ASSERT_EQ(false, result);
+TEST_F(RenderEngineThreadedTest, PostRenderCleanup_skipped) {
+ EXPECT_CALL(*mRenderEngine, canSkipPostRenderCleanup()).WillOnce(Return(true));
+ EXPECT_CALL(*mRenderEngine, cleanupPostRender()).Times(0);
+ mThreadedRE->cleanupPostRender();
+
+ // call ANY synchronous function to ensure that cleanupPostRender has completed.
+ mThreadedRE->getContextPriority();
}
-TEST_F(RenderEngineThreadedTest, cleanupPostRender_returnsTrue) {
- EXPECT_CALL(*mRenderEngine,
- cleanupPostRender(renderengine::RenderEngine::CleanupMode::CLEAN_ALL))
- .WillOnce(Return(true));
- status_t result =
- mThreadedRE->cleanupPostRender(renderengine::RenderEngine::CleanupMode::CLEAN_ALL);
- ASSERT_EQ(true, result);
+TEST_F(RenderEngineThreadedTest, PostRenderCleanup_notSkipped) {
+ EXPECT_CALL(*mRenderEngine, canSkipPostRenderCleanup()).WillOnce(Return(false));
+ EXPECT_CALL(*mRenderEngine, cleanupPostRender()).WillOnce(Return());
+ mThreadedRE->cleanupPostRender();
+
+ // call ANY synchronous function to ensure that cleanupPostRender has completed.
+ mThreadedRE->getContextPriority();
}
TEST_F(RenderEngineThreadedTest, supportsBackgroundBlur_returnsFalse) {
diff --git a/libs/renderengine/threaded/RenderEngineThreaded.cpp b/libs/renderengine/threaded/RenderEngineThreaded.cpp
index 74c5f47..ea3871f 100644
--- a/libs/renderengine/threaded/RenderEngineThreaded.cpp
+++ b/libs/renderengine/threaded/RenderEngineThreaded.cpp
@@ -24,6 +24,7 @@
#include <android-base/stringprintf.h>
#include <private/gui/SyncFeatures.h>
+#include <processgroup/processgroup.h>
#include <utils/Trace.h>
#include "gl/GLESRenderEngine.h"
@@ -80,6 +81,10 @@
void RenderEngineThreaded::threadMain(CreateInstanceFactory factory) NO_THREAD_SAFETY_ANALYSIS {
ATRACE_CALL();
+ if (!SetTaskProfiles(0, {"SFRenderEnginePolicy"})) {
+ ALOGW("Failed to set render-engine task profile!");
+ }
+
if (setSchedFifo(true) != NO_ERROR) {
ALOGW("Couldn't set SCHED_FIFO");
}
@@ -270,19 +275,26 @@
return resultFuture.get();
}
-bool RenderEngineThreaded::cleanupPostRender(CleanupMode mode) {
- std::promise<bool> resultPromise;
- std::future<bool> resultFuture = resultPromise.get_future();
+void RenderEngineThreaded::cleanupPostRender() {
+ if (canSkipPostRenderCleanup()) {
+ return;
+ }
+
+ // This function is designed so it can run asynchronously, so we do not need to wait
+ // for the futures.
{
std::lock_guard lock(mThreadMutex);
- mFunctionCalls.push([&resultPromise, mode](renderengine::RenderEngine& instance) {
- ATRACE_NAME("REThreaded::cleanupPostRender");
- bool returnValue = instance.cleanupPostRender(mode);
- resultPromise.set_value(returnValue);
+ mFunctionCalls.push([=](renderengine::RenderEngine& instance) {
+ ATRACE_NAME("REThreaded::unmapExternalTextureBuffer");
+ instance.cleanupPostRender();
});
}
mCondition.notify_one();
- return resultFuture.get();
+}
+
+bool RenderEngineThreaded::canSkipPostRenderCleanup() const {
+ waitUntilInitialized();
+ return mRenderEngine->canSkipPostRenderCleanup();
}
status_t RenderEngineThreaded::drawLayers(const DisplaySettings& display,
diff --git a/libs/renderengine/threaded/RenderEngineThreaded.h b/libs/renderengine/threaded/RenderEngineThreaded.h
index c81f137..9b523b2 100644
--- a/libs/renderengine/threaded/RenderEngineThreaded.h
+++ b/libs/renderengine/threaded/RenderEngineThreaded.h
@@ -54,7 +54,7 @@
bool isProtected() const override;
bool supportsProtectedContent() const override;
bool useProtectedContext(bool useProtectedContext) override;
- bool cleanupPostRender(CleanupMode mode) override;
+ void cleanupPostRender() override;
status_t drawLayers(const DisplaySettings& display,
const std::vector<const LayerSettings*>& layers,
@@ -70,6 +70,7 @@
protected:
void mapExternalTextureBuffer(const sp<GraphicBuffer>& buffer, bool isRenderable) override;
void unmapExternalTextureBuffer(const sp<GraphicBuffer>& buffer) override;
+ bool canSkipPostRenderCleanup() const override;
private:
void threadMain(CreateInstanceFactory factory);
diff --git a/opengl/libs/EGL/egl_object.cpp b/opengl/libs/EGL/egl_object.cpp
index 847b351..efbe613 100644
--- a/opengl/libs/EGL/egl_object.cpp
+++ b/opengl/libs/EGL/egl_object.cpp
@@ -82,9 +82,13 @@
void egl_surface_t::disconnect() {
if (win != nullptr && connected) {
- native_window_set_buffers_format(win, 0);
- if (native_window_api_disconnect(win, NATIVE_WINDOW_API_EGL)) {
- ALOGW("EGLNativeWindowType %p disconnect failed", win);
+ // NOTE: When using Vulkan backend, the Vulkan runtime makes all the
+ // native_window_* calls, so don't do them here.
+ if (!cnx->useAngle) {
+ native_window_set_buffers_format(win, 0);
+ if (native_window_api_disconnect(win, NATIVE_WINDOW_API_EGL)) {
+ ALOGW("EGLNativeWindowType %p disconnect failed", win);
+ }
}
connected = false;
}
diff --git a/services/inputflinger/dispatcher/FocusResolver.cpp b/services/inputflinger/dispatcher/FocusResolver.cpp
index 2db8c13..fb19435 100644
--- a/services/inputflinger/dispatcher/FocusResolver.cpp
+++ b/services/inputflinger/dispatcher/FocusResolver.cpp
@@ -216,4 +216,9 @@
return dump;
}
+void FocusResolver::displayRemoved(int32_t displayId) {
+ mFocusRequestByDisplay.erase(displayId);
+ mLastFocusResultByDisplay.erase(displayId);
+}
+
} // namespace android::inputdispatcher
diff --git a/services/inputflinger/dispatcher/FocusResolver.h b/services/inputflinger/dispatcher/FocusResolver.h
index dc5eeeb..afe16b3 100644
--- a/services/inputflinger/dispatcher/FocusResolver.h
+++ b/services/inputflinger/dispatcher/FocusResolver.h
@@ -62,6 +62,9 @@
std::optional<FocusResolver::FocusChanges> setFocusedWindow(
const FocusRequest& request, const std::vector<sp<InputWindowHandle>>& windows);
+ // Display has been removed from the system, clean up old references.
+ void displayRemoved(int32_t displayId);
+
// exposed for debugging
bool hasFocusedWindowTokens() const { return !mFocusedWindowTokenByDisplay.empty(); }
std::string dumpFocusedWindows() const;
diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp
index cf433c0..c0010ab 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.cpp
+++ b/services/inputflinger/dispatcher/InputDispatcher.cpp
@@ -3787,7 +3787,7 @@
if (shouldSendKeyToInputFilterLocked(args)) {
mLock.unlock();
- policyFlags |= POLICY_FLAG_FILTERED;
+ policyFlags |= POLICY_FLAG_FILTERED | POLICY_FLAG_INPUTFILTER_TRUSTED;
if (!mPolicy->filterInputEvent(&event, policyFlags)) {
return; // event was consumed by the filter
}
@@ -4009,6 +4009,19 @@
policyFlags |= POLICY_FLAG_TRUSTED;
}
+ // For all injected events, set device id = VIRTUAL_KEYBOARD_ID. The only exception is events
+ // that have gone through the InputFilter. If the event passed through the InputFilter,
+ // but did not get modified, assign the provided device id. If the InputFilter modifies the
+ // events in any way, it is responsible for removing this flag.
+ // If the injected event originated from accessibility, assign the accessibility device id,
+ // so that it can be distinguished from regular injected events.
+ int32_t resolvedDeviceId = VIRTUAL_KEYBOARD_ID;
+ if (policyFlags & POLICY_FLAG_INPUTFILTER_TRUSTED) {
+ resolvedDeviceId = event->getDeviceId();
+ } else if (policyFlags & POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY) {
+ resolvedDeviceId = ACCESSIBILITY_DEVICE_ID;
+ }
+
std::queue<std::unique_ptr<EventEntry>> injectedEntries;
switch (event->getType()) {
case AINPUT_EVENT_TYPE_KEY: {
@@ -4021,10 +4034,10 @@
int32_t flags = incomingKey.getFlags();
int32_t keyCode = incomingKey.getKeyCode();
int32_t metaState = incomingKey.getMetaState();
- accelerateMetaShortcuts(VIRTUAL_KEYBOARD_ID, action,
+ accelerateMetaShortcuts(resolvedDeviceId, action,
/*byref*/ keyCode, /*byref*/ metaState);
KeyEvent keyEvent;
- keyEvent.initialize(incomingKey.getId(), VIRTUAL_KEYBOARD_ID, incomingKey.getSource(),
+ keyEvent.initialize(incomingKey.getId(), resolvedDeviceId, incomingKey.getSource(),
incomingKey.getDisplayId(), INVALID_HMAC, action, flags, keyCode,
incomingKey.getScanCode(), metaState, incomingKey.getRepeatCount(),
incomingKey.getDownTime(), incomingKey.getEventTime());
@@ -4045,7 +4058,7 @@
mLock.lock();
std::unique_ptr<KeyEntry> injectedEntry =
std::make_unique<KeyEntry>(incomingKey.getId(), incomingKey.getEventTime(),
- VIRTUAL_KEYBOARD_ID, incomingKey.getSource(),
+ resolvedDeviceId, incomingKey.getSource(),
incomingKey.getDisplayId(), policyFlags, action,
flags, keyCode, incomingKey.getScanCode(), metaState,
incomingKey.getRepeatCount(),
@@ -4055,18 +4068,18 @@
}
case AINPUT_EVENT_TYPE_MOTION: {
- const MotionEvent* motionEvent = static_cast<const MotionEvent*>(event);
- int32_t action = motionEvent->getAction();
- size_t pointerCount = motionEvent->getPointerCount();
- const PointerProperties* pointerProperties = motionEvent->getPointerProperties();
- int32_t actionButton = motionEvent->getActionButton();
- int32_t displayId = motionEvent->getDisplayId();
+ const MotionEvent& motionEvent = static_cast<const MotionEvent&>(*event);
+ int32_t action = motionEvent.getAction();
+ size_t pointerCount = motionEvent.getPointerCount();
+ const PointerProperties* pointerProperties = motionEvent.getPointerProperties();
+ int32_t actionButton = motionEvent.getActionButton();
+ int32_t displayId = motionEvent.getDisplayId();
if (!validateMotionEvent(action, actionButton, pointerCount, pointerProperties)) {
return InputEventInjectionResult::FAILED;
}
if (!(policyFlags & POLICY_FLAG_FILTERED)) {
- nsecs_t eventTime = motionEvent->getEventTime();
+ nsecs_t eventTime = motionEvent.getEventTime();
android::base::Timer t;
mPolicy->interceptMotionBeforeQueueing(displayId, eventTime, /*byref*/ policyFlags);
if (t.duration() > SLOW_INTERCEPTION_THRESHOLD) {
@@ -4076,47 +4089,46 @@
}
mLock.lock();
- const nsecs_t* sampleEventTimes = motionEvent->getSampleEventTimes();
- const PointerCoords* samplePointerCoords = motionEvent->getSamplePointerCoords();
+ const nsecs_t* sampleEventTimes = motionEvent.getSampleEventTimes();
+ const PointerCoords* samplePointerCoords = motionEvent.getSamplePointerCoords();
std::unique_ptr<MotionEntry> injectedEntry =
- std::make_unique<MotionEntry>(motionEvent->getId(), *sampleEventTimes,
- VIRTUAL_KEYBOARD_ID, motionEvent->getSource(),
- motionEvent->getDisplayId(), policyFlags, action,
- actionButton, motionEvent->getFlags(),
- motionEvent->getMetaState(),
- motionEvent->getButtonState(),
- motionEvent->getClassification(),
- motionEvent->getEdgeFlags(),
- motionEvent->getXPrecision(),
- motionEvent->getYPrecision(),
- motionEvent->getRawXCursorPosition(),
- motionEvent->getRawYCursorPosition(),
- motionEvent->getDownTime(),
- uint32_t(pointerCount), pointerProperties,
- samplePointerCoords, motionEvent->getXOffset(),
- motionEvent->getYOffset());
+ std::make_unique<MotionEntry>(motionEvent.getId(), *sampleEventTimes,
+ resolvedDeviceId, motionEvent.getSource(),
+ motionEvent.getDisplayId(), policyFlags, action,
+ actionButton, motionEvent.getFlags(),
+ motionEvent.getMetaState(),
+ motionEvent.getButtonState(),
+ motionEvent.getClassification(),
+ motionEvent.getEdgeFlags(),
+ motionEvent.getXPrecision(),
+ motionEvent.getYPrecision(),
+ motionEvent.getRawXCursorPosition(),
+ motionEvent.getRawYCursorPosition(),
+ motionEvent.getDownTime(), uint32_t(pointerCount),
+ pointerProperties, samplePointerCoords,
+ motionEvent.getXOffset(),
+ motionEvent.getYOffset());
injectedEntries.push(std::move(injectedEntry));
- for (size_t i = motionEvent->getHistorySize(); i > 0; i--) {
+ for (size_t i = motionEvent.getHistorySize(); i > 0; i--) {
sampleEventTimes += 1;
samplePointerCoords += pointerCount;
std::unique_ptr<MotionEntry> nextInjectedEntry =
- std::make_unique<MotionEntry>(motionEvent->getId(), *sampleEventTimes,
- VIRTUAL_KEYBOARD_ID, motionEvent->getSource(),
- motionEvent->getDisplayId(), policyFlags,
- action, actionButton, motionEvent->getFlags(),
- motionEvent->getMetaState(),
- motionEvent->getButtonState(),
- motionEvent->getClassification(),
- motionEvent->getEdgeFlags(),
- motionEvent->getXPrecision(),
- motionEvent->getYPrecision(),
- motionEvent->getRawXCursorPosition(),
- motionEvent->getRawYCursorPosition(),
- motionEvent->getDownTime(),
+ std::make_unique<MotionEntry>(motionEvent.getId(), *sampleEventTimes,
+ resolvedDeviceId, motionEvent.getSource(),
+ motionEvent.getDisplayId(), policyFlags,
+ action, actionButton, motionEvent.getFlags(),
+ motionEvent.getMetaState(),
+ motionEvent.getButtonState(),
+ motionEvent.getClassification(),
+ motionEvent.getEdgeFlags(),
+ motionEvent.getXPrecision(),
+ motionEvent.getYPrecision(),
+ motionEvent.getRawXCursorPosition(),
+ motionEvent.getRawYCursorPosition(),
+ motionEvent.getDownTime(),
uint32_t(pointerCount), pointerProperties,
- samplePointerCoords,
- motionEvent->getXOffset(),
- motionEvent->getYOffset());
+ samplePointerCoords, motionEvent.getXOffset(),
+ motionEvent.getYOffset());
injectedEntries.push(std::move(nextInjectedEntry));
}
break;
@@ -4601,30 +4613,34 @@
}
{ // acquire lock
std::scoped_lock _l(mLock);
-
- std::shared_ptr<InputApplicationHandle> oldFocusedApplicationHandle =
- getValueByKey(mFocusedApplicationHandlesByDisplay, displayId);
-
- if (sharedPointersEqual(oldFocusedApplicationHandle, inputApplicationHandle)) {
- return; // This application is already focused. No need to wake up or change anything.
- }
-
- // Set the new application handle.
- if (inputApplicationHandle != nullptr) {
- mFocusedApplicationHandlesByDisplay[displayId] = inputApplicationHandle;
- } else {
- mFocusedApplicationHandlesByDisplay.erase(displayId);
- }
-
- // No matter what the old focused application was, stop waiting on it because it is
- // no longer focused.
- resetNoFocusedWindowTimeoutLocked();
+ setFocusedApplicationLocked(displayId, inputApplicationHandle);
} // release lock
// Wake up poll loop since it may need to make new input dispatching choices.
mLooper->wake();
}
+void InputDispatcher::setFocusedApplicationLocked(
+ int32_t displayId, const std::shared_ptr<InputApplicationHandle>& inputApplicationHandle) {
+ std::shared_ptr<InputApplicationHandle> oldFocusedApplicationHandle =
+ getValueByKey(mFocusedApplicationHandlesByDisplay, displayId);
+
+ if (sharedPointersEqual(oldFocusedApplicationHandle, inputApplicationHandle)) {
+ return; // This application is already focused. No need to wake up or change anything.
+ }
+
+ // Set the new application handle.
+ if (inputApplicationHandle != nullptr) {
+ mFocusedApplicationHandlesByDisplay[displayId] = inputApplicationHandle;
+ } else {
+ mFocusedApplicationHandlesByDisplay.erase(displayId);
+ }
+
+ // No matter what the old focused application was, stop waiting on it because it is
+ // no longer focused.
+ resetNoFocusedWindowTimeoutLocked();
+}
+
/**
* Sets the focused display, which is responsible for receiving focus-dispatched input events where
* the display not specified.
@@ -6196,4 +6212,19 @@
mLock.lock();
}
+void InputDispatcher::displayRemoved(int32_t displayId) {
+ { // acquire lock
+ std::scoped_lock _l(mLock);
+ // Set an empty list to remove all handles from the specific display.
+ setInputWindowsLocked(/* window handles */ {}, displayId);
+ setFocusedApplicationLocked(displayId, nullptr);
+ // Call focus resolver to clean up stale requests. This must be called after input windows
+ // have been removed for the removed display.
+ mFocusResolver.displayRemoved(displayId);
+ } // release lock
+
+ // Wake up poll loop since it may need to make new input dispatching choices.
+ mLooper->wake();
+}
+
} // namespace android::inputdispatcher
diff --git a/services/inputflinger/dispatcher/InputDispatcher.h b/services/inputflinger/dispatcher/InputDispatcher.h
index bb3f3e6..9edf41c 100644
--- a/services/inputflinger/dispatcher/InputDispatcher.h
+++ b/services/inputflinger/dispatcher/InputDispatcher.h
@@ -139,6 +139,8 @@
std::array<uint8_t, 32> sign(const VerifiedInputEvent& event) const;
+ void displayRemoved(int32_t displayId) override;
+
private:
enum class DropReason {
NOT_DROPPED,
@@ -343,6 +345,9 @@
std::unordered_map<int32_t, TouchState> mTouchStatesByDisplay GUARDED_BY(mLock);
std::unique_ptr<DragState> mDragState GUARDED_BY(mLock);
+ void setFocusedApplicationLocked(
+ int32_t displayId,
+ const std::shared_ptr<InputApplicationHandle>& inputApplicationHandle) REQUIRES(mLock);
// Focused applications.
std::unordered_map<int32_t, std::shared_ptr<InputApplicationHandle>>
mFocusedApplicationHandlesByDisplay GUARDED_BY(mLock);
diff --git a/services/inputflinger/dispatcher/include/InputDispatcherInterface.h b/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
index 7f85e53..43428a0 100644
--- a/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
+++ b/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
@@ -209,6 +209,11 @@
* Returns true on success.
*/
virtual bool flushSensor(int deviceId, InputDeviceSensorType sensorType) = 0;
+
+ /**
+ * Called when a display has been removed from the system.
+ */
+ virtual void displayRemoved(int32_t displayId) = 0;
};
} // namespace android
diff --git a/services/inputflinger/reader/TouchVideoDevice.cpp b/services/inputflinger/reader/TouchVideoDevice.cpp
index c075078..c7c8e28 100644
--- a/services/inputflinger/reader/TouchVideoDevice.cpp
+++ b/services/inputflinger/reader/TouchVideoDevice.cpp
@@ -169,8 +169,9 @@
mFrames.insert(mFrames.end(), std::make_move_iterator(frames.begin()),
std::make_move_iterator(frames.end()));
if (mFrames.size() > MAX_QUEUE_SIZE) {
- ALOGE("More than %zu frames have been accumulated. Dropping %zu frames", MAX_QUEUE_SIZE,
- mFrames.size() - MAX_QUEUE_SIZE);
+ // A user-space grip suppression process may be processing the video frames, and holding
+ // back the input events. This could result in video frames being produced without the
+ // matching input events. Drop the oldest frame here to prepare for the next input event.
mFrames.erase(mFrames.begin(), mFrames.end() - MAX_QUEUE_SIZE);
}
return numFrames;
diff --git a/services/inputflinger/tests/FocusResolver_test.cpp b/services/inputflinger/tests/FocusResolver_test.cpp
index 17efb5b..9051ff1 100644
--- a/services/inputflinger/tests/FocusResolver_test.cpp
+++ b/services/inputflinger/tests/FocusResolver_test.cpp
@@ -256,5 +256,37 @@
// dropped.
ASSERT_FALSE(changes);
}
+TEST(FocusResolverTest, FocusRequestsAreClearedWhenWindowIsRemoved) {
+ sp<IBinder> windowToken = new BBinder();
+ std::vector<sp<InputWindowHandle>> windows;
+
+ sp<FakeWindowHandle> window = new FakeWindowHandle("Test Window", windowToken,
+ true /* focusable */, true /* visible */);
+ windows.push_back(window);
+
+ FocusRequest request;
+ request.displayId = 42;
+ request.token = windowToken;
+ FocusResolver focusResolver;
+ std::optional<FocusResolver::FocusChanges> changes =
+ focusResolver.setFocusedWindow(request, windows);
+ ASSERT_FOCUS_CHANGE(changes, /*from*/ nullptr, /*to*/ windowToken);
+ ASSERT_EQ(request.displayId, changes->displayId);
+
+ // Start with a focused window
+ window->setFocusable(true);
+ changes = focusResolver.setInputWindows(request.displayId, windows);
+ ASSERT_FOCUS_CHANGE(changes, /*from*/ nullptr, /*to*/ windowToken);
+
+ // When a display is removed, all windows are removed from the display
+ // and our focused window loses focus
+ changes = focusResolver.setInputWindows(request.displayId, {});
+ ASSERT_FOCUS_CHANGE(changes, /*from*/ windowToken, /*to*/ nullptr);
+ focusResolver.displayRemoved(request.displayId);
+
+ // When a display is readded, the window does not get focus since the request was cleared.
+ changes = focusResolver.setInputWindows(request.displayId, windows);
+ ASSERT_FALSE(changes);
+}
} // namespace android::inputdispatcher
diff --git a/services/inputflinger/tests/InputDispatcher_test.cpp b/services/inputflinger/tests/InputDispatcher_test.cpp
index 93aa6ac..77ca12c 100644
--- a/services/inputflinger/tests/InputDispatcher_test.cpp
+++ b/services/inputflinger/tests/InputDispatcher_test.cpp
@@ -473,6 +473,7 @@
const sp<InputWindowHandle>& focusedWindow = nullptr) {
FocusRequest request;
request.token = window->getToken();
+ request.windowName = window->getName();
if (focusedWindow) {
request.focusedToken = focusedWindow->getToken();
}
@@ -1085,6 +1086,20 @@
return mInputReceiver->consume();
}
+ MotionEvent* consumeMotion() {
+ InputEvent* event = consume();
+ if (event == nullptr) {
+ ADD_FAILURE() << "Consume failed : no event";
+ return nullptr;
+ }
+ if (event->getType() != AINPUT_EVENT_TYPE_MOTION) {
+ ADD_FAILURE() << "Instead of motion event, got "
+ << inputEventTypeToString(event->getType());
+ return nullptr;
+ }
+ return static_cast<MotionEvent*>(event);
+ }
+
void assertNoEvents() {
if (mInputReceiver == nullptr &&
mInfo.inputFeatures.test(InputWindowInfo::Feature::NO_INPUT_CHANNEL)) {
@@ -2446,13 +2461,10 @@
generateMotionArgs(AMOTION_EVENT_ACTION_MOVE, source, ADISPLAY_ID_DEFAULT);
mDispatcher->notifyMotion(&motionArgs);
- InputEvent* event = window->consume();
+ MotionEvent* event = window->consumeMotion();
ASSERT_NE(event, nullptr);
- ASSERT_EQ(AINPUT_EVENT_TYPE_MOTION, event->getType())
- << name.c_str() << "expected " << inputEventTypeToString(AINPUT_EVENT_TYPE_MOTION)
- << " event, got " << inputEventTypeToString(event->getType()) << " event";
- const MotionEvent& motionEvent = static_cast<const MotionEvent&>(*event);
+ const MotionEvent& motionEvent = *event;
EXPECT_EQ(AMOTION_EVENT_ACTION_MOVE, motionEvent.getAction());
EXPECT_EQ(motionArgs.pointerCount, motionEvent.getPointerCount());
@@ -2676,6 +2688,23 @@
window->consumeKeyDown(ADISPLAY_ID_DEFAULT);
}
+TEST_F(InputDispatcherTest, DisplayRemoved) {
+ std::shared_ptr<FakeApplicationHandle> application = std::make_shared<FakeApplicationHandle>();
+ sp<FakeWindowHandle> window =
+ new FakeWindowHandle(application, mDispatcher, "window", ADISPLAY_ID_DEFAULT);
+ mDispatcher->setFocusedApplication(ADISPLAY_ID_DEFAULT, application);
+
+ // window is granted focus.
+ window->setFocusable(true);
+ mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {window}}});
+ setFocusedWindow(window);
+ window->consumeFocusEvent(true);
+
+ // When a display is removed window loses focus.
+ mDispatcher->displayRemoved(ADISPLAY_ID_DEFAULT);
+ window->consumeFocusEvent(false);
+}
+
/**
* Launch two windows, with different owners. One window (slipperyExitWindow) has Flag::SLIPPERY,
* and overlaps the other window, slipperyEnterWindow. The window 'slipperyExitWindow' is on top
@@ -3118,6 +3147,70 @@
testNotifyKey(/*expectToBeFiltered*/ false);
}
+class InputFilterInjectionPolicyTest : public InputDispatcherTest {
+protected:
+ virtual void SetUp() override {
+ InputDispatcherTest::SetUp();
+
+ /**
+ * We don't need to enable input filter to test the injected event policy, but we enabled it
+ * here to make the tests more realistic, since this policy only matters when inputfilter is
+ * on.
+ */
+ mDispatcher->setInputFilterEnabled(true);
+
+ std::shared_ptr<InputApplicationHandle> application =
+ std::make_shared<FakeApplicationHandle>();
+ mWindow =
+ new FakeWindowHandle(application, mDispatcher, "Test Window", ADISPLAY_ID_DEFAULT);
+
+ mDispatcher->setFocusedApplication(ADISPLAY_ID_DEFAULT, application);
+ mWindow->setFocusable(true);
+ mDispatcher->setInputWindows({{ADISPLAY_ID_DEFAULT, {mWindow}}});
+ setFocusedWindow(mWindow);
+ mWindow->consumeFocusEvent(true);
+ }
+
+ void testInjectedKey(int32_t policyFlags, int32_t injectedDeviceId, int32_t resolvedDeviceId) {
+ KeyEvent event;
+
+ const nsecs_t eventTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ event.initialize(InputEvent::nextId(), injectedDeviceId, AINPUT_SOURCE_KEYBOARD,
+ ADISPLAY_ID_NONE, INVALID_HMAC, AKEY_EVENT_ACTION_DOWN, 0, AKEYCODE_A,
+ KEY_A, AMETA_NONE, 0 /*repeatCount*/, eventTime, eventTime);
+ const int32_t additionalPolicyFlags =
+ POLICY_FLAG_PASS_TO_USER | POLICY_FLAG_DISABLE_KEY_REPEAT;
+ ASSERT_EQ(InputEventInjectionResult::SUCCEEDED,
+ mDispatcher->injectInputEvent(&event, INJECTOR_PID, INJECTOR_UID,
+ InputEventInjectionSync::WAIT_FOR_RESULT, 10ms,
+ policyFlags | additionalPolicyFlags));
+
+ InputEvent* received = mWindow->consume();
+ ASSERT_NE(nullptr, received);
+ ASSERT_EQ(resolvedDeviceId, received->getDeviceId());
+ }
+
+private:
+ sp<FakeWindowHandle> mWindow;
+};
+
+TEST_F(InputFilterInjectionPolicyTest, TrustedFilteredEvents_KeepOriginalDeviceId) {
+ // We don't need POLICY_FLAG_FILTERED here, but it will be set in practice, so keep it to make
+ // the test more closely resemble the real usage
+ testInjectedKey(POLICY_FLAG_FILTERED | POLICY_FLAG_INPUTFILTER_TRUSTED, 3 /*injectedDeviceId*/,
+ 3 /*resolvedDeviceId*/);
+}
+
+TEST_F(InputFilterInjectionPolicyTest, EventsInjectedFromAccessibility_HaveAccessibilityDeviceId) {
+ testInjectedKey(POLICY_FLAG_FILTERED | POLICY_FLAG_INJECTED_FROM_ACCESSIBILITY,
+ 3 /*injectedDeviceId*/, ACCESSIBILITY_DEVICE_ID /*resolvedDeviceId*/);
+}
+
+TEST_F(InputFilterInjectionPolicyTest, RegularInjectedEvents_ReceiveVirtualDeviceId) {
+ testInjectedKey(0 /*policyFlags*/, 3 /*injectedDeviceId*/,
+ VIRTUAL_KEYBOARD_ID /*resolvedDeviceId*/);
+}
+
class InputDispatcherOnPointerDownOutsideFocus : public InputDispatcherTest {
virtual void SetUp() override {
InputDispatcherTest::SetUp();
diff --git a/services/sensorservice/SensorService.cpp b/services/sensorservice/SensorService.cpp
index a1c800e..2281721 100644
--- a/services/sensorservice/SensorService.cpp
+++ b/services/sensorservice/SensorService.cpp
@@ -1626,19 +1626,17 @@
}
void SensorService::notifyProximityStateLocked(
- const std::vector<sp<ProximityActiveListener>>& listnrs) {
- std::async(
- std::launch::async,
- [](uint64_t mySeq, bool isActive, std::vector<sp<ProximityActiveListener>> listeners) {
- while (completedCallbackSeq.load() != mySeq - 1)
- std::this_thread::sleep_for(1ms);
- for (auto& listener : listeners)
- listener->onProximityActive(isActive);
- completedCallbackSeq++;
- },
- ++curProxCallbackSeq, mProximityActiveCount > 0,
- listnrs /* (this is meant to be a copy) */
- );
+ const std::vector<sp<ProximityActiveListener>>& listeners) {
+ const bool isActive = mProximityActiveCount > 0;
+ const uint64_t mySeq = ++curProxCallbackSeq;
+ std::thread t([isActive, mySeq, listenersCopy = listeners]() {
+ while (completedCallbackSeq.load() != mySeq - 1)
+ std::this_thread::sleep_for(1ms);
+ for (auto& listener : listenersCopy)
+ listener->onProximityActive(isActive);
+ completedCallbackSeq++;
+ });
+ t.detach();
}
status_t SensorService::addProximityActiveListener(const sp<ProximityActiveListener>& callback) {
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index e7f373f..c64371b 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -223,7 +223,7 @@
// buffer mode.
bool queuedBuffer = false;
const int32_t layerId = getSequence();
- LayerRejecter r(mDrawingState, getCurrentState(), recomputeVisibleRegions,
+ LayerRejecter r(mDrawingState, getDrawingState(), recomputeVisibleRegions,
getProducerStickyTransform() != 0, mName,
getTransformToDisplayInverse());
diff --git a/services/surfaceflinger/BufferStateLayer.cpp b/services/surfaceflinger/BufferStateLayer.cpp
index d68a0e0..a3b7b13 100644
--- a/services/surfaceflinger/BufferStateLayer.cpp
+++ b/services/surfaceflinger/BufferStateLayer.cpp
@@ -33,6 +33,7 @@
#include <gui/BufferQueue.h>
#include <private/gui/SyncFeatures.h>
#include <renderengine/Image.h>
+#include "TunnelModeEnabledReporter.h"
#include "EffectLayer.h"
#include "FrameTracer/FrameTracer.h"
@@ -44,12 +45,12 @@
namespace {
void callReleaseBufferCallback(const sp<ITransactionCompletedListener>& listener,
const sp<GraphicBuffer>& buffer, const sp<Fence>& releaseFence,
- uint32_t transformHint) {
+ uint32_t transformHint, uint32_t currentMaxAcquiredBufferCount) {
if (!listener) {
return;
}
listener->onReleaseBuffer(buffer->getId(), releaseFence ? releaseFence : Fence::NO_FENCE,
- transformHint);
+ transformHint, currentMaxAcquiredBufferCount);
}
} // namespace
@@ -64,7 +65,7 @@
BufferStateLayer::BufferStateLayer(const LayerCreationArgs& args)
: BufferLayer(args), mHwcSlotGenerator(new HwcSlotGenerator()) {
- mCurrentState.dataspace = ui::Dataspace::V0_SRGB;
+ mDrawingState.dataspace = ui::Dataspace::V0_SRGB;
}
BufferStateLayer::~BufferStateLayer() {
@@ -75,7 +76,9 @@
if (mBufferInfo.mBuffer != nullptr && !isClone()) {
callReleaseBufferCallback(mDrawingState.releaseBufferListener,
mBufferInfo.mBuffer->getBuffer(), mBufferInfo.mFence,
- mTransformHint);
+ mTransformHint,
+ mFlinger->getMaxAcquiredBufferCountForCurrentRefreshRate(
+ mOwnerUid));
}
}
@@ -199,6 +202,8 @@
for (const auto& handle : mDrawingState.callbackHandles) {
handle->transformHint = mTransformHint;
handle->dequeueReadyTime = dequeueReadyTime;
+ handle->currentMaxAcquiredBufferCount =
+ mFlinger->getMaxAcquiredBufferCountForCurrentRefreshRate(mOwnerUid);
}
// If there are multiple transactions in this frame, set the previous id on the earliest
@@ -252,8 +257,8 @@
bool BufferStateLayer::willPresentCurrentTransaction() const {
// Returns true if the most recent Transaction applied to CurrentState will be presented.
return (getSidebandStreamChanged() || getAutoRefresh() ||
- (mCurrentState.modified &&
- (mCurrentState.buffer != nullptr || mCurrentState.bgColorLayer != nullptr)));
+ (mDrawingState.modified &&
+ (mDrawingState.buffer != nullptr || mDrawingState.bgColorLayer != nullptr)));
}
Rect BufferStateLayer::getCrop(const Layer::State& s) const {
@@ -261,65 +266,72 @@
}
bool BufferStateLayer::setTransform(uint32_t transform) {
- if (mCurrentState.bufferTransform == transform) return false;
- mCurrentState.bufferTransform = transform;
- mCurrentState.modified = true;
+ if (mDrawingState.bufferTransform == transform) return false;
+ mDrawingState.bufferTransform = transform;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setTransformToDisplayInverse(bool transformToDisplayInverse) {
- if (mCurrentState.transformToDisplayInverse == transformToDisplayInverse) return false;
- mCurrentState.sequence++;
- mCurrentState.transformToDisplayInverse = transformToDisplayInverse;
- mCurrentState.modified = true;
+ if (mDrawingState.transformToDisplayInverse == transformToDisplayInverse) return false;
+ mDrawingState.sequence++;
+ mDrawingState.transformToDisplayInverse = transformToDisplayInverse;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setCrop(const Rect& crop) {
- if (mCurrentState.crop == crop) return false;
- mCurrentState.sequence++;
- mCurrentState.crop = crop;
+ if (mDrawingState.crop == crop) return false;
+ mDrawingState.sequence++;
+ mDrawingState.crop = crop;
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setBufferCrop(const Rect& bufferCrop) {
- if (mCurrentState.bufferCrop == bufferCrop) return false;
+ if (mDrawingState.bufferCrop == bufferCrop) return false;
- mCurrentState.sequence++;
- mCurrentState.bufferCrop = bufferCrop;
+ mDrawingState.sequence++;
+ mDrawingState.bufferCrop = bufferCrop;
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setDestinationFrame(const Rect& destinationFrame) {
- if (mCurrentState.destinationFrame == destinationFrame) return false;
+ if (mDrawingState.destinationFrame == destinationFrame) return false;
- mCurrentState.sequence++;
- mCurrentState.destinationFrame = destinationFrame;
+ mDrawingState.sequence++;
+ mDrawingState.destinationFrame = destinationFrame;
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
+static bool assignTransform(ui::Transform* dst, ui::Transform& from) {
+ if (*dst == from) {
+ return false;
+ }
+ *dst = from;
+ return true;
+}
+
// Translate destination frame into scale and position. If a destination frame is not set, use the
// provided scale and position
-void BufferStateLayer::updateGeometry() {
- if (mCurrentState.destinationFrame.isEmpty()) {
+bool BufferStateLayer::updateGeometry() {
+ if (mDrawingState.destinationFrame.isEmpty()) {
// If destination frame is not set, use the requested transform set via
// BufferStateLayer::setPosition and BufferStateLayer::setMatrix.
- mCurrentState.transform = mRequestedTransform;
- return;
+ return assignTransform(&mDrawingState.transform, mRequestedTransform);
}
- Rect destRect = mCurrentState.destinationFrame;
+ Rect destRect = mDrawingState.destinationFrame;
int32_t destW = destRect.width();
int32_t destH = destRect.height();
if (destRect.left < 0) {
@@ -331,21 +343,20 @@
destRect.bottom = destH;
}
- if (!mCurrentState.buffer) {
+ if (!mDrawingState.buffer) {
ui::Transform t;
t.set(destRect.left, destRect.top);
- mCurrentState.transform = t;
- return;
+ return assignTransform(&mDrawingState.transform, t);
}
- uint32_t bufferWidth = mCurrentState.buffer->getBuffer()->getWidth();
- uint32_t bufferHeight = mCurrentState.buffer->getBuffer()->getHeight();
+ uint32_t bufferWidth = mDrawingState.buffer->getBuffer()->getWidth();
+ uint32_t bufferHeight = mDrawingState.buffer->getBuffer()->getHeight();
// Undo any transformations on the buffer.
- if (mCurrentState.bufferTransform & ui::Transform::ROT_90) {
+ if (mDrawingState.bufferTransform & ui::Transform::ROT_90) {
std::swap(bufferWidth, bufferHeight);
}
uint32_t invTransform = DisplayDevice::getPrimaryDisplayRotationFlags();
- if (mCurrentState.transformToDisplayInverse) {
+ if (mDrawingState.transformToDisplayInverse) {
if (invTransform & ui::Transform::ROT_90) {
std::swap(bufferWidth, bufferHeight);
}
@@ -356,8 +367,7 @@
ui::Transform t;
t.set(sx, 0, 0, sy);
t.set(destRect.left, destRect.top);
- mCurrentState.transform = t;
- return;
+ return assignTransform(&mDrawingState.transform, t);
}
bool BufferStateLayer::setMatrix(const layer_state_t::matrix22_t& matrix,
@@ -378,8 +388,8 @@
mRequestedTransform.set(matrix.dsdx, matrix.dtdy, matrix.dtdx, matrix.dsdy);
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
@@ -392,8 +402,8 @@
mRequestedTransform.set(x, y);
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
@@ -405,7 +415,7 @@
mAcquireTimeline.updateSignalTimes();
std::shared_ptr<FenceTime> acquireFenceTime =
std::make_shared<FenceTime>((acquireFence ? acquireFence : Fence::NO_FENCE));
- NewFrameEventsEntry newTimestamps = {mCurrentState.frameNumber, postedTime, desiredPresentTime,
+ NewFrameEventsEntry newTimestamps = {mDrawingState.frameNumber, postedTime, desiredPresentTime,
acquireFenceTime};
mFrameEventHistory.setProducerWantsEvents();
mFrameEventHistory.addQueue(newTimestamps);
@@ -420,37 +430,39 @@
const sp<ITransactionCompletedListener>& releaseBufferListener) {
ATRACE_CALL();
- if (mCurrentState.buffer) {
+ if (mDrawingState.buffer) {
mReleasePreviousBuffer = true;
- if (!mDrawingState.buffer ||
- mCurrentState.buffer->getBuffer() != mDrawingState.buffer->getBuffer()) {
- // If mCurrentState has a buffer, and we are about to update again
+ if (mDrawingState.buffer != mBufferInfo.mBuffer) {
+ // If mDrawingState has a buffer, and we are about to update again
// before swapping to drawing state, then the first buffer will be
// dropped and we should decrement the pending buffer count and
// call any release buffer callbacks if set.
- callReleaseBufferCallback(mCurrentState.releaseBufferListener,
- mCurrentState.buffer->getBuffer(),
- mCurrentState.acquireFence,
- mTransformHint);
+ callReleaseBufferCallback(mDrawingState.releaseBufferListener,
+ mDrawingState.buffer->getBuffer(), mDrawingState.acquireFence,
+ mTransformHint,
+ mFlinger->getMaxAcquiredBufferCountForCurrentRefreshRate(
+ mOwnerUid));
decrementPendingBufferCount();
- if (mCurrentState.bufferSurfaceFrameTX != nullptr) {
- addSurfaceFrameDroppedForBuffer(mCurrentState.bufferSurfaceFrameTX);
- mCurrentState.bufferSurfaceFrameTX.reset();
+ if (mDrawingState.bufferSurfaceFrameTX != nullptr &&
+ mDrawingState.bufferSurfaceFrameTX->getPresentState() != PresentState::Presented) {
+ addSurfaceFrameDroppedForBuffer(mDrawingState.bufferSurfaceFrameTX);
+ mDrawingState.bufferSurfaceFrameTX.reset();
}
}
}
- mCurrentState.frameNumber = frameNumber;
- mCurrentState.releaseBufferListener = releaseBufferListener;
- mCurrentState.buffer = buffer;
- mCurrentState.clientCacheId = clientCacheId;
- mCurrentState.modified = true;
+
+ mDrawingState.frameNumber = frameNumber;
+ mDrawingState.releaseBufferListener = releaseBufferListener;
+ mDrawingState.buffer = buffer;
+ mDrawingState.clientCacheId = clientCacheId;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
const int32_t layerId = getSequence();
- mFlinger->mTimeStats->setPostTime(layerId, mCurrentState.frameNumber, getName().c_str(),
+ mFlinger->mTimeStats->setPostTime(layerId, mDrawingState.frameNumber, getName().c_str(),
mOwnerUid, postTime, getGameMode());
- mCurrentState.desiredPresentTime = desiredPresentTime;
- mCurrentState.isAutoTimestamp = isAutoTimestamp;
+ mDrawingState.desiredPresentTime = desiredPresentTime;
+ mDrawingState.isAutoTimestamp = isAutoTimestamp;
const nsecs_t presentTime = [&] {
if (!isAutoTimestamp) return desiredPresentTime;
@@ -477,59 +489,59 @@
FrameTracer::FrameEvent::QUEUE);
}
- mCurrentState.width = mCurrentState.buffer->getBuffer()->getWidth();
- mCurrentState.height = mCurrentState.buffer->getBuffer()->getHeight();
+ mDrawingState.width = mDrawingState.buffer->getBuffer()->getWidth();
+ mDrawingState.height = mDrawingState.buffer->getBuffer()->getHeight();
return true;
}
bool BufferStateLayer::setAcquireFence(const sp<Fence>& fence) {
- mCurrentState.acquireFence = fence;
- mCurrentState.acquireFenceTime = std::make_unique<FenceTime>(fence);
+ mDrawingState.acquireFence = fence;
+ mDrawingState.acquireFenceTime = std::make_unique<FenceTime>(fence);
// The acquire fences of BufferStateLayers have already signaled before they are set
- mCallbackHandleAcquireTime = mCurrentState.acquireFenceTime->getSignalTime();
+ mCallbackHandleAcquireTime = mDrawingState.acquireFenceTime->getSignalTime();
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setDataspace(ui::Dataspace dataspace) {
- if (mCurrentState.dataspace == dataspace) return false;
- mCurrentState.dataspace = dataspace;
- mCurrentState.modified = true;
+ if (mDrawingState.dataspace == dataspace) return false;
+ mDrawingState.dataspace = dataspace;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setHdrMetadata(const HdrMetadata& hdrMetadata) {
- if (mCurrentState.hdrMetadata == hdrMetadata) return false;
- mCurrentState.hdrMetadata = hdrMetadata;
- mCurrentState.modified = true;
+ if (mDrawingState.hdrMetadata == hdrMetadata) return false;
+ mDrawingState.hdrMetadata = hdrMetadata;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setSurfaceDamageRegion(const Region& surfaceDamage) {
- mCurrentState.surfaceDamageRegion = surfaceDamage;
- mCurrentState.modified = true;
+ mDrawingState.surfaceDamageRegion = surfaceDamage;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setApi(int32_t api) {
- if (mCurrentState.api == api) return false;
- mCurrentState.api = api;
- mCurrentState.modified = true;
+ if (mDrawingState.api == api) return false;
+ mDrawingState.api = api;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool BufferStateLayer::setSidebandStream(const sp<NativeHandle>& sidebandStream) {
- if (mCurrentState.sidebandStream == sidebandStream) return false;
- mCurrentState.sidebandStream = sidebandStream;
- mCurrentState.modified = true;
+ if (mDrawingState.sidebandStream == sidebandStream) return false;
+ mDrawingState.sidebandStream = sidebandStream;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
if (!mSidebandStreamChanged.exchange(true)) {
@@ -557,14 +569,14 @@
if (willPresent) {
// If this transaction set an acquire fence on this layer, set its acquire time
handle->acquireTime = mCallbackHandleAcquireTime;
- handle->frameNumber = mCurrentState.frameNumber;
+ handle->frameNumber = mDrawingState.frameNumber;
// Notify the transaction completed thread that there is a pending latched callback
// handle
mFlinger->getTransactionCallbackInvoker().registerPendingCallbackHandle(handle);
// Store so latched time and release fence can be set
- mCurrentState.callbackHandles.push_back(handle);
+ mDrawingState.callbackHandles.push_back(handle);
} else { // If this layer will NOT need to be relatched and presented this frame
// Notify the transaction completed thread this handle is done
@@ -579,8 +591,8 @@
}
bool BufferStateLayer::setTransparentRegionHint(const Region& transparent) {
- mCurrentState.transparentRegionHint = transparent;
- mCurrentState.modified = true;
+ mDrawingState.transparentRegionHint = transparent;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -639,7 +651,7 @@
return true;
}
- return mCurrentState.isAutoTimestamp || mCurrentState.desiredPresentTime <= expectedPresentTime;
+ return mDrawingState.isAutoTimestamp || mDrawingState.desiredPresentTime <= expectedPresentTime;
}
bool BufferStateLayer::onPreComposition(nsecs_t refreshStartTime) {
@@ -668,7 +680,7 @@
* }
* Now imagine getHeadFrameNumber returned mDrawingState.mFrameNumber (or mCurrentFrameNumber).
* Prior to doTransaction SurfaceFlinger will call notifyAvailableFrames, but because we
- * haven't swapped mCurrentState to mDrawingState yet we will think the sync point
+ * haven't swapped mDrawingState to mDrawingState yet we will think the sync point
* is not ready. So we will return false from applyPendingState and not swap
* current state to drawing state. But because we don't swap current state
* to drawing state the number will never update and we will be stuck. This way
@@ -676,7 +688,7 @@
* to apply.
*/
uint64_t BufferStateLayer::getHeadFrameNumber(nsecs_t /* expectedPresentTime */) const {
- return mCurrentState.frameNumber;
+ return mDrawingState.frameNumber;
}
void BufferStateLayer::setAutoRefresh(bool autoRefresh) {
@@ -706,8 +718,8 @@
}
bool BufferStateLayer::hasFrameUpdate() const {
- const State& c(getCurrentState());
- return mCurrentStateModified && (c.buffer != nullptr || c.bgColorLayer != nullptr);
+ const State& c(getDrawingState());
+ return mDrawingStateModified && (c.buffer != nullptr || c.bgColorLayer != nullptr);
}
status_t BufferStateLayer::updateTexImage(bool& /*recomputeVisibleRegions*/, nsecs_t latchTime,
@@ -750,6 +762,7 @@
addSurfaceFramePresentedForBuffer(bufferSurfaceFrame,
mDrawingState.acquireFenceTime->getSignalTime(),
latchTime);
+ mDrawingState.bufferSurfaceFrameTX.reset();
}
std::deque<sp<CallbackHandle>> remainingHandles;
@@ -757,7 +770,7 @@
.finalizeOnCommitCallbackHandles(mDrawingState.callbackHandles, remainingHandles);
mDrawingState.callbackHandles = remainingHandles;
- mCurrentStateModified = false;
+ mDrawingStateModified = false;
return NO_ERROR;
}
@@ -951,7 +964,9 @@
// call any release buffer callbacks if set.
callReleaseBufferCallback(mDrawingState.releaseBufferListener,
mDrawingState.buffer->getBuffer(), mDrawingState.acquireFence,
- mTransformHint);
+ mTransformHint,
+ mFlinger->getMaxAcquiredBufferCountForCurrentRefreshRate(
+ mOwnerUid));
decrementPendingBufferCount();
}
}
diff --git a/services/surfaceflinger/BufferStateLayer.h b/services/surfaceflinger/BufferStateLayer.h
index 2e48452..2747018 100644
--- a/services/surfaceflinger/BufferStateLayer.h
+++ b/services/surfaceflinger/BufferStateLayer.h
@@ -47,10 +47,6 @@
bool isBufferDue(nsecs_t /*expectedPresentTime*/) const override { return true; }
- uint32_t doTransactionResize(uint32_t flags, Layer::State* /*stateToCommit*/) override {
- return flags;
- }
-
Region getActiveTransparentRegion(const Layer::State& s) const override {
return s.transparentRegionHint;
}
@@ -87,7 +83,7 @@
bool setBufferCrop(const Rect& bufferCrop) override;
bool setDestinationFrame(const Rect& destinationFrame) override;
- void updateGeometry() override;
+ bool updateGeometry() override;
// -----------------------------------------------------------------------
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/CompositionRefreshArgs.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/CompositionRefreshArgs.h
index 289cb11..29937fb 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/CompositionRefreshArgs.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/CompositionRefreshArgs.h
@@ -82,6 +82,9 @@
// The earliest time to send the present command to the HAL
std::chrono::steady_clock::time_point earliestPresentTime;
+
+ // The predicted next invalidation time
+ std::optional<std::chrono::steady_clock::time_point> nextInvalidateTime;
};
} // namespace android::compositionengine
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h
index 257974f..1416b1e 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h
@@ -286,7 +286,7 @@
virtual std::optional<base::unique_fd> composeSurfaces(
const Region&, const compositionengine::CompositionRefreshArgs& refreshArgs) = 0;
virtual void postFramebuffer() = 0;
- virtual void renderCachedSets() = 0;
+ virtual void renderCachedSets(const CompositionRefreshArgs&) = 0;
virtual void chooseCompositionStrategy() = 0;
virtual bool getSkipColorTransform() const = 0;
virtual FrameFences presentAndGetFrameFences() = 0;
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h
index f10ff25..f832084 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h
@@ -93,7 +93,7 @@
std::optional<base::unique_fd> composeSurfaces(
const Region&, const compositionengine::CompositionRefreshArgs& refreshArgs) override;
void postFramebuffer() override;
- void renderCachedSets() override;
+ void renderCachedSets(const CompositionRefreshArgs&) override;
void cacheClientCompositionRequests(uint32_t) override;
// Testing
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h
index a4356c5..7cb0f6b 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/CachedSet.h
@@ -98,6 +98,7 @@
mDrawFence = nullptr;
mBlurLayer = nullptr;
mHolePunchLayer = nullptr;
+ mSkipCount = 0;
mLayers.insert(mLayers.end(), other.mLayers.cbegin(), other.mLayers.cend());
Region boundingRegion;
@@ -107,6 +108,8 @@
mVisibleRegion.orSelf(other.mVisibleRegion);
}
void incrementAge() { ++mAge; }
+ void incrementSkipCount() { mSkipCount++; }
+ size_t getSkipCount() { return mSkipCount; }
// Renders the cached set with the supplied output composition state.
void render(renderengine::RenderEngine& re, TexturePool& texturePool,
@@ -155,6 +158,7 @@
Rect mBounds = Rect::EMPTY_RECT;
Region mVisibleRegion;
size_t mAge = 0;
+ size_t mSkipCount = 0;
// TODO(b/190411067): This is a shared pointer only because CachedSets are copied into different
// containers in the Flattener. Logically this should have unique ownership otherwise.
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Flattener.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Flattener.h
index 94a169e..7534548 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Flattener.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Flattener.h
@@ -20,6 +20,7 @@
#include <compositionengine/impl/planner/CachedSet.h>
#include <compositionengine/impl/planner/LayerState.h>
+#include <chrono>
#include <numeric>
#include <vector>
@@ -37,7 +38,35 @@
class Flattener {
public:
- Flattener(renderengine::RenderEngine& renderEngine, bool enableHolePunch = false);
+ struct CachedSetRenderSchedulingTunables {
+ // This default assumes that rendering a cached set takes about 3ms. That time is then cut
+ // in half - the next frame using the cached set would have the same workload, meaning that
+ // composition cost is the same. This is best illustrated with the following example:
+ //
+ // Suppose we're at a 120hz cadence so SurfaceFlinger is budgeted 8.3ms per-frame. If
+ // renderCachedSets costs 3ms, then two consecutive frames have timings:
+ //
+ // First frame: Start at 0ms, end at 6.8ms.
+ // renderCachedSets: Start at 6.8ms, end at 9.8ms.
+ // Second frame: Start at 9.8ms, end at 16.6ms.
+ //
+ // Now the second frame won't render a cached set afterwards, but the first frame didn't
+ // really steal time from the second frame.
+ static const constexpr std::chrono::nanoseconds kDefaultCachedSetRenderDuration = 1500us;
+
+ static const constexpr size_t kDefaultMaxDeferRenderAttempts = 240;
+
+ // Duration allocated for rendering a cached set. If we don't have enough time for rendering
+ // a cached set, then rendering is deferred to another frame.
+ const std::chrono::nanoseconds cachedSetRenderDuration;
+ // Maximum of times that we defer rendering a cached set. If we defer rendering a cached set
+ // too many times, then render it anyways so that future frames would benefit from the
+ // flattened cached set.
+ const size_t maxDeferRenderAttempts;
+ };
+ Flattener(renderengine::RenderEngine& renderEngine, bool enableHolePunch = false,
+ std::optional<CachedSetRenderSchedulingTunables> cachedSetRenderSchedulingTunables =
+ std::nullopt);
void setDisplaySize(ui::Size size) {
mDisplaySize = size;
@@ -48,16 +77,14 @@
std::chrono::steady_clock::time_point now);
// Renders the newest cached sets with the supplied output composition state
- void renderCachedSets(const OutputCompositionState& outputState);
+ void renderCachedSets(const OutputCompositionState& outputState,
+ std::optional<std::chrono::steady_clock::time_point> renderDeadline);
void dump(std::string& result) const;
void dumpLayers(std::string& result) const;
const std::optional<CachedSet>& getNewCachedSetForTesting() const { return mNewCachedSet; }
-protected:
- std::optional<CachedSet> mNewCachedSet;
-
private:
size_t calculateDisplayCost(const std::vector<const LayerState*>& layers) const;
@@ -149,9 +176,15 @@
renderengine::RenderEngine& mRenderEngine;
const bool mEnableHolePunch;
+ const std::optional<CachedSetRenderSchedulingTunables> mCachedSetRenderSchedulingTunables;
TexturePool mTexturePool;
+protected:
+ // mNewCachedSet must be destroyed before mTexturePool is.
+ std::optional<CachedSet> mNewCachedSet;
+
+private:
ui::Size mDisplaySize;
NonBufferHash mCurrentGeometry;
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Planner.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Planner.h
index fd1ddfc..be34153 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Planner.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Planner.h
@@ -58,8 +58,11 @@
void reportFinalPlan(
compositionengine::Output::OutputLayersEnumerator<compositionengine::Output>&& layers);
- // The planner will call to the Flattener to render any pending cached set
- void renderCachedSets(const OutputCompositionState& outputState);
+ // The planner will call to the Flattener to render any pending cached set.
+ // Rendering a pending cached set is optional: if the renderDeadline is not far enough in the
+ // future then the planner may opt to skip rendering the cached set.
+ void renderCachedSets(const OutputCompositionState& outputState,
+ std::optional<std::chrono::steady_clock::time_point> renderDeadline);
void dump(const Vector<String16>& args, std::string&);
diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h
index 4b4d375..8e777e3 100644
--- a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h
+++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h
@@ -109,7 +109,7 @@
MOCK_CONST_METHOD0(getSkipColorTransform, bool());
MOCK_METHOD0(postFramebuffer, void());
- MOCK_METHOD0(renderCachedSets, void());
+ MOCK_METHOD1(renderCachedSets, void(const CompositionRefreshArgs&));
MOCK_METHOD0(presentAndGetFrameFences, compositionengine::Output::FrameFences());
MOCK_METHOD3(generateClientCompositionRequests,
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index cd2f742..67bb149 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -434,7 +434,7 @@
devOptRepaintFlash(refreshArgs);
finishFrame(refreshArgs);
postFramebuffer();
- renderCachedSets();
+ renderCachedSets(refreshArgs);
}
void Output::rebuildLayerStacks(const compositionengine::CompositionRefreshArgs& refreshArgs,
@@ -1312,9 +1312,9 @@
mReleasedLayers.clear();
}
-void Output::renderCachedSets() {
+void Output::renderCachedSets(const CompositionRefreshArgs& refreshArgs) {
if (mPlanner) {
- mPlanner->renderCachedSets(getState());
+ mPlanner->renderCachedSets(getState(), refreshArgs.nextInvalidateTime);
}
}
diff --git a/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp b/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
index 68b6231..acc7ed2 100644
--- a/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/planner/CachedSet.cpp
@@ -277,6 +277,7 @@
mOutputSpace.orientation = outputState.framebufferSpace.orientation;
mOutputDataspace = outputDataspace;
mOrientation = orientation;
+ mSkipCount = 0;
} else {
mTexture.reset();
}
diff --git a/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp b/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp
index 192c411..2bcaf60 100644
--- a/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp
@@ -23,7 +23,7 @@
#include <compositionengine/impl/planner/Flattener.h>
#include <compositionengine/impl/planner/LayerState.h>
-#include <utils/Trace.h>
+#include <gui/TraceUtils.h>
using time_point = std::chrono::steady_clock::time_point;
using namespace std::chrono_literals;
@@ -60,9 +60,12 @@
} // namespace
-Flattener::Flattener(renderengine::RenderEngine& renderEngine, bool enableHolePunch)
+Flattener::Flattener(
+ renderengine::RenderEngine& renderEngine, bool enableHolePunch,
+ std::optional<CachedSetRenderSchedulingTunables> cachedSetRenderSchedulingTunables)
: mRenderEngine(renderEngine),
mEnableHolePunch(enableHolePunch),
+ mCachedSetRenderSchedulingTunables(cachedSetRenderSchedulingTunables),
mTexturePool(mRenderEngine) {
const int timeoutInMs =
base::GetIntProperty(std::string("debug.sf.layer_caching_active_layer_timeout_ms"), 0);
@@ -105,12 +108,45 @@
return hash;
}
-void Flattener::renderCachedSets(const OutputCompositionState& outputState) {
+void Flattener::renderCachedSets(
+ const OutputCompositionState& outputState,
+ std::optional<std::chrono::steady_clock::time_point> renderDeadline) {
ATRACE_CALL();
- if (!mNewCachedSet || mNewCachedSet->hasRenderedBuffer()) {
+
+ if (!mNewCachedSet) {
return;
}
+ // Ensure that a cached set has a valid buffer first
+ if (mNewCachedSet->hasRenderedBuffer()) {
+ ATRACE_NAME("mNewCachedSet->hasRenderedBuffer()");
+ return;
+ }
+
+ const auto now = std::chrono::steady_clock::now();
+
+ // If we have a render deadline, and the flattener is configured to skip rendering if we don't
+ // have enough time, then we skip rendering the cached set if we think that we'll steal too much
+ // time from the next frame.
+ if (renderDeadline && mCachedSetRenderSchedulingTunables) {
+ if (const auto estimatedRenderFinish =
+ now + mCachedSetRenderSchedulingTunables->cachedSetRenderDuration;
+ estimatedRenderFinish > *renderDeadline) {
+ mNewCachedSet->incrementSkipCount();
+
+ if (mNewCachedSet->getSkipCount() <=
+ mCachedSetRenderSchedulingTunables->maxDeferRenderAttempts) {
+ ATRACE_FORMAT("DeadlinePassed: exceeded deadline by: %d us",
+ std::chrono::duration_cast<std::chrono::microseconds>(
+ estimatedRenderFinish - *renderDeadline)
+ .count());
+ return;
+ } else {
+ ATRACE_NAME("DeadlinePassed: exceeded max skips");
+ }
+ }
+ }
+
mNewCachedSet->render(mRenderEngine, mTexturePool, outputState);
}
diff --git a/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp b/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp
index 711a634..be2510f 100644
--- a/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp
@@ -26,16 +26,43 @@
#include <compositionengine/impl/planner/Planner.h>
#include <utils/Trace.h>
+#include <chrono>
namespace android::compositionengine::impl::planner {
+namespace {
+
+std::optional<Flattener::CachedSetRenderSchedulingTunables> buildFlattenerTuneables() {
+ if (!base::GetBoolProperty(std::string("debug.sf.enable_cached_set_render_scheduling"), true)) {
+ return std::nullopt;
+ }
+
+ auto renderDuration = std::chrono::nanoseconds(
+ base::GetUintProperty<uint64_t>(std::string("debug.sf.cached_set_render_duration_ns"),
+ Flattener::CachedSetRenderSchedulingTunables::
+ kDefaultCachedSetRenderDuration.count()));
+
+ auto maxDeferRenderAttempts = base::GetUintProperty<
+ size_t>(std::string("debug.sf.cached_set_max_defer_render_attmpts"),
+ Flattener::CachedSetRenderSchedulingTunables::kDefaultMaxDeferRenderAttempts);
+
+ return std::make_optional<Flattener::CachedSetRenderSchedulingTunables>(
+ Flattener::CachedSetRenderSchedulingTunables{
+ .cachedSetRenderDuration = renderDuration,
+ .maxDeferRenderAttempts = maxDeferRenderAttempts,
+ });
+}
+
+} // namespace
+
Planner::Planner(renderengine::RenderEngine& renderEngine)
// Implicitly, layer caching must also be enabled for the hole punch or
// predictor to have any effect.
// E.g., setprop debug.sf.enable_layer_caching 1, or
// adb shell service call SurfaceFlinger 1040 i32 1 [i64 <display ID>]
: mFlattener(renderEngine,
- base::GetBoolProperty(std::string("debug.sf.enable_hole_punch_pip"), true)) {
+ base::GetBoolProperty(std::string("debug.sf.enable_hole_punch_pip"), true),
+ buildFlattenerTuneables()) {
mPredictorEnabled =
base::GetBoolProperty(std::string("debug.sf.enable_planner_prediction"), false);
}
@@ -161,9 +188,11 @@
finalPlan);
}
-void Planner::renderCachedSets(const OutputCompositionState& outputState) {
+void Planner::renderCachedSets(
+ const OutputCompositionState& outputState,
+ std::optional<std::chrono::steady_clock::time_point> renderDeadline) {
ATRACE_CALL();
- mFlattener.renderCachedSets(outputState);
+ mFlattener.renderCachedSets(outputState, renderDeadline);
}
void Planner::dump(const Vector<String16>& args, std::string& result) {
diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
index c381081..742b155 100644
--- a/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
+++ b/services/surfaceflinger/CompositionEngine/tests/OutputTest.cpp
@@ -1767,7 +1767,7 @@
MOCK_METHOD1(devOptRepaintFlash, void(const compositionengine::CompositionRefreshArgs&));
MOCK_METHOD1(finishFrame, void(const compositionengine::CompositionRefreshArgs&));
MOCK_METHOD0(postFramebuffer, void());
- MOCK_METHOD0(renderCachedSets, void());
+ MOCK_METHOD1(renderCachedSets, void(const compositionengine::CompositionRefreshArgs&));
};
StrictMock<OutputPartialMock> mOutput;
@@ -1787,7 +1787,7 @@
EXPECT_CALL(mOutput, devOptRepaintFlash(Ref(args)));
EXPECT_CALL(mOutput, finishFrame(Ref(args)));
EXPECT_CALL(mOutput, postFramebuffer());
- EXPECT_CALL(mOutput, renderCachedSets());
+ EXPECT_CALL(mOutput, renderCachedSets(Ref(args)));
mOutput.present(args);
}
diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp
index 4a76a95..0acc317 100644
--- a/services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp
+++ b/services/surfaceflinger/CompositionEngine/tests/planner/CachedSetTest.cpp
@@ -223,6 +223,16 @@
EXPECT_EQ(2u, cachedSet.getAge());
}
+TEST_F(CachedSetTest, incrementSkipCount) {
+ CachedSet::Layer& layer = *mTestLayers[0]->cachedSetLayer.get();
+ CachedSet cachedSet(layer);
+ EXPECT_EQ(0u, cachedSet.getSkipCount());
+ cachedSet.incrementSkipCount();
+ EXPECT_EQ(1u, cachedSet.getSkipCount());
+ cachedSet.incrementSkipCount();
+ EXPECT_EQ(2u, cachedSet.getSkipCount());
+}
+
TEST_F(CachedSetTest, hasBufferUpdate_NoUpdate) {
CachedSet::Layer& layer1 = *mTestLayers[0]->cachedSetLayer.get();
CachedSet::Layer& layer2 = *mTestLayers[1]->cachedSetLayer.get();
@@ -257,6 +267,8 @@
CachedSet cachedSet1(layer1);
CachedSet cachedSet2(layer2);
cachedSet1.addLayer(layer3.getState(), kStartTime + 10ms);
+ cachedSet1.incrementSkipCount();
+ EXPECT_EQ(1u, cachedSet1.getSkipCount());
cachedSet1.append(cachedSet2);
EXPECT_EQ(kStartTime, cachedSet1.getLastUpdate());
@@ -268,6 +280,8 @@
EXPECT_TRUE(cachedSet1.getVisibleRegion().hasSameRects(expectedRegion));
EXPECT_EQ(3u, cachedSet1.getLayerCount());
EXPECT_EQ(0u, cachedSet1.getAge());
+ EXPECT_EQ(0u, cachedSet1.getSkipCount());
+
expectNoBuffer(cachedSet1);
// TODO(b/181192080): check that getNonBufferHash returns the correct hash value
// EXPECT_EQ(android::hashCombine(layer1.getHash(), layer2.getHash()),
diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp
index e176c98..334b855 100644
--- a/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp
+++ b/services/surfaceflinger/CompositionEngine/tests/planner/FlattenerTest.cpp
@@ -24,6 +24,7 @@
#include <renderengine/ExternalTexture.h>
#include <renderengine/LayerSettings.h>
#include <renderengine/mock/RenderEngine.h>
+#include <chrono>
namespace android::compositionengine {
using namespace std::chrono_literals;
@@ -46,22 +47,28 @@
class TestableFlattener : public Flattener {
public:
- TestableFlattener(renderengine::RenderEngine& renderEngine, bool enableHolePunch)
- : Flattener(renderEngine, enableHolePunch) {}
+ TestableFlattener(renderengine::RenderEngine& renderEngine, bool enableHolePunch,
+ std::optional<Flattener::CachedSetRenderSchedulingTunables>
+ cachedSetRenderSchedulingTunables = std::nullopt)
+ : Flattener(renderEngine, enableHolePunch, cachedSetRenderSchedulingTunables) {}
const std::optional<CachedSet>& getNewCachedSetForTesting() const { return mNewCachedSet; }
};
class FlattenerTest : public testing::Test {
public:
- FlattenerTest() : mFlattener(std::make_unique<TestableFlattener>(mRenderEngine, true)) {}
+ FlattenerTest() : FlattenerTest(std::nullopt) {}
void SetUp() override;
protected:
+ FlattenerTest(std::optional<Flattener::CachedSetRenderSchedulingTunables>
+ cachedSetRenderSchedulingTunables)
+ : mFlattener(std::make_unique<TestableFlattener>(mRenderEngine, true,
+ cachedSetRenderSchedulingTunables)) {}
void initializeOverrideBuffer(const std::vector<const LayerState*>& layers);
void initializeFlattener(const std::vector<const LayerState*>& layers);
void expectAllLayersFlattened(const std::vector<const LayerState*>& layers);
- // mRenderEngine is held as a reference in mFlattener, so mFlattener must be destroyed first.
+ // mRenderEngine is held as a reference in mFlattener, so explicitly destroy mFlattener first.
renderengine::mock::RenderEngine mRenderEngine;
std::unique_ptr<TestableFlattener> mFlattener;
@@ -148,13 +155,13 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
// same geometry, update the internal layer stack
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
}
void FlattenerTest::expectAllLayersFlattened(const std::vector<const LayerState*>& layers) {
@@ -164,7 +171,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
for (const auto layer : layers) {
EXPECT_EQ(nullptr, layer->getOutputLayer()->getState().overrideInfo.buffer);
@@ -174,7 +181,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
const auto buffer = layers[0]->getOutputLayer()->getState().overrideInfo.buffer;
EXPECT_NE(nullptr, buffer);
@@ -209,7 +216,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
}
TEST_F(FlattenerTest, flattenLayers_basicFlatten) {
@@ -255,7 +262,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -360,7 +367,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_EQ(nullptr, overrideBuffer2);
@@ -397,7 +404,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_EQ(nullptr, overrideBuffer2);
@@ -406,7 +413,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_NE(nullptr, overrideBuffer2);
@@ -419,7 +426,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_NE(nullptr, overrideBuffer2);
@@ -428,7 +435,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -470,7 +477,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_EQ(nullptr, overrideBuffer2);
@@ -484,7 +491,7 @@
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
mOutputState.framebufferSpace.orientation = ui::ROTATION_90;
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -497,7 +504,7 @@
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
mOutputState.framebufferSpace.orientation = ui::ROTATION_180;
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -512,7 +519,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -524,7 +531,7 @@
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
mOutputState.framebufferSpace.orientation = ui::ROTATION_270;
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -563,7 +570,7 @@
// This will render a CachedSet.
EXPECT_CALL(mRenderEngine, drawLayers(_, _, _, _, _, _)).WillOnce(Return(NO_ERROR));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
// We've rendered a CachedSet, but we haven't merged it in.
EXPECT_EQ(nullptr, overrideBuffer1);
@@ -576,7 +583,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -625,7 +632,7 @@
// This will render a CachedSet.
EXPECT_CALL(mRenderEngine, drawLayers(_, _, _, _, _, _)).WillOnce(Return(NO_ERROR));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
// We've rendered a CachedSet, but we haven't merged it in.
EXPECT_EQ(nullptr, overrideBuffer1);
@@ -638,7 +645,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
@@ -682,7 +689,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
for (const auto layer : layers) {
EXPECT_EQ(nullptr, layer->getOutputLayer()->getState().overrideInfo.buffer);
@@ -692,7 +699,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer1, overrideBuffer2);
EXPECT_EQ(nullptr, overrideBuffer3);
@@ -726,7 +733,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
for (const auto layer : layers) {
EXPECT_EQ(nullptr, layer->getOutputLayer()->getState().overrideInfo.buffer);
@@ -737,7 +744,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
for (const auto layer : layers) {
EXPECT_EQ(nullptr, layer->getOutputLayer()->getState().overrideInfo.buffer);
}
@@ -778,7 +785,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
for (const auto layer : layers) {
EXPECT_EQ(nullptr, layer->getOutputLayer()->getState().overrideInfo.buffer);
@@ -788,7 +795,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_EQ(nullptr, blurOverrideBuffer);
EXPECT_NE(nullptr, overrideBuffer3);
@@ -825,7 +832,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
const auto& cachedSet = mFlattener->getNewCachedSetForTesting();
ASSERT_NE(std::nullopt, cachedSet);
@@ -839,7 +846,7 @@
initializeOverrideBuffer(layers);
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer2, overrideBuffer1);
EXPECT_EQ(nullptr, blurOverrideBuffer);
@@ -866,7 +873,7 @@
initializeOverrideBuffer(layers);
EXPECT_EQ(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_EQ(nullptr, overrideBuffer1);
EXPECT_EQ(nullptr, overrideBuffer2);
@@ -874,16 +881,61 @@
// Simulate attempting to render prior to merging the new cached set with the layer stack.
// Here we should not try to re-render.
EXPECT_CALL(mRenderEngine, drawLayers(_, _, _, _, _, _)).Times(0);
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
// We provide the override buffer now that it's rendered
EXPECT_NE(getNonBufferHash(layers),
mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
- mFlattener->renderCachedSets(mOutputState);
+ mFlattener->renderCachedSets(mOutputState, std::nullopt);
EXPECT_NE(nullptr, overrideBuffer1);
EXPECT_EQ(overrideBuffer2, overrideBuffer1);
}
+const constexpr std::chrono::nanoseconds kCachedSetRenderDuration = 0ms;
+const constexpr size_t kMaxDeferRenderAttempts = 2;
+
+class FlattenerRenderSchedulingTest : public FlattenerTest {
+public:
+ FlattenerRenderSchedulingTest()
+ : FlattenerTest(
+ Flattener::CachedSetRenderSchedulingTunables{.cachedSetRenderDuration =
+ kCachedSetRenderDuration,
+ .maxDeferRenderAttempts =
+ kMaxDeferRenderAttempts}) {
+ }
+};
+
+TEST_F(FlattenerRenderSchedulingTest, flattenLayers_renderCachedSets_defersUpToMaxAttempts) {
+ auto& layerState1 = mTestLayers[0]->layerState;
+ auto& layerState2 = mTestLayers[1]->layerState;
+
+ const std::vector<const LayerState*> layers = {
+ layerState1.get(),
+ layerState2.get(),
+ };
+
+ initializeFlattener(layers);
+
+ // Mark the layers inactive
+ mTime += 200ms;
+
+ initializeOverrideBuffer(layers);
+ EXPECT_EQ(getNonBufferHash(layers),
+ mFlattener->flattenLayers(layers, getNonBufferHash(layers), mTime));
+
+ for (size_t i = 0; i < kMaxDeferRenderAttempts; i++) {
+ EXPECT_CALL(mRenderEngine, drawLayers(_, _, _, _, _, _)).Times(0);
+ mFlattener->renderCachedSets(mOutputState,
+ std::chrono::steady_clock::now() -
+ (kCachedSetRenderDuration + 10ms));
+ }
+
+ EXPECT_CALL(mRenderEngine, drawLayers(_, _, _, _, _, _)).WillOnce(Return(NO_ERROR));
+ mFlattener->renderCachedSets(mOutputState,
+ std::chrono::steady_clock::now() -
+ (kCachedSetRenderDuration + 10ms));
+}
+
} // namespace
} // namespace android::compositionengine
diff --git a/services/surfaceflinger/EffectLayer.cpp b/services/surfaceflinger/EffectLayer.cpp
index 0cc5f33..86c6b21 100644
--- a/services/surfaceflinger/EffectLayer.cpp
+++ b/services/surfaceflinger/EffectLayer.cpp
@@ -78,28 +78,28 @@
}
bool EffectLayer::setColor(const half3& color) {
- if (mCurrentState.color.r == color.r && mCurrentState.color.g == color.g &&
- mCurrentState.color.b == color.b) {
+ if (mDrawingState.color.r == color.r && mDrawingState.color.g == color.g &&
+ mDrawingState.color.b == color.b) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.color.r = color.r;
- mCurrentState.color.g = color.g;
- mCurrentState.color.b = color.b;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.color.r = color.r;
+ mDrawingState.color.g = color.g;
+ mDrawingState.color.b = color.b;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool EffectLayer::setDataspace(ui::Dataspace dataspace) {
- if (mCurrentState.dataspace == dataspace) {
+ if (mDrawingState.dataspace == dataspace) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.dataspace = dataspace;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.dataspace = dataspace;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
diff --git a/services/surfaceflinger/FpsReporter.cpp b/services/surfaceflinger/FpsReporter.cpp
index 23db805..e12835f 100644
--- a/services/surfaceflinger/FpsReporter.cpp
+++ b/services/surfaceflinger/FpsReporter.cpp
@@ -55,7 +55,7 @@
std::vector<std::pair<TrackedListener, sp<Layer>>> listenersAndLayersToReport;
mFlinger.mCurrentState.traverse([&](Layer* layer) {
- auto& currentState = layer->getCurrentState();
+ auto& currentState = layer->getDrawingState();
if (currentState.metadata.has(METADATA_TASK_ID)) {
int32_t taskId = currentState.metadata.getInt32(METADATA_TASK_ID, 0);
if (seenTasks.count(taskId) == 0) {
@@ -100,4 +100,4 @@
mListeners.erase(wp<IBinder>(IInterface::asBinder(listener)));
}
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp b/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp
index 3523b56..c294ff2 100644
--- a/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp
+++ b/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp
@@ -693,6 +693,7 @@
actualSurfaceFrameStartEvent->set_gpu_composition(mGpuComposition);
actualSurfaceFrameStartEvent->set_jank_type(jankTypeBitmaskToProto(mJankType));
actualSurfaceFrameStartEvent->set_prediction_type(toProto(mPredictionState));
+ actualSurfaceFrameStartEvent->set_is_buffer(mIsBuffer);
});
// Actual timeline end
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index e50087f..6c9905e 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -98,52 +98,49 @@
if (args.flags & ISurfaceComposerClient::eSkipScreenshot)
layerFlags |= layer_state_t::eLayerSkipScreenshot;
- mCurrentState.active_legacy.w = args.w;
- mCurrentState.active_legacy.h = args.h;
- mCurrentState.flags = layerFlags;
- mCurrentState.active_legacy.transform.set(0, 0);
- mCurrentState.crop.makeInvalid();
- mCurrentState.requestedCrop = mCurrentState.crop;
- mCurrentState.z = 0;
- mCurrentState.color.a = 1.0f;
- mCurrentState.layerStack = 0;
- mCurrentState.sequence = 0;
- mCurrentState.requested_legacy = mCurrentState.active_legacy;
- mCurrentState.width = UINT32_MAX;
- mCurrentState.height = UINT32_MAX;
- mCurrentState.transform.set(0, 0);
- mCurrentState.frameNumber = 0;
- mCurrentState.bufferTransform = 0;
- mCurrentState.transformToDisplayInverse = false;
- mCurrentState.crop.makeInvalid();
- mCurrentState.acquireFence = sp<Fence>::make(-1);
- mCurrentState.acquireFenceTime = std::make_shared<FenceTime>(mCurrentState.acquireFence);
- mCurrentState.dataspace = ui::Dataspace::UNKNOWN;
- mCurrentState.hdrMetadata.validTypes = 0;
- mCurrentState.surfaceDamageRegion = Region::INVALID_REGION;
- mCurrentState.cornerRadius = 0.0f;
- mCurrentState.backgroundBlurRadius = 0;
- mCurrentState.api = -1;
- mCurrentState.hasColorTransform = false;
- mCurrentState.colorSpaceAgnostic = false;
- mCurrentState.frameRateSelectionPriority = PRIORITY_UNSET;
- mCurrentState.metadata = args.metadata;
- mCurrentState.shadowRadius = 0.f;
- mCurrentState.fixedTransformHint = ui::Transform::ROT_INVALID;
- mCurrentState.frameTimelineInfo = {};
- mCurrentState.postTime = -1;
- mCurrentState.destinationFrame.makeInvalid();
+ mDrawingState.active_legacy.w = args.w;
+ mDrawingState.active_legacy.h = args.h;
+ mDrawingState.flags = layerFlags;
+ mDrawingState.active_legacy.transform.set(0, 0);
+ mDrawingState.crop.makeInvalid();
+ mDrawingState.requestedCrop = mDrawingState.crop;
+ mDrawingState.z = 0;
+ mDrawingState.color.a = 1.0f;
+ mDrawingState.layerStack = 0;
+ mDrawingState.sequence = 0;
+ mDrawingState.requested_legacy = mDrawingState.active_legacy;
+ mDrawingState.width = UINT32_MAX;
+ mDrawingState.height = UINT32_MAX;
+ mDrawingState.transform.set(0, 0);
+ mDrawingState.frameNumber = 0;
+ mDrawingState.bufferTransform = 0;
+ mDrawingState.transformToDisplayInverse = false;
+ mDrawingState.crop.makeInvalid();
+ mDrawingState.acquireFence = sp<Fence>::make(-1);
+ mDrawingState.acquireFenceTime = std::make_shared<FenceTime>(mDrawingState.acquireFence);
+ mDrawingState.dataspace = ui::Dataspace::UNKNOWN;
+ mDrawingState.hdrMetadata.validTypes = 0;
+ mDrawingState.surfaceDamageRegion = Region::INVALID_REGION;
+ mDrawingState.cornerRadius = 0.0f;
+ mDrawingState.backgroundBlurRadius = 0;
+ mDrawingState.api = -1;
+ mDrawingState.hasColorTransform = false;
+ mDrawingState.colorSpaceAgnostic = false;
+ mDrawingState.frameRateSelectionPriority = PRIORITY_UNSET;
+ mDrawingState.metadata = args.metadata;
+ mDrawingState.shadowRadius = 0.f;
+ mDrawingState.fixedTransformHint = ui::Transform::ROT_INVALID;
+ mDrawingState.frameTimelineInfo = {};
+ mDrawingState.postTime = -1;
+ mDrawingState.destinationFrame.makeInvalid();
if (args.flags & ISurfaceComposerClient::eNoColorFill) {
// Set an invalid color so there is no color fill.
- mCurrentState.color.r = -1.0_hf;
- mCurrentState.color.g = -1.0_hf;
- mCurrentState.color.b = -1.0_hf;
+ mDrawingState.color.r = -1.0_hf;
+ mDrawingState.color.g = -1.0_hf;
+ mDrawingState.color.b = -1.0_hf;
}
- // drawing state & current state are identical
- mDrawingState = mCurrentState;
-
CompositorTiming compositorTiming;
args.flinger->getCompositorTiming(&compositorTiming);
mFrameEventHistory.initializeCompositorTiming(compositorTiming);
@@ -203,11 +200,11 @@
void Layer::onLayerDisplayed(const sp<Fence>& /*releaseFence*/) {}
void Layer::removeRelativeZ(const std::vector<Layer*>& layersInTree) {
- if (mCurrentState.zOrderRelativeOf == nullptr) {
+ if (mDrawingState.zOrderRelativeOf == nullptr) {
return;
}
- sp<Layer> strongRelative = mCurrentState.zOrderRelativeOf.promote();
+ sp<Layer> strongRelative = mDrawingState.zOrderRelativeOf.promote();
if (strongRelative == nullptr) {
setZOrderRelativeOf(nullptr);
return;
@@ -221,8 +218,8 @@
}
void Layer::removeFromCurrentState() {
- if (!mRemovedFromCurrentState) {
- mRemovedFromCurrentState = true;
+ if (!mRemovedFromDrawingState) {
+ mRemovedFromDrawingState = true;
mFlinger->mScheduler->deregisterLayer(this);
}
@@ -249,8 +246,8 @@
}
void Layer::addToCurrentState() {
- if (mRemovedFromCurrentState) {
- mRemovedFromCurrentState = false;
+ if (mRemovedFromDrawingState) {
+ mRemovedFromDrawingState = false;
mFlinger->mScheduler->registerLayer(this);
}
@@ -679,158 +676,41 @@
// transaction
// ----------------------------------------------------------------------------
-uint32_t Layer::doTransactionResize(uint32_t flags, State* stateToCommit) {
- const State& s(getDrawingState());
-
- const bool sizeChanged = (stateToCommit->requested_legacy.w != s.requested_legacy.w) ||
- (stateToCommit->requested_legacy.h != s.requested_legacy.h);
-
- if (sizeChanged) {
- // the size changed, we need to ask our client to request a new buffer
- ALOGD_IF(DEBUG_RESIZE,
- "doTransaction: geometry (layer=%p '%s'), tr=%02x, scalingMode=%d\n"
- " current={ active ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
- " requested={ wh={%4u,%4u} }}\n"
- " drawing={ active ={ wh={%4u,%4u} crop={%4d,%4d,%4d,%4d} (%4d,%4d) }\n"
- " requested={ wh={%4u,%4u} }}\n",
- this, getName().c_str(), getBufferTransform(), getEffectiveScalingMode(),
- stateToCommit->active_legacy.w, stateToCommit->active_legacy.h,
- stateToCommit->crop.left, stateToCommit->crop.top, stateToCommit->crop.right,
- stateToCommit->crop.bottom, stateToCommit->crop.getWidth(),
- stateToCommit->crop.getHeight(), stateToCommit->requested_legacy.w,
- stateToCommit->requested_legacy.h, s.active_legacy.w, s.active_legacy.h,
- s.crop.left, s.crop.top, s.crop.right, s.crop.bottom, s.crop.getWidth(),
- s.crop.getHeight(), s.requested_legacy.w, s.requested_legacy.h);
- }
-
- // Don't let Layer::doTransaction update the drawing state
- // if we have a pending resize, unless we are in fixed-size mode.
- // the drawing state will be updated only once we receive a buffer
- // with the correct size.
- //
- // In particular, we want to make sure the clip (which is part
- // of the geometry state) is latched together with the size but is
- // latched immediately when no resizing is involved.
- //
- // If a sideband stream is attached, however, we want to skip this
- // optimization so that transactions aren't missed when a buffer
- // never arrives
- //
- // In the case that we don't have a buffer we ignore other factors
- // and avoid entering the resizePending state. At a high level the
- // resizePending state is to avoid applying the state of the new buffer
- // to the old buffer. However in the state where we don't have an old buffer
- // there is no such concern but we may still be being used as a parent layer.
- const bool resizePending =
- ((stateToCommit->requested_legacy.w != stateToCommit->active_legacy.w) ||
- (stateToCommit->requested_legacy.h != stateToCommit->active_legacy.h)) &&
- (getBuffer() != nullptr);
- if (!isFixedSize()) {
- if (resizePending && mSidebandStream == nullptr) {
- flags |= eDontUpdateGeometryState;
- }
- }
-
- // Here we apply various requested geometry states, depending on our
- // latching configuration. See Layer.h for a detailed discussion of
- // how geometry latching is controlled.
- if (!(flags & eDontUpdateGeometryState)) {
- State& editCurrentState(getCurrentState());
-
- // There is an awkward asymmetry in the handling of the crop states in the position
- // states, as can be seen below. Largely this arises from position and transform
- // being stored in the same data structure while having different latching rules.
- // b/38182305
- //
- // Careful that "stateToCommit" and editCurrentState may not begin as equivalent due to
- // applyPendingStates in the presence of deferred transactions.
- editCurrentState.active_legacy = editCurrentState.requested_legacy;
- stateToCommit->active_legacy = stateToCommit->requested_legacy;
- }
-
- return flags;
-}
-
uint32_t Layer::doTransaction(uint32_t flags) {
ATRACE_CALL();
- if (mChildrenChanged) {
- flags |= eVisibleRegion;
- mChildrenChanged = false;
- }
-
// TODO: This is unfortunate.
- mCurrentStateModified = mCurrentState.modified;
- mCurrentState.modified = false;
-
- flags = doTransactionResize(flags, &mCurrentState);
+ mDrawingStateModified = mDrawingState.modified;
+ mDrawingState.modified = false;
const State& s(getDrawingState());
- State& c(getCurrentState());
- // Translates dest frame into scale and position updates. This helps align geometry calculations
- // for BufferStateLayer with other layers. This should ideally happen in the client once client
- // has the display orientation details from WM.
- updateGeometry();
-
- if (c.width != s.width || c.height != s.height || !(c.transform == s.transform)) {
+ if (updateGeometry()) {
// invalidate and recompute the visible regions if needed
flags |= Layer::eVisibleRegion;
}
- if (c.sequence != s.sequence) {
+ if (s.sequence != mLastCommittedTxSequence) {
// invalidate and recompute the visible regions if needed
+ mLastCommittedTxSequence = s.sequence;
flags |= eVisibleRegion;
this->contentDirty = true;
// we may use linear filtering, if the matrix scales us
- mNeedsFiltering = getActiveTransform(c).needsBilinearFiltering();
+ mNeedsFiltering = getActiveTransform(s).needsBilinearFiltering();
}
- if (mCurrentState.inputInfoChanged) {
+ if (mDrawingState.inputInfoChanged) {
flags |= eInputInfoChanged;
- mCurrentState.inputInfoChanged = false;
+ mDrawingState.inputInfoChanged = false;
}
- // Add the callbacks from the drawing state into the current state. This is so when the current
- // state gets copied to drawing, we don't lose the callback handles that are still in drawing.
- for (auto& handle : s.callbackHandles) {
- c.callbackHandles.push_back(handle);
- }
-
- // Allow BufferStateLayer to release any unlatched buffers in drawing state.
- bufferMayChange(c.buffer->getBuffer());
-
- // Commit the transaction
- commitTransaction(c);
- mCurrentState.callbackHandles = {};
+ commitTransaction(mDrawingState);
return flags;
}
-void Layer::commitTransaction(State& stateToCommit) {
- if (auto& bufferSurfaceFrame = mDrawingState.bufferSurfaceFrameTX;
- ((mDrawingState.buffer && stateToCommit.buffer &&
- mDrawingState.buffer->getBuffer() != stateToCommit.buffer->getBuffer()) ||
- (mDrawingState.buffer && !stateToCommit.buffer) ||
- (!mDrawingState.buffer && stateToCommit.buffer)) &&
- bufferSurfaceFrame != nullptr &&
- bufferSurfaceFrame->getPresentState() != PresentState::Presented) {
- // If the previous buffer was committed but not latched (refreshPending - happens during
- // back to back invalidates), it gets silently dropped here. Mark the corresponding
- // SurfaceFrame as dropped to prevent it from getting stuck in the pending classification
- // list.
- addSurfaceFrameDroppedForBuffer(bufferSurfaceFrame);
- }
- const bool frameRateVoteChanged =
- mDrawingState.frameRateForLayerTree != stateToCommit.frameRateForLayerTree;
- mDrawingState = stateToCommit;
-
- if (frameRateVoteChanged) {
- mFlinger->mScheduler->recordLayerHistory(this, systemTime(),
- LayerHistory::LayerUpdateType::SetFrameRate);
- }
-
+void Layer::commitTransaction(State&) {
// Set the present state for all bufferlessSurfaceFramesTX to Presented. The
// bufferSurfaceFrameTX will be presented in latchBuffer.
for (auto& [token, surfaceFrame] : mDrawingState.bufferlessSurfaceFramesTX) {
@@ -841,34 +721,25 @@
mFlinger->mFrameTimeline->addSurfaceFrame(surfaceFrame);
}
}
- // Clear the surfaceFrames from the old state now that it has been copied into DrawingState.
- stateToCommit.bufferSurfaceFrameTX.reset();
- stateToCommit.bufferlessSurfaceFramesTX.clear();
+ mDrawingState.bufferlessSurfaceFramesTX.clear();
}
uint32_t Layer::getTransactionFlags(uint32_t flags) {
- return mTransactionFlags.fetch_and(~flags) & flags;
+ auto ret = mTransactionFlags & flags;
+ mTransactionFlags &= ~flags;
+ return ret;
}
uint32_t Layer::setTransactionFlags(uint32_t flags) {
- return mTransactionFlags.fetch_or(flags);
+ return mTransactionFlags |= flags;
}
bool Layer::setPosition(float x, float y) {
- if (mCurrentState.transform.tx() == x && mCurrentState.transform.ty() == y) return false;
- mCurrentState.sequence++;
+ if (mDrawingState.transform.tx() == x && mDrawingState.transform.ty() == y) return false;
+ mDrawingState.sequence++;
+ mDrawingState.transform.set(x, y);
- // We update the requested and active position simultaneously because
- // we want to apply the position portion of the transform matrix immediately,
- // but still delay scaling when resizing a SCALING_MODE_FREEZE layer.
- mCurrentState.transform.set(x, y);
- // Here we directly update the active state
- // unlike other setters, because we store it within
- // the transform, but use different latching rules.
- // b/38182305
- mCurrentState.transform.set(x, y);
-
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -901,14 +772,14 @@
}
bool Layer::setLayer(int32_t z) {
- if (mCurrentState.z == z && !usingRelativeZ(LayerVector::StateSet::Current)) return false;
- mCurrentState.sequence++;
- mCurrentState.z = z;
- mCurrentState.modified = true;
+ if (mDrawingState.z == z && !usingRelativeZ(LayerVector::StateSet::Current)) return false;
+ mDrawingState.sequence++;
+ mDrawingState.z = z;
+ mDrawingState.modified = true;
// Discard all relative layering.
- if (mCurrentState.zOrderRelativeOf != nullptr) {
- sp<Layer> strongRelative = mCurrentState.zOrderRelativeOf.promote();
+ if (mDrawingState.zOrderRelativeOf != nullptr) {
+ sp<Layer> strongRelative = mDrawingState.zOrderRelativeOf.promote();
if (strongRelative != nullptr) {
strongRelative->removeZOrderRelative(this);
}
@@ -919,24 +790,24 @@
}
void Layer::removeZOrderRelative(const wp<Layer>& relative) {
- mCurrentState.zOrderRelatives.remove(relative);
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+ mDrawingState.zOrderRelatives.remove(relative);
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
}
void Layer::addZOrderRelative(const wp<Layer>& relative) {
- mCurrentState.zOrderRelatives.add(relative);
- mCurrentState.modified = true;
- mCurrentState.sequence++;
+ mDrawingState.zOrderRelatives.add(relative);
+ mDrawingState.modified = true;
+ mDrawingState.sequence++;
setTransactionFlags(eTransactionNeeded);
}
void Layer::setZOrderRelativeOf(const wp<Layer>& relativeOf) {
- mCurrentState.zOrderRelativeOf = relativeOf;
- mCurrentState.sequence++;
- mCurrentState.modified = true;
- mCurrentState.isRelativeOf = relativeOf != nullptr;
+ mDrawingState.zOrderRelativeOf = relativeOf;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
+ mDrawingState.isRelativeOf = relativeOf != nullptr;
setTransactionFlags(eTransactionNeeded);
}
@@ -951,16 +822,16 @@
return false;
}
- if (mCurrentState.z == relativeZ && usingRelativeZ(LayerVector::StateSet::Current) &&
- mCurrentState.zOrderRelativeOf == relative) {
+ if (mDrawingState.z == relativeZ && usingRelativeZ(LayerVector::StateSet::Current) &&
+ mDrawingState.zOrderRelativeOf == relative) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.modified = true;
- mCurrentState.z = relativeZ;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
+ mDrawingState.z = relativeZ;
- auto oldZOrderRelativeOf = mCurrentState.zOrderRelativeOf.promote();
+ auto oldZOrderRelativeOf = mDrawingState.zOrderRelativeOf.promote();
if (oldZOrderRelativeOf != nullptr) {
oldZOrderRelativeOf->removeZOrderRelative(this);
}
@@ -973,82 +844,82 @@
}
bool Layer::setSize(uint32_t w, uint32_t h) {
- if (mCurrentState.requested_legacy.w == w && mCurrentState.requested_legacy.h == h)
+ if (mDrawingState.requested_legacy.w == w && mDrawingState.requested_legacy.h == h)
return false;
- mCurrentState.requested_legacy.w = w;
- mCurrentState.requested_legacy.h = h;
- mCurrentState.modified = true;
+ mDrawingState.requested_legacy.w = w;
+ mDrawingState.requested_legacy.h = h;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
// record the new size, from this point on, when the client request
// a buffer, it'll get the new size.
- setDefaultBufferSize(mCurrentState.requested_legacy.w, mCurrentState.requested_legacy.h);
+ setDefaultBufferSize(mDrawingState.requested_legacy.w, mDrawingState.requested_legacy.h);
return true;
}
bool Layer::setAlpha(float alpha) {
- if (mCurrentState.color.a == alpha) return false;
- mCurrentState.sequence++;
- mCurrentState.color.a = alpha;
- mCurrentState.modified = true;
+ if (mDrawingState.color.a == alpha) return false;
+ mDrawingState.sequence++;
+ mDrawingState.color.a = alpha;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setBackgroundColor(const half3& color, float alpha, ui::Dataspace dataspace) {
- if (!mCurrentState.bgColorLayer && alpha == 0) {
+ if (!mDrawingState.bgColorLayer && alpha == 0) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
- if (!mCurrentState.bgColorLayer && alpha != 0) {
+ if (!mDrawingState.bgColorLayer && alpha != 0) {
// create background color layer if one does not yet exist
uint32_t flags = ISurfaceComposerClient::eFXSurfaceEffect;
std::string name = mName + "BackgroundColorLayer";
- mCurrentState.bgColorLayer = mFlinger->getFactory().createEffectLayer(
+ mDrawingState.bgColorLayer = mFlinger->getFactory().createEffectLayer(
LayerCreationArgs(mFlinger.get(), nullptr, std::move(name), 0, 0, flags,
LayerMetadata()));
// add to child list
- addChild(mCurrentState.bgColorLayer);
+ addChild(mDrawingState.bgColorLayer);
mFlinger->mLayersAdded = true;
// set up SF to handle added color layer
if (isRemovedFromCurrentState()) {
- mCurrentState.bgColorLayer->onRemovedFromCurrentState();
+ mDrawingState.bgColorLayer->onRemovedFromCurrentState();
}
mFlinger->setTransactionFlags(eTransactionNeeded);
- } else if (mCurrentState.bgColorLayer && alpha == 0) {
- mCurrentState.bgColorLayer->reparent(nullptr);
- mCurrentState.bgColorLayer = nullptr;
+ } else if (mDrawingState.bgColorLayer && alpha == 0) {
+ mDrawingState.bgColorLayer->reparent(nullptr);
+ mDrawingState.bgColorLayer = nullptr;
return true;
}
- mCurrentState.bgColorLayer->setColor(color);
- mCurrentState.bgColorLayer->setLayer(std::numeric_limits<int32_t>::min());
- mCurrentState.bgColorLayer->setAlpha(alpha);
- mCurrentState.bgColorLayer->setDataspace(dataspace);
+ mDrawingState.bgColorLayer->setColor(color);
+ mDrawingState.bgColorLayer->setLayer(std::numeric_limits<int32_t>::min());
+ mDrawingState.bgColorLayer->setAlpha(alpha);
+ mDrawingState.bgColorLayer->setDataspace(dataspace);
return true;
}
bool Layer::setCornerRadius(float cornerRadius) {
- if (mCurrentState.cornerRadius == cornerRadius) return false;
+ if (mDrawingState.cornerRadius == cornerRadius) return false;
- mCurrentState.sequence++;
- mCurrentState.cornerRadius = cornerRadius;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.cornerRadius = cornerRadius;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setBackgroundBlurRadius(int backgroundBlurRadius) {
- if (mCurrentState.backgroundBlurRadius == backgroundBlurRadius) return false;
+ if (mDrawingState.backgroundBlurRadius == backgroundBlurRadius) return false;
- mCurrentState.sequence++;
- mCurrentState.backgroundBlurRadius = backgroundBlurRadius;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.backgroundBlurRadius = backgroundBlurRadius;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -1063,81 +934,82 @@
"ROTATE_SURFACE_FLINGER ignored");
return false;
}
- mCurrentState.sequence++;
- mCurrentState.transform.set(matrix.dsdx, matrix.dtdy, matrix.dtdx, matrix.dsdy);
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.transform.set(matrix.dsdx, matrix.dtdy, matrix.dtdx, matrix.dsdy);
+ mDrawingState.modified = true;
+
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setTransparentRegionHint(const Region& transparent) {
- mCurrentState.requestedTransparentRegion_legacy = transparent;
- mCurrentState.modified = true;
+ mDrawingState.requestedTransparentRegion_legacy = transparent;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setBlurRegions(const std::vector<BlurRegion>& blurRegions) {
- mCurrentState.sequence++;
- mCurrentState.blurRegions = blurRegions;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.blurRegions = blurRegions;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setFlags(uint32_t flags, uint32_t mask) {
- const uint32_t newFlags = (mCurrentState.flags & ~mask) | (flags & mask);
- if (mCurrentState.flags == newFlags) return false;
- mCurrentState.sequence++;
- mCurrentState.flags = newFlags;
- mCurrentState.modified = true;
+ const uint32_t newFlags = (mDrawingState.flags & ~mask) | (flags & mask);
+ if (mDrawingState.flags == newFlags) return false;
+ mDrawingState.sequence++;
+ mDrawingState.flags = newFlags;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setCrop(const Rect& crop) {
- if (mCurrentState.requestedCrop == crop) return false;
- mCurrentState.sequence++;
- mCurrentState.requestedCrop = crop;
- mCurrentState.crop = crop;
+ if (mDrawingState.requestedCrop == crop) return false;
+ mDrawingState.sequence++;
+ mDrawingState.requestedCrop = crop;
+ mDrawingState.crop = crop;
- mCurrentState.modified = true;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setMetadata(const LayerMetadata& data) {
- if (!mCurrentState.metadata.merge(data, true /* eraseEmpty */)) return false;
- mCurrentState.modified = true;
+ if (!mDrawingState.metadata.merge(data, true /* eraseEmpty */)) return false;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setLayerStack(uint32_t layerStack) {
- if (mCurrentState.layerStack == layerStack) return false;
- mCurrentState.sequence++;
- mCurrentState.layerStack = layerStack;
- mCurrentState.modified = true;
+ if (mDrawingState.layerStack == layerStack) return false;
+ mDrawingState.sequence++;
+ mDrawingState.layerStack = layerStack;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setColorSpaceAgnostic(const bool agnostic) {
- if (mCurrentState.colorSpaceAgnostic == agnostic) {
+ if (mDrawingState.colorSpaceAgnostic == agnostic) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.colorSpaceAgnostic = agnostic;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.colorSpaceAgnostic = agnostic;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setFrameRateSelectionPriority(int32_t priority) {
- if (mCurrentState.frameRateSelectionPriority == priority) return false;
- mCurrentState.frameRateSelectionPriority = priority;
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+ if (mDrawingState.frameRateSelectionPriority == priority) return false;
+ mDrawingState.frameRateSelectionPriority = priority;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -1169,25 +1041,25 @@
}
bool Layer::setShadowRadius(float shadowRadius) {
- if (mCurrentState.shadowRadius == shadowRadius) {
+ if (mDrawingState.shadowRadius == shadowRadius) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.shadowRadius = shadowRadius;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.shadowRadius = shadowRadius;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
bool Layer::setFixedTransformHint(ui::Transform::RotationFlags fixedTransformHint) {
- if (mCurrentState.fixedTransformHint == fixedTransformHint) {
+ if (mDrawingState.fixedTransformHint == fixedTransformHint) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.fixedTransformHint = fixedTransformHint;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.fixedTransformHint = fixedTransformHint;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -1195,12 +1067,12 @@
bool Layer::setStretchEffect(const StretchEffect& effect) {
StretchEffect temp = effect;
temp.sanitize();
- if (mCurrentState.stretchEffect == temp) {
+ if (mDrawingState.stretchEffect == temp) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.stretchEffect = temp;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.stretchEffect = temp;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -1237,12 +1109,12 @@
int layersWithVote = 0;
traverseTree([&layersWithVote](Layer* layer) {
const auto layerVotedWithDefaultCompatibility =
- layer->mCurrentState.frameRate.rate.isValid() &&
- layer->mCurrentState.frameRate.type == FrameRateCompatibility::Default;
+ layer->mDrawingState.frameRate.rate.isValid() &&
+ layer->mDrawingState.frameRate.type == FrameRateCompatibility::Default;
const auto layerVotedWithNoVote =
- layer->mCurrentState.frameRate.type == FrameRateCompatibility::NoVote;
+ layer->mDrawingState.frameRate.type == FrameRateCompatibility::NoVote;
const auto layerVotedWithExactCompatibility =
- layer->mCurrentState.frameRate.type == FrameRateCompatibility::Exact;
+ layer->mDrawingState.frameRate.type == FrameRateCompatibility::Exact;
// We do not count layers that are ExactOrMultiple for the same reason
// we are allowing touch boost for those layers. See
@@ -1256,6 +1128,7 @@
// Now we can update the tree frame rate vote for each layer in the tree
const bool treeHasFrameRateVote = layersWithVote > 0;
bool transactionNeeded = false;
+
traverseTree([treeHasFrameRateVote, &transactionNeeded](Layer* layer) {
transactionNeeded = layer->updateFrameRateForLayerTree(treeHasFrameRateVote);
});
@@ -1269,13 +1142,13 @@
if (!mFlinger->useFrameRateApi) {
return false;
}
- if (mCurrentState.frameRate == frameRate) {
+ if (mDrawingState.frameRate == frameRate) {
return false;
}
- mCurrentState.sequence++;
- mCurrentState.frameRate = frameRate;
- mCurrentState.modified = true;
+ mDrawingState.sequence++;
+ mDrawingState.frameRate = frameRate;
+ mDrawingState.modified = true;
updateTreeHasFrameRateVote();
@@ -1285,33 +1158,33 @@
void Layer::setFrameTimelineVsyncForBufferTransaction(const FrameTimelineInfo& info,
nsecs_t postTime) {
- mCurrentState.postTime = postTime;
+ mDrawingState.postTime = postTime;
// Check if one of the bufferlessSurfaceFramesTX contains the same vsyncId. This can happen if
// there are two transactions with the same token, the first one without a buffer and the
// second one with a buffer. We promote the bufferlessSurfaceFrame to a bufferSurfaceFrameTX
// in that case.
- auto it = mCurrentState.bufferlessSurfaceFramesTX.find(info.vsyncId);
- if (it != mCurrentState.bufferlessSurfaceFramesTX.end()) {
+ auto it = mDrawingState.bufferlessSurfaceFramesTX.find(info.vsyncId);
+ if (it != mDrawingState.bufferlessSurfaceFramesTX.end()) {
// Promote the bufferlessSurfaceFrame to a bufferSurfaceFrameTX
- mCurrentState.bufferSurfaceFrameTX = it->second;
- mCurrentState.bufferlessSurfaceFramesTX.erase(it);
- mCurrentState.bufferSurfaceFrameTX->promoteToBuffer();
- mCurrentState.bufferSurfaceFrameTX->setActualQueueTime(postTime);
+ mDrawingState.bufferSurfaceFrameTX = it->second;
+ mDrawingState.bufferlessSurfaceFramesTX.erase(it);
+ mDrawingState.bufferSurfaceFrameTX->promoteToBuffer();
+ mDrawingState.bufferSurfaceFrameTX->setActualQueueTime(postTime);
} else {
- mCurrentState.bufferSurfaceFrameTX =
+ mDrawingState.bufferSurfaceFrameTX =
createSurfaceFrameForBuffer(info, postTime, mTransactionName);
}
}
void Layer::setFrameTimelineVsyncForBufferlessTransaction(const FrameTimelineInfo& info,
nsecs_t postTime) {
- mCurrentState.frameTimelineInfo = info;
- mCurrentState.postTime = postTime;
- mCurrentState.modified = true;
+ mDrawingState.frameTimelineInfo = info;
+ mDrawingState.postTime = postTime;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
- if (const auto& bufferSurfaceFrameTX = mCurrentState.bufferSurfaceFrameTX;
+ if (const auto& bufferSurfaceFrameTX = mDrawingState.bufferSurfaceFrameTX;
bufferSurfaceFrameTX != nullptr) {
if (bufferSurfaceFrameTX->getToken() == info.vsyncId) {
// BufferSurfaceFrame takes precedence over BufferlessSurfaceFrame. If the same token is
@@ -1322,10 +1195,10 @@
// For Transactions without a buffer, we create only one SurfaceFrame per vsyncId. If multiple
// transactions use the same vsyncId, we just treat them as one SurfaceFrame (unless they are
// targeting different vsyncs).
- auto it = mCurrentState.bufferlessSurfaceFramesTX.find(info.vsyncId);
- if (it == mCurrentState.bufferlessSurfaceFramesTX.end()) {
+ auto it = mDrawingState.bufferlessSurfaceFramesTX.find(info.vsyncId);
+ if (it == mDrawingState.bufferlessSurfaceFramesTX.end()) {
auto surfaceFrame = createSurfaceFrameForTransaction(info, postTime);
- mCurrentState.bufferlessSurfaceFramesTX[info.vsyncId] = surfaceFrame;
+ mDrawingState.bufferlessSurfaceFramesTX[info.vsyncId] = surfaceFrame;
} else {
if (it->second->getPresentState() == PresentState::Presented) {
// If the SurfaceFrame was already presented, its safe to overwrite it since it must
@@ -1387,36 +1260,41 @@
}
bool Layer::updateFrameRateForLayerTree(bool treeHasFrameRateVote) {
- const auto updateCurrentState = [&](FrameRate frameRate) {
- if (mCurrentState.frameRateForLayerTree == frameRate) {
+ const auto updateDrawingState = [&](FrameRate frameRate) {
+ if (mDrawingState.frameRateForLayerTree == frameRate) {
return false;
}
- mCurrentState.frameRateForLayerTree = frameRate;
- mCurrentState.sequence++;
- mCurrentState.modified = true;
+
+ mDrawingState.frameRateForLayerTree = frameRate;
+ mDrawingState.sequence++;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
+
+ mFlinger->mScheduler->recordLayerHistory(this, systemTime(),
+ LayerHistory::LayerUpdateType::SetFrameRate);
+
return true;
};
- const auto frameRate = mCurrentState.frameRate;
+ const auto frameRate = mDrawingState.frameRate;
if (frameRate.rate.isValid() || frameRate.type == FrameRateCompatibility::NoVote) {
- return updateCurrentState(frameRate);
+ return updateDrawingState(frameRate);
}
// This layer doesn't have a frame rate. Check if its ancestors have a vote
for (sp<Layer> parent = getParent(); parent; parent = parent->getParent()) {
- if (parent->mCurrentState.frameRate.rate.isValid()) {
- return updateCurrentState(parent->mCurrentState.frameRate);
+ if (parent->mDrawingState.frameRate.rate.isValid()) {
+ return updateDrawingState(parent->mDrawingState.frameRate);
}
}
// This layer and its ancestors don't have a frame rate. If one of successors
// has a vote, return a NoVote for successors to set the vote
if (treeHasFrameRateVote) {
- return updateCurrentState(FrameRate(Fps(0.0f), FrameRateCompatibility::NoVote));
+ return updateDrawingState(FrameRate(Fps(0.0f), FrameRateCompatibility::NoVote));
}
- return updateCurrentState(frameRate);
+ return updateDrawingState(frameRate);
}
Layer::FrameRate Layer::getFrameRateForLayerTree() const {
@@ -1668,7 +1546,7 @@
void Layer::setGameModeForTree(int parentGameMode) {
int gameMode = parentGameMode;
- auto& currentState = getCurrentState();
+ auto& currentState = getDrawingState();
if (currentState.metadata.has(METADATA_GAME_MODE)) {
gameMode = currentState.metadata.getInt32(METADATA_GAME_MODE, 0);
}
@@ -1679,7 +1557,7 @@
}
void Layer::addChild(const sp<Layer>& layer) {
- mChildrenChanged = true;
+ mFlinger->mSomeChildrenChanged = true;
setTransactionFlags(eTransactionNeeded);
mCurrentChildren.add(layer);
@@ -1689,7 +1567,7 @@
}
ssize_t Layer::removeChild(const sp<Layer>& layer) {
- mChildrenChanged = true;
+ mFlinger->mSomeChildrenChanged = true;
setTransactionFlags(eTransactionNeeded);
layer->setParent(nullptr);
@@ -1747,13 +1625,13 @@
bool Layer::setColorTransform(const mat4& matrix) {
static const mat4 identityMatrix = mat4();
- if (mCurrentState.colorTransform == matrix) {
+ if (mDrawingState.colorTransform == matrix) {
return false;
}
- ++mCurrentState.sequence;
- mCurrentState.colorTransform = matrix;
- mCurrentState.hasColorTransform = matrix != identityMatrix;
- mCurrentState.modified = true;
+ ++mDrawingState.sequence;
+ mDrawingState.colorTransform = matrix;
+ mDrawingState.hasColorTransform = matrix != identityMatrix;
+ mDrawingState.modified = true;
setTransactionFlags(eTransactionNeeded);
return true;
}
@@ -1785,15 +1663,13 @@
mCurrentParent = layer;
}
-int32_t Layer::getZ(LayerVector::StateSet stateSet) const {
- const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
- const State& state = useDrawing ? mDrawingState : mCurrentState;
- return state.z;
+int32_t Layer::getZ(LayerVector::StateSet) const {
+ return mDrawingState.z;
}
bool Layer::usingRelativeZ(LayerVector::StateSet stateSet) const {
const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
- const State& state = useDrawing ? mDrawingState : mCurrentState;
+ const State& state = useDrawing ? mDrawingState : mDrawingState;
return state.isRelativeOf;
}
@@ -1803,7 +1679,7 @@
"makeTraversalList received invalid stateSet");
const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
const LayerVector& children = useDrawing ? mDrawingChildren : mCurrentChildren;
- const State& state = useDrawing ? mDrawingState : mCurrentState;
+ const State& state = useDrawing ? mDrawingState : mDrawingState;
if (state.zOrderRelatives.size() == 0) {
*outSkipRelativeZUsers = true;
@@ -1902,7 +1778,7 @@
void Layer::traverse(LayerVector::StateSet state, const LayerVector::Visitor& visitor) {
visitor(this);
const LayerVector& children =
- state == LayerVector::StateSet::Drawing ? mDrawingChildren : mCurrentChildren;
+ state == LayerVector::StateSet::Drawing ? mDrawingChildren : mCurrentChildren;
for (const sp<Layer>& child : children) {
child->traverse(state, visitor);
}
@@ -1914,7 +1790,7 @@
"makeTraversalList received invalid stateSet");
const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
const LayerVector& children = useDrawing ? mDrawingChildren : mCurrentChildren;
- const State& state = useDrawing ? mDrawingState : mCurrentState;
+ const State& state = useDrawing ? mDrawingState : mDrawingState;
LayerVector traverse(stateSet);
for (const wp<Layer>& weakRelative : state.zOrderRelatives) {
@@ -1927,7 +1803,7 @@
}
for (const sp<Layer>& child : children) {
- const State& childState = useDrawing ? child->mDrawingState : child->mCurrentState;
+ const State& childState = useDrawing ? child->mDrawingState : child->mDrawingState;
// If a layer has a relativeOf layer, only ignore if the layer it's relative to is a
// descendent of the top most parent of the tree. If it's not a descendent, then just add
// the child here since it won't be added later as a relative.
@@ -1995,7 +1871,7 @@
}
ui::Transform::RotationFlags Layer::getFixedTransformHint() const {
- ui::Transform::RotationFlags fixedTransformHint = mCurrentState.fixedTransformHint;
+ ui::Transform::RotationFlags fixedTransformHint = mDrawingState.fixedTransformHint;
if (fixedTransformHint != ui::Transform::ROT_INVALID) {
return fixedTransformHint;
}
@@ -2018,7 +1894,7 @@
const std::vector<BlurRegion> Layer::getBlurRegions() const {
auto regionsCopy(getDrawingState().blurRegions);
- int layerAlpha = getAlpha();
+ float layerAlpha = getAlpha();
for (auto& region : regionsCopy) {
region.alpha = region.alpha * layerAlpha;
}
@@ -2107,10 +1983,10 @@
}
void Layer::setInputInfo(const InputWindowInfo& info) {
- mCurrentState.inputInfo = info;
- mCurrentState.touchableRegionCrop = extractLayerFromBinder(info.touchableRegionCropHandle);
- mCurrentState.modified = true;
- mCurrentState.inputInfoChanged = true;
+ mDrawingState.inputInfo = info;
+ mDrawingState.touchableRegionCrop = extractLayerFromBinder(info.touchableRegionCropHandle);
+ mDrawingState.modified = true;
+ mDrawingState.inputInfoChanged = true;
setTransactionFlags(eTransactionNeeded);
}
@@ -2188,7 +2064,7 @@
uint32_t traceFlags) {
const bool useDrawing = stateSet == LayerVector::StateSet::Drawing;
const LayerVector& children = useDrawing ? mDrawingChildren : mCurrentChildren;
- const State& state = useDrawing ? mDrawingState : mCurrentState;
+ const State& state = useDrawing ? mDrawingState : mDrawingState;
ui::Transform requestedTransform = state.transform;
@@ -2276,7 +2152,7 @@
}
bool Layer::isRemovedFromCurrentState() const {
- return mRemovedFromCurrentState;
+ return mRemovedFromDrawingState;
}
ui::Transform Layer::getInputTransform() const {
@@ -2382,6 +2258,16 @@
info.touchableRegion = inputTransform.transform(info.touchableRegion);
}
+void Layer::fillTouchOcclusionMode(InputWindowInfo& info) {
+ sp<Layer> p = this;
+ while (p != nullptr && !p->hasInputInfo()) {
+ p = p->mDrawingParent.promote();
+ }
+ if (p != nullptr) {
+ info.touchOcclusionMode = p->mDrawingState.inputInfo.touchOcclusionMode;
+ }
+}
+
InputWindowInfo Layer::fillInputInfo(const sp<DisplayDevice>& display) {
if (!hasInputInfo()) {
mDrawingState.inputInfo.name = getName();
@@ -2419,6 +2305,7 @@
// anything.
info.visible = hasInputInfo() ? canReceiveInput() : isVisible();
info.alpha = getAlpha();
+ fillTouchOcclusionMode(info);
auto cropLayer = mDrawingState.touchableRegionCrop.promote();
if (info.replaceTouchableRegionWithCrop) {
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index dde0031..84d6d3f 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -1,3 +1,4 @@
+
/*
* Copyright (C) 2007 The Android Open Source Project
*
@@ -732,8 +733,7 @@
void updateTransformHint(ui::Transform::RotationFlags);
inline const State& getDrawingState() const { return mDrawingState; }
- inline const State& getCurrentState() const { return mCurrentState; }
- inline State& getCurrentState() { return mCurrentState; }
+ inline State& getDrawingState() { return mDrawingState; }
LayerDebugInfo getLayerDebugInfo(const DisplayDevice*) const;
@@ -884,7 +884,7 @@
virtual bool setDestinationFrame(const Rect& /* destinationFrame */) { return false; }
virtual std::atomic<int32_t>* getPendingBufferCounter() { return nullptr; }
virtual std::string getPendingBufferCounterName() { return ""; }
- virtual void updateGeometry() {}
+ virtual bool updateGeometry() { return false; }
protected:
friend class impl::SurfaceInterceptor;
@@ -902,7 +902,6 @@
compositionengine::LayerFE::ClientCompositionTargetSettings&);
virtual void preparePerFrameCompositionState();
virtual void commitTransaction(State& stateToCommit);
- virtual uint32_t doTransactionResize(uint32_t flags, Layer::State* stateToCommit);
virtual void onSurfaceFrameCreated(const std::shared_ptr<frametimeline::SurfaceFrame>&) {}
// Returns mCurrentScaling mode (originating from the
@@ -958,9 +957,11 @@
// These are only accessed by the main thread or the tracing thread.
State mDrawingState;
- // these are protected by an external lock (mStateLock)
- State mCurrentState;
- std::atomic<uint32_t> mTransactionFlags{0};
+ uint32_t mTransactionFlags{0};
+ // Updated in doTransaction, used to track the last sequence number we
+ // committed. Currently this is really only used for updating visible
+ // regions.
+ int32_t mLastCommittedTxSequence = -1;
// Timestamp history for UIAutomation. Thread safe.
FrameTracker mFrameTracker;
@@ -983,7 +984,7 @@
// Whether filtering is needed b/c of the drawingstate
bool mNeedsFiltering{false};
- std::atomic<bool> mRemovedFromCurrentState{false};
+ std::atomic<bool> mRemovedFromDrawingState{false};
// page-flip thread (currently main thread)
bool mProtectedByApp{false}; // application requires protected path to external sink
@@ -996,17 +997,12 @@
// This layer can be a cursor on some displays.
bool mPotentialCursor{false};
- // Child list about to be committed/used for editing.
- LayerVector mCurrentChildren{LayerVector::StateSet::Current};
- // Child list used for rendering.
+ LayerVector mCurrentChildren{LayerVector::StateSet::Drawing};
LayerVector mDrawingChildren{LayerVector::StateSet::Drawing};
wp<Layer> mCurrentParent;
wp<Layer> mDrawingParent;
- // Can only be accessed with the SF state lock held.
- bool mChildrenChanged{false};
-
// Window types from WindowManager.LayoutParams
const InputWindowInfo::Type mWindowType;
@@ -1022,7 +1018,7 @@
// Used in buffer stuffing analysis in FrameTimeline.
nsecs_t mLastLatchTime = 0;
- mutable bool mCurrentStateModified = false;
+ mutable bool mDrawingStateModified = false;
private:
virtual void setTransformHint(ui::Transform::RotationFlags) {}
@@ -1057,6 +1053,10 @@
// null.
sp<Layer> getRootLayer();
+ // Fills in the touch occlusion mode of the first parent (including this layer) that
+ // hasInputInfo() or no-op if no such parent is found.
+ void fillTouchOcclusionMode(InputWindowInfo& info);
+
// Fills in the frame and transform info for the InputWindowInfo
void fillInputFrameInfo(InputWindowInfo& info, const ui::Transform& toPhysicalDisplay);
diff --git a/services/surfaceflinger/LayerVector.cpp b/services/surfaceflinger/LayerVector.cpp
index 9b94920..aee820a 100644
--- a/services/surfaceflinger/LayerVector.cpp
+++ b/services/surfaceflinger/LayerVector.cpp
@@ -42,10 +42,8 @@
const auto& l = *reinterpret_cast<const sp<Layer>*>(lhs);
const auto& r = *reinterpret_cast<const sp<Layer>*>(rhs);
- const auto& lState =
- (mStateSet == StateSet::Current) ? l->getCurrentState() : l->getDrawingState();
- const auto& rState =
- (mStateSet == StateSet::Current) ? r->getCurrentState() : r->getDrawingState();
+ const auto& lState = l->getDrawingState();
+ const auto& rState = r->getDrawingState();
uint32_t ls = lState.layerStack;
uint32_t rs = rState.layerStack;
@@ -66,8 +64,7 @@
void LayerVector::traverseInZOrder(StateSet stateSet, const Visitor& visitor) const {
for (size_t i = 0; i < size(); i++) {
const auto& layer = (*this)[i];
- auto& state = (stateSet == StateSet::Current) ? layer->getCurrentState()
- : layer->getDrawingState();
+ auto& state = layer->getDrawingState();
if (state.isRelativeOf) {
continue;
}
@@ -78,8 +75,7 @@
void LayerVector::traverseInReverseZOrder(StateSet stateSet, const Visitor& visitor) const {
for (auto i = static_cast<int64_t>(size()) - 1; i >= 0; i--) {
const auto& layer = (*this)[i];
- auto& state = (stateSet == StateSet::Current) ? layer->getCurrentState()
- : layer->getDrawingState();
+ auto& state = layer->getDrawingState();
if (state.isRelativeOf) {
continue;
}
diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp
index a9fd16c..663e62a 100644
--- a/services/surfaceflinger/RefreshRateOverlay.cpp
+++ b/services/surfaceflinger/RefreshRateOverlay.cpp
@@ -199,10 +199,10 @@
mLayer->setFrameRate(Layer::FrameRate(Fps(0.0f), Layer::FrameRateCompatibility::NoVote));
// setting Layer's Z requires resorting layersSortedByZ
- ssize_t idx = mFlinger.mCurrentState.layersSortedByZ.indexOf(mLayer);
+ ssize_t idx = mFlinger.mDrawingState.layersSortedByZ.indexOf(mLayer);
if (mLayer->setLayer(INT32_MAX - 2) && idx >= 0) {
- mFlinger.mCurrentState.layersSortedByZ.removeAt(idx);
- mFlinger.mCurrentState.layersSortedByZ.add(mLayer);
+ mFlinger.mDrawingState.layersSortedByZ.removeAt(idx);
+ mFlinger.mDrawingState.layersSortedByZ.add(mLayer);
}
return true;
diff --git a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
index b062acd..0eb16e2 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
+++ b/services/surfaceflinger/Scheduler/RefreshRateConfigs.cpp
@@ -190,6 +190,45 @@
RefreshRate RefreshRateConfigs::getBestRefreshRate(const std::vector<LayerRequirement>& layers,
const GlobalSignals& globalSignals,
GlobalSignals* outSignalsConsidered) const {
+ std::lock_guard lock(mLock);
+
+ if (auto cached = getCachedBestRefreshRate(layers, globalSignals, outSignalsConsidered)) {
+ return *cached;
+ }
+
+ GlobalSignals signalsConsidered;
+ RefreshRate result = getBestRefreshRateLocked(layers, globalSignals, &signalsConsidered);
+ lastBestRefreshRateInvocation.emplace(
+ GetBestRefreshRateInvocation{.layerRequirements = layers,
+ .globalSignals = globalSignals,
+ .outSignalsConsidered = signalsConsidered,
+ .resultingBestRefreshRate = result});
+ if (outSignalsConsidered) {
+ *outSignalsConsidered = signalsConsidered;
+ }
+ return result;
+}
+
+std::optional<RefreshRate> RefreshRateConfigs::getCachedBestRefreshRate(
+ const std::vector<LayerRequirement>& layers, const GlobalSignals& globalSignals,
+ GlobalSignals* outSignalsConsidered) const {
+ const bool sameAsLastCall = lastBestRefreshRateInvocation &&
+ lastBestRefreshRateInvocation->layerRequirements == layers &&
+ lastBestRefreshRateInvocation->globalSignals == globalSignals;
+
+ if (sameAsLastCall) {
+ if (outSignalsConsidered) {
+ *outSignalsConsidered = lastBestRefreshRateInvocation->outSignalsConsidered;
+ }
+ return lastBestRefreshRateInvocation->resultingBestRefreshRate;
+ }
+
+ return {};
+}
+
+RefreshRate RefreshRateConfigs::getBestRefreshRateLocked(
+ const std::vector<LayerRequirement>& layers, const GlobalSignals& globalSignals,
+ GlobalSignals* outSignalsConsidered) const {
ATRACE_CALL();
ALOGV("getBestRefreshRate %zu layers", layers.size());
@@ -206,8 +245,6 @@
}
};
- std::lock_guard lock(mLock);
-
int noVoteLayers = 0;
int minVoteLayers = 0;
int maxVoteLayers = 0;
@@ -385,7 +422,15 @@
// actually increase the refresh rate over the normal selection.
const RefreshRate& touchRefreshRate = getMaxRefreshRateByPolicyLocked();
- bool touchBoostForExplicitExact = explicitExact == 0 || mSupportsFrameRateOverride;
+ const bool touchBoostForExplicitExact = [&] {
+ if (mSupportsFrameRateOverride) {
+ // Enable touch boost if there are other layers besides exact
+ return explicitExact + noVoteLayers != layers.size();
+ } else {
+ // Enable touch boost if there are no exact layers
+ return explicitExact == 0;
+ }
+ }();
if (globalSignals.touch && explicitDefaultVoteLayers == 0 && touchBoostForExplicitExact &&
bestRefreshRate->fps.lessThanWithMargin(touchRefreshRate.fps)) {
setTouchConsidered();
@@ -592,6 +637,11 @@
void RefreshRateConfigs::setCurrentModeId(DisplayModeId modeId) {
std::lock_guard lock(mLock);
+
+ // Invalidate the cached invocation to getBestRefreshRate. This forces
+ // the refresh rate to be recomputed on the next call to getBestRefreshRate.
+ lastBestRefreshRateInvocation.reset();
+
mCurrentRefreshRate = mRefreshRates.at(modeId).get();
}
@@ -605,11 +655,16 @@
void RefreshRateConfigs::updateDisplayModes(const DisplayModes& modes,
DisplayModeId currentModeId) {
std::lock_guard lock(mLock);
+
// The current mode should be supported
LOG_ALWAYS_FATAL_IF(std::none_of(modes.begin(), modes.end(), [&](DisplayModePtr mode) {
return mode->getId() == currentModeId;
}));
+ // Invalidate the cached invocation to getBestRefreshRate. This forces
+ // the refresh rate to be recomputed on the next call to getBestRefreshRate.
+ lastBestRefreshRateInvocation.reset();
+
mRefreshRates.clear();
for (const auto& mode : modes) {
const auto modeId = mode->getId();
@@ -666,6 +721,7 @@
ALOGE("Invalid refresh rate policy: %s", policy.toString().c_str());
return BAD_VALUE;
}
+ lastBestRefreshRateInvocation.reset();
Policy previousPolicy = *getCurrentPolicyLocked();
mDisplayManagerPolicy = policy;
if (*getCurrentPolicyLocked() == previousPolicy) {
@@ -680,6 +736,7 @@
if (policy && !isPolicyValidLocked(*policy)) {
return BAD_VALUE;
}
+ lastBestRefreshRateInvocation.reset();
Policy previousPolicy = *getCurrentPolicyLocked();
mOverridePolicy = policy;
if (*getCurrentPolicyLocked() == previousPolicy) {
@@ -810,11 +867,6 @@
return RefreshRateConfigs::KernelIdleTimerAction::TurnOff;
}
if (minByPolicy == maxByPolicy) {
- // Do not sent the call to toggle off kernel idle timer if the device min and policy min and
- // max are all the same. This saves us extra unnecessary calls to sysprop.
- if (deviceMin == minByPolicy) {
- return RefreshRateConfigs::KernelIdleTimerAction::NoChange;
- }
return RefreshRateConfigs::KernelIdleTimerAction::TurnOff;
}
// Turn on the timer in all other cases.
diff --git a/services/surfaceflinger/Scheduler/RefreshRateConfigs.h b/services/surfaceflinger/Scheduler/RefreshRateConfigs.h
index ee89149..6cd0f42 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateConfigs.h
+++ b/services/surfaceflinger/Scheduler/RefreshRateConfigs.h
@@ -250,6 +250,10 @@
bool touch = false;
// True if the system hasn't seen any buffers posted to layers recently.
bool idle = false;
+
+ bool operator==(const GlobalSignals& other) const {
+ return touch == other.touch && idle == other.idle;
+ }
};
// Returns the refresh rate that fits best to the given layers.
@@ -314,7 +318,6 @@
// Class to enumerate options around toggling the kernel timer on and off. We have an option
// for no change to avoid extra calls to kernel.
enum class KernelIdleTimerAction {
- NoChange, // Do not change the idle timer.
TurnOff, // Turn off the idle timer.
TurnOn // Turn on the idle timer.
};
@@ -350,6 +353,15 @@
const std::function<bool(const RefreshRate&)>& shouldAddRefreshRate,
std::vector<const RefreshRate*>* outRefreshRates) REQUIRES(mLock);
+ std::optional<RefreshRate> getCachedBestRefreshRate(const std::vector<LayerRequirement>& layers,
+ const GlobalSignals& globalSignals,
+ GlobalSignals* outSignalsConsidered) const
+ REQUIRES(mLock);
+
+ RefreshRate getBestRefreshRateLocked(const std::vector<LayerRequirement>& layers,
+ const GlobalSignals& globalSignals,
+ GlobalSignals* outSignalsConsidered) const REQUIRES(mLock);
+
// Returns the refresh rate with the highest score in the collection specified from begin
// to end. If there are more than one with the same highest refresh rate, the first one is
// returned.
@@ -414,6 +426,15 @@
const bool mEnableFrameRateOverride;
bool mSupportsFrameRateOverride;
+
+ struct GetBestRefreshRateInvocation {
+ std::vector<LayerRequirement> layerRequirements;
+ GlobalSignals globalSignals;
+ GlobalSignals outSignalsConsidered;
+ RefreshRate resultingBestRefreshRate;
+ };
+ mutable std::optional<GetBestRefreshRateInvocation> lastBestRefreshRateInvocation
+ GUARDED_BY(mLock);
};
} // namespace android::scheduler
diff --git a/services/surfaceflinger/Scheduler/RefreshRateStats.h b/services/surfaceflinger/Scheduler/RefreshRateStats.h
index 80f4665..208a767 100644
--- a/services/surfaceflinger/Scheduler/RefreshRateStats.h
+++ b/services/surfaceflinger/Scheduler/RefreshRateStats.h
@@ -61,6 +61,7 @@
if (mCurrentRefreshRate.equalsWithMargin(currRefreshRate)) {
return;
}
+ mTimeStats.incrementRefreshRateSwitches();
flushTime();
mCurrentRefreshRate = currRefreshRate;
}
diff --git a/services/surfaceflinger/Scheduler/Scheduler.cpp b/services/surfaceflinger/Scheduler/Scheduler.cpp
index fac2c65..e0b3640 100644
--- a/services/surfaceflinger/Scheduler/Scheduler.cpp
+++ b/services/surfaceflinger/Scheduler/Scheduler.cpp
@@ -194,8 +194,6 @@
std::unique_ptr<LayerHistory> Scheduler::createLayerHistory(
const scheduler::RefreshRateConfigs& configs) {
- if (!configs.canSwitch()) return nullptr;
-
return std::make_unique<scheduler::LayerHistory>(configs);
}
@@ -207,6 +205,10 @@
}
std::optional<Fps> Scheduler::getFrameRateOverride(uid_t uid) const {
+ if (!mRefreshRateConfigs.supportsFrameRateOverride()) {
+ return std::nullopt;
+ }
+
std::lock_guard lock(mFrameRateOverridesMutex);
{
const auto iter = mFrameRateOverridesFromBackdoor.find(uid);
@@ -226,10 +228,6 @@
}
bool Scheduler::isVsyncValid(nsecs_t expectedVsyncTimestamp, uid_t uid) const {
- if (!mRefreshRateConfigs.supportsFrameRateOverride()) {
- return true;
- }
-
const auto frameRate = getFrameRateOverride(uid);
if (!frameRate.has_value()) {
return true;
@@ -579,8 +577,6 @@
}
void Scheduler::registerLayer(Layer* layer) {
- if (!mLayerHistory) return;
-
scheduler::LayerHistory::LayerVoteType voteType;
if (!mOptions.useContentDetection ||
@@ -600,26 +596,22 @@
}
void Scheduler::deregisterLayer(Layer* layer) {
- if (mLayerHistory) {
- mLayerHistory->deregisterLayer(layer);
- }
+ mLayerHistory->deregisterLayer(layer);
}
void Scheduler::recordLayerHistory(Layer* layer, nsecs_t presentTime,
LayerHistory::LayerUpdateType updateType) {
- if (mLayerHistory) {
+ if (mRefreshRateConfigs.canSwitch()) {
mLayerHistory->record(layer, presentTime, systemTime(), updateType);
}
}
void Scheduler::setModeChangePending(bool pending) {
- if (mLayerHistory) {
- mLayerHistory->setModeChangePending(pending);
- }
+ mLayerHistory->setModeChangePending(pending);
}
void Scheduler::chooseRefreshRateForContent() {
- if (!mLayerHistory) return;
+ if (!mRefreshRateConfigs.canSwitch()) return;
ATRACE_CALL();
@@ -630,9 +622,6 @@
bool frameRateOverridesChanged;
{
std::lock_guard<std::mutex> lock(mFeatureStateLock);
- if (mFeatures.contentRequirements == summary) {
- return;
- }
mFeatures.contentRequirements = summary;
newModeId = calculateRefreshRateModeId(&consideredSignals);
@@ -691,9 +680,7 @@
// Display Power event will boost the refresh rate to performance.
// Clear Layer History to get fresh FPS detection
- if (mLayerHistory) {
- mLayerHistory->clear();
- }
+ mLayerHistory->clear();
}
void Scheduler::kernelIdleTimerCallback(TimerState state) {
@@ -732,9 +719,7 @@
// NOTE: Instead of checking all the layers, we should be checking the layer
// that is currently on top. b/142507166 will give us this capability.
if (handleTimerStateChanged(&mFeatures.touch, touch)) {
- if (mLayerHistory) {
- mLayerHistory->clear();
- }
+ mLayerHistory->clear();
}
ATRACE_INT("TouchState", static_cast<int>(touch));
}
@@ -908,9 +893,7 @@
}
void Scheduler::onPrimaryDisplayAreaChanged(uint32_t displayArea) {
- if (mLayerHistory) {
- mLayerHistory->setDisplayArea(displayArea);
- }
+ mLayerHistory->setDisplayArea(displayArea);
}
void Scheduler::setPreferredRefreshRateForUid(FrameRateOverride frameRateOverride) {
diff --git a/services/surfaceflinger/Scheduler/Scheduler.h b/services/surfaceflinger/Scheduler/Scheduler.h
index 49d3d93..30a3253 100644
--- a/services/surfaceflinger/Scheduler/Scheduler.h
+++ b/services/surfaceflinger/Scheduler/Scheduler.h
@@ -268,7 +268,7 @@
VsyncSchedule mVsyncSchedule;
// Used to choose refresh rate if content detection is enabled.
- const std::unique_ptr<LayerHistory> mLayerHistory;
+ std::unique_ptr<LayerHistory> mLayerHistory;
// Timer that records time between requests for next vsync.
std::optional<scheduler::OneShotTimer> mIdleTimer;
diff --git a/services/surfaceflinger/Scheduler/VSyncPredictor.cpp b/services/surfaceflinger/Scheduler/VSyncPredictor.cpp
index 329e4a0..e9bd92a 100644
--- a/services/surfaceflinger/Scheduler/VSyncPredictor.cpp
+++ b/services/surfaceflinger/Scheduler/VSyncPredictor.cpp
@@ -69,7 +69,21 @@
auto const aValidTimestamp = mTimestamps[mLastTimestampIndex];
auto const percent = (timestamp - aValidTimestamp) % mIdealPeriod * kMaxPercent / mIdealPeriod;
- return percent < kOutlierTolerancePercent || percent > (kMaxPercent - kOutlierTolerancePercent);
+ if (percent >= kOutlierTolerancePercent &&
+ percent <= (kMaxPercent - kOutlierTolerancePercent)) {
+ return false;
+ }
+
+ const auto iter = std::min_element(mTimestamps.begin(), mTimestamps.end(),
+ [timestamp](nsecs_t a, nsecs_t b) {
+ return std::abs(timestamp - a) < std::abs(timestamp - b);
+ });
+ const auto distancePercent = std::abs(*iter - timestamp) * kMaxPercent / mIdealPeriod;
+ if (distancePercent < kOutlierTolerancePercent) {
+ // duplicate timestamp
+ return false;
+ }
+ return true;
}
nsecs_t VSyncPredictor::currentPeriod() const {
diff --git a/services/surfaceflinger/Scheduler/VsyncConfiguration.cpp b/services/surfaceflinger/Scheduler/VsyncConfiguration.cpp
index cb57aea..43e0297 100644
--- a/services/surfaceflinger/Scheduler/VsyncConfiguration.cpp
+++ b/services/surfaceflinger/Scheduler/VsyncConfiguration.cpp
@@ -59,7 +59,7 @@
}
void VsyncConfiguration::dump(std::string& result) const {
- const auto [early, earlyGpu, late] = getCurrentConfigs();
+ const auto [early, earlyGpu, late, hwcMinWorkDuration] = getCurrentConfigs();
using base::StringAppendF;
StringAppendF(&result,
" app phase: %9" PRId64 " ns\t SF phase: %9" PRId64
@@ -70,7 +70,8 @@
" early app duration: %9lld ns\t early SF duration: %9lld ns\n"
" GL early app phase: %9" PRId64 " ns\tGL early SF phase: %9" PRId64
" ns\n"
- " GL early app duration: %9lld ns\tGL early SF duration: %9lld ns\n",
+ " GL early app duration: %9lld ns\tGL early SF duration: %9lld ns\n"
+ " HWC min duration: %9lld ns\n",
late.appOffset, late.sfOffset,
late.appWorkDuration.count(), late.sfWorkDuration.count(),
@@ -81,7 +82,9 @@
earlyGpu.appOffset, earlyGpu.sfOffset,
- earlyGpu.appWorkDuration.count(), earlyGpu.sfWorkDuration.count());
+ earlyGpu.appWorkDuration.count(), earlyGpu.sfWorkDuration.count(),
+
+ hwcMinWorkDuration.count());
}
PhaseOffsets::PhaseOffsets(Fps currentRefreshRate)
@@ -103,7 +106,8 @@
// offset >= threshold, SF wake up (2 * vsync_duration - offset) before HW
// vsync.
getProperty("debug.sf.phase_offset_threshold_for_next_vsync_ns")
- .value_or(std::numeric_limits<nsecs_t>::max())) {}
+ .value_or(std::numeric_limits<nsecs_t>::max()),
+ getProperty("debug.sf.hwc.min.duration").value_or(0)) {}
PhaseOffsets::PhaseOffsets(Fps currentFps, nsecs_t vsyncPhaseOffsetNs, nsecs_t sfVSyncPhaseOffsetNs,
std::optional<nsecs_t> earlySfOffsetNs,
@@ -115,7 +119,7 @@
std::optional<nsecs_t> highFpsEarlyGpuSfOffsetNs,
std::optional<nsecs_t> highFpsEarlyAppOffsetNs,
std::optional<nsecs_t> highFpsEarlyGpuAppOffsetNs,
- nsecs_t thresholdForNextVsync)
+ nsecs_t thresholdForNextVsync, nsecs_t hwcMinWorkDuration)
: VsyncConfiguration(currentFps),
mVSyncPhaseOffsetNs(vsyncPhaseOffsetNs),
mSfVSyncPhaseOffsetNs(sfVSyncPhaseOffsetNs),
@@ -129,7 +133,8 @@
mHighFpsEarlyGpuSfOffsetNs(highFpsEarlyGpuSfOffsetNs),
mHighFpsEarlyAppOffsetNs(highFpsEarlyAppOffsetNs),
mHighFpsEarlyGpuAppOffsetNs(highFpsEarlyGpuAppOffsetNs),
- mThresholdForNextVsync(thresholdForNextVsync) {}
+ mThresholdForNextVsync(thresholdForNextVsync),
+ mHwcMinWorkDuration(hwcMinWorkDuration) {}
PhaseOffsets::VsyncConfigSet PhaseOffsets::constructOffsets(nsecs_t vsyncDuration) const {
if (vsyncDuration < std::chrono::nanoseconds(15ms).count()) {
@@ -189,6 +194,7 @@
.sfWorkDuration = sfOffsetToDuration(lateSfOffset, vsyncDuration),
.appWorkDuration =
appOffsetToDuration(lateAppOffset, lateSfOffset, vsyncDuration)},
+ .hwcMinWorkDuration = std::chrono::nanoseconds(mHwcMinWorkDuration),
};
}
@@ -234,6 +240,7 @@
.appWorkDuration =
appOffsetToDuration(lateAppOffset, lateSfOffset, vsyncDuration),
},
+ .hwcMinWorkDuration = std::chrono::nanoseconds(mHwcMinWorkDuration),
};
}
@@ -342,6 +349,7 @@
.sfWorkDuration = sfDuration,
.appWorkDuration = appDuration,
},
+ .hwcMinWorkDuration = std::chrono::nanoseconds(mHwcMinWorkDuration),
};
}
@@ -351,19 +359,22 @@
getProperty("debug.sf.early.sf.duration").value_or(mSfDuration),
getProperty("debug.sf.early.app.duration").value_or(mAppDuration),
getProperty("debug.sf.earlyGl.sf.duration").value_or(mSfDuration),
- getProperty("debug.sf.earlyGl.app.duration").value_or(mAppDuration)) {
+ getProperty("debug.sf.earlyGl.app.duration").value_or(mAppDuration),
+ getProperty("debug.sf.hwc.min.duration").value_or(0)) {
validateSysprops();
}
WorkDuration::WorkDuration(Fps currentRefreshRate, nsecs_t sfDuration, nsecs_t appDuration,
nsecs_t sfEarlyDuration, nsecs_t appEarlyDuration,
- nsecs_t sfEarlyGpuDuration, nsecs_t appEarlyGpuDuration)
+ nsecs_t sfEarlyGpuDuration, nsecs_t appEarlyGpuDuration,
+ nsecs_t hwcMinWorkDuration)
: VsyncConfiguration(currentRefreshRate),
mSfDuration(sfDuration),
mAppDuration(appDuration),
mSfEarlyDuration(sfEarlyDuration),
mAppEarlyDuration(appEarlyDuration),
mSfEarlyGpuDuration(sfEarlyGpuDuration),
- mAppEarlyGpuDuration(appEarlyGpuDuration) {}
+ mAppEarlyGpuDuration(appEarlyGpuDuration),
+ mHwcMinWorkDuration(hwcMinWorkDuration) {}
} // namespace android::scheduler::impl
diff --git a/services/surfaceflinger/Scheduler/VsyncConfiguration.h b/services/surfaceflinger/Scheduler/VsyncConfiguration.h
index d9d206d..3e53b3f 100644
--- a/services/surfaceflinger/Scheduler/VsyncConfiguration.h
+++ b/services/surfaceflinger/Scheduler/VsyncConfiguration.h
@@ -111,7 +111,8 @@
nsecs_t highFpsSfVSyncPhaseOffsetNs, std::optional<nsecs_t> highFpsEarlySfOffsetNs,
std::optional<nsecs_t> highFpsEarlyGpuSfOffsetNs,
std::optional<nsecs_t> highFpsEarlyAppOffsetNs,
- std::optional<nsecs_t> highFpsEarlyGpuAppOffsetNs, nsecs_t thresholdForNextVsync);
+ std::optional<nsecs_t> highFpsEarlyGpuAppOffsetNs, nsecs_t thresholdForNextVsync,
+ nsecs_t hwcMinWorkDuration);
private:
VsyncConfiguration::VsyncConfigSet constructOffsets(nsecs_t vsyncDuration) const override;
@@ -134,6 +135,7 @@
const std::optional<nsecs_t> mHighFpsEarlyGpuAppOffsetNs;
const nsecs_t mThresholdForNextVsync;
+ const nsecs_t mHwcMinWorkDuration;
};
/*
@@ -148,7 +150,8 @@
protected:
// Used for unit tests
WorkDuration(Fps currentFps, nsecs_t sfDuration, nsecs_t appDuration, nsecs_t sfEarlyDuration,
- nsecs_t appEarlyDuration, nsecs_t sfEarlyGpuDuration, nsecs_t appEarlyGpuDuration);
+ nsecs_t appEarlyDuration, nsecs_t sfEarlyGpuDuration, nsecs_t appEarlyGpuDuration,
+ nsecs_t hwcMinWorkDuration);
private:
VsyncConfiguration::VsyncConfigSet constructOffsets(nsecs_t vsyncDuration) const override;
@@ -161,6 +164,8 @@
const nsecs_t mSfEarlyGpuDuration;
const nsecs_t mAppEarlyGpuDuration;
+
+ const nsecs_t mHwcMinWorkDuration;
};
} // namespace impl
diff --git a/services/surfaceflinger/Scheduler/VsyncModulator.h b/services/surfaceflinger/Scheduler/VsyncModulator.h
index fcde279..9410768 100644
--- a/services/surfaceflinger/Scheduler/VsyncModulator.h
+++ b/services/surfaceflinger/Scheduler/VsyncModulator.h
@@ -69,9 +69,12 @@
VsyncConfig early; // Used for early transactions, and during refresh rate change.
VsyncConfig earlyGpu; // Used during GPU composition.
VsyncConfig late; // Default.
+ std::chrono::nanoseconds hwcMinWorkDuration; // Used for calculating the
+ // earliest present time
bool operator==(const VsyncConfigSet& other) const {
- return early == other.early && earlyGpu == other.earlyGpu && late == other.late;
+ return early == other.early && earlyGpu == other.earlyGpu && late == other.late &&
+ hwcMinWorkDuration == other.hwcMinWorkDuration;
}
bool operator!=(const VsyncConfigSet& other) const { return !(*this == other); }
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index db4e881..b99531b 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -63,6 +63,7 @@
#include <log/log.h>
#include <private/android_filesystem_config.h>
#include <private/gui/SyncFeatures.h>
+#include <processgroup/processgroup.h>
#include <renderengine/RenderEngine.h>
#include <sys/types.h>
#include <ui/ColorSpace.h>
@@ -785,6 +786,12 @@
? renderengine::RenderEngine::ContextPriority::REALTIME
: renderengine::RenderEngine::ContextPriority::MEDIUM)
.build()));
+
+ // Set SF main policy after initializing RenderEngine which has its own policy.
+ if (!SetTaskProfiles(0, {"SFMainPolicy"})) {
+ ALOGW("Failed to set main task profile");
+ }
+
mCompositionEngine->setTimeStats(mTimeStats);
mCompositionEngine->setHwComposer(getFactory().createHWComposer(mHwcServiceName));
mCompositionEngine->getHwComposer().setCallback(this);
@@ -1151,7 +1158,18 @@
// have been already updated with the upcoming active mode.
return;
}
- const Fps oldRefreshRate = display->getActiveMode()->getFps();
+
+ if (display->getActiveMode()->getSize() != upcomingMode->getSize()) {
+ auto& state = mCurrentState.displays.editValueFor(display->getDisplayToken());
+ // We need to generate new sequenceId in order to recreate the display (and this
+ // way the framebuffer).
+ state.sequenceId = DisplayDeviceState{}.sequenceId;
+ state.physical->activeMode = upcomingMode;
+ processDisplayChangesLocked();
+
+ // processDisplayChangesLocked will update all necessary components so we're done here.
+ return;
+ }
std::lock_guard<std::mutex> lock(mActiveModeLock);
mRefreshRateConfigs->setCurrentModeId(mUpcomingActiveMode.modeId);
@@ -1161,9 +1179,6 @@
mRefreshRateStats->setRefreshRate(refreshRate);
- if (!refreshRate.equalsWithMargin(oldRefreshRate)) {
- mTimeStats->incrementRefreshRateSwitches();
- }
updatePhaseConfiguration(refreshRate);
ATRACE_INT("ActiveConfigFPS", refreshRate.getValue());
@@ -2051,7 +2066,10 @@
std::chrono::milliseconds(mDebugRegion > 1 ? mDebugRegion : 0);
}
- refreshArgs.earliestPresentTime = mScheduler->getPreviousVsyncFrom(mExpectedPresentTime);
+ const auto prevVsyncTime = mScheduler->getPreviousVsyncFrom(mExpectedPresentTime);
+ const auto hwcMinWorkDuration = mVsyncConfiguration->getCurrentConfigs().hwcMinWorkDuration;
+ refreshArgs.earliestPresentTime = prevVsyncTime - hwcMinWorkDuration;
+ refreshArgs.nextInvalidateTime = mEventQueue->nextExpectedInvalidate();
mGeometryInvalid = false;
@@ -2213,18 +2231,15 @@
getBE().mDisplayTimeline.push(mPreviousPresentFences[0].fenceTime);
+ nsecs_t now = systemTime();
+
// Set presentation information before calling Layer::releasePendingBuffer, such that jank
// information from previous' frame classification is already available when sending jank info
// to clients, so they get jank classification as early as possible.
- mFrameTimeline->setSfPresent(systemTime(), mPreviousPresentFences[0].fenceTime,
+ mFrameTimeline->setSfPresent(/* sfPresentTime */ now, mPreviousPresentFences[0].fenceTime,
glCompositionDoneFenceTime);
- nsecs_t dequeueReadyTime = systemTime();
- for (const auto& layer : mLayersWithQueuedFrames) {
- layer->releasePendingBuffer(dequeueReadyTime);
- }
-
- const DisplayStatInfo stats = mScheduler->getDisplayStatInfo(systemTime());
+ const DisplayStatInfo stats = mScheduler->getDisplayStatInfo(now);
// We use the CompositionEngine::getLastFrameRefreshTimestamp() which might
// be sampled a little later than when we started doing work for this frame,
@@ -2237,14 +2252,15 @@
compositorTiming = getBE().mCompositorTiming;
}
- mDrawingState.traverse([&](Layer* layer) {
+ for (const auto& layer: mLayersWithQueuedFrames) {
const bool frameLatched =
layer->onPostComposition(display, glCompositionDoneFenceTime,
mPreviousPresentFences[0].fenceTime, compositorTiming);
+ layer->releasePendingBuffer(/*dequeueReadyTime*/ now);
if (frameLatched) {
recordBufferingStats(layer->getName(), layer->getOccupancyHistory(false));
}
- });
+ }
std::vector<std::pair<std::shared_ptr<compositionengine::Display>, sp<HdrLayerInfoReporter>>>
hdrInfoListeners;
@@ -2820,7 +2836,10 @@
mRefreshRateConfigs->updateDisplayModes(currentState.physical->supportedModes,
currentState.physical->activeMode->getId());
mVsyncConfiguration->reset();
- updatePhaseConfiguration(mRefreshRateConfigs->getCurrentRefreshRate().getFps());
+ const Fps refreshRate = currentState.physical->activeMode->getFps();
+ updatePhaseConfiguration(refreshRate);
+ mRefreshRateStats->setRefreshRate(refreshRate);
+
if (mRefreshRateOverlay) {
mRefreshRateOverlay->reset();
}
@@ -2923,6 +2942,11 @@
});
}
+ if (mSomeChildrenChanged) {
+ mVisibleRegionsDirty = true;
+ mSomeChildrenChanged = false;
+ }
+
// Update transform hint
if (transactionFlags & (eTransformHintUpdateNeeded | eDisplayTransactionNeeded)) {
// The transform hint might have changed for some layers
@@ -3181,6 +3205,7 @@
}
void SurfaceFlinger::commitTransaction() {
+ ATRACE_CALL();
commitTransactionLocked();
signalSynchronousTransactions(CountDownLatch::eSyncTransaction);
mAnimTransactionPending = false;
@@ -4448,10 +4473,11 @@
d.height = 0;
displays.add(d);
+ nsecs_t now = systemTime();
// It should be on the main thread, apply it directly.
applyTransactionState(FrameTimelineInfo{}, state, displays, 0, mInputWindowCommands,
- systemTime(), true, {}, systemTime(), true, false, {}, getpid(), getuid(),
- 0 /* Undefined transactionId */);
+ /* desiredPresentTime */ now, true, {}, /* postTime */ now, true, false,
+ {}, getpid(), getuid(), 0 /* Undefined transactionId */);
setPowerModeInternal(display, hal::PowerMode::ON);
const nsecs_t vsyncPeriod = mRefreshRateConfigs->getCurrentRefreshRate().getVsyncPeriod();
@@ -5230,7 +5256,7 @@
case CAPTURE_DISPLAY:
case SET_FRAME_TIMELINE_INFO:
case GET_GPU_CONTEXT_PRIORITY:
- case GET_EXTRA_BUFFER_COUNT: {
+ case GET_MAX_ACQUIRED_BUFFER_COUNT: {
// This is not sensitive information, so should not require permission control.
return OK;
}
@@ -5791,8 +5817,6 @@
mKernelIdleTimerEnabled = true;
}
break;
- case KernelIdleTimerAction::NoChange:
- break;
}
}
@@ -6031,12 +6055,12 @@
}
if (!canCaptureBlackoutContent &&
- parent->getCurrentState().flags & layer_state_t::eLayerSecure) {
+ parent->getDrawingState().flags & layer_state_t::eLayerSecure) {
ALOGW("Attempting to capture secure layer: PERMISSION_DENIED");
return PERMISSION_DENIED;
}
- Rect parentSourceBounds = parent->getCroppedBufferSize(parent->getCurrentState());
+ Rect parentSourceBounds = parent->getCroppedBufferSize(parent->getDrawingState());
if (args.sourceCrop.width() <= 0) {
crop.left = 0;
crop.right = parentSourceBounds.getWidth();
@@ -6275,7 +6299,7 @@
Region clearRegion = Region::INVALID_REGION;
bool disableBlurs = false;
traverseLayers([&](Layer* layer) {
- disableBlurs |= layer->getCurrentState().sidebandStream != nullptr;
+ disableBlurs |= layer->getDrawingState().sidebandStream != nullptr;
Region clip(renderArea.getBounds());
compositionengine::LayerFE::ClientCompositionTargetSettings targetSettings{
@@ -6783,25 +6807,38 @@
return getRenderEngine().getContextPriority();
}
-int SurfaceFlinger::calculateExtraBufferCount(Fps maxSupportedRefreshRate,
- std::chrono::nanoseconds presentLatency) {
- auto pipelineDepth = presentLatency.count() / maxSupportedRefreshRate.getPeriodNsecs();
- if (presentLatency.count() % maxSupportedRefreshRate.getPeriodNsecs()) {
+int SurfaceFlinger::calculateMaxAcquiredBufferCount(Fps refreshRate,
+ std::chrono::nanoseconds presentLatency) {
+ auto pipelineDepth = presentLatency.count() / refreshRate.getPeriodNsecs();
+ if (presentLatency.count() % refreshRate.getPeriodNsecs()) {
pipelineDepth++;
}
- return std::max(0ll, pipelineDepth - 2);
+ return std::max(1ll, pipelineDepth - 1);
}
-status_t SurfaceFlinger::getExtraBufferCount(int* extraBuffers) const {
+status_t SurfaceFlinger::getMaxAcquiredBufferCount(int* buffers) const {
const auto maxSupportedRefreshRate = mRefreshRateConfigs->getSupportedRefreshRateRange().max;
- const auto vsyncConfig =
- mVsyncConfiguration->getConfigsForRefreshRate(maxSupportedRefreshRate).late;
- const auto presentLatency = vsyncConfig.appWorkDuration + vsyncConfig.sfWorkDuration;
-
- *extraBuffers = calculateExtraBufferCount(maxSupportedRefreshRate, presentLatency);
+ *buffers = getMaxAcquiredBufferCountForRefreshRate(maxSupportedRefreshRate);
return NO_ERROR;
}
+int SurfaceFlinger::getMaxAcquiredBufferCountForCurrentRefreshRate(uid_t uid) const {
+ const auto refreshRate = [&] {
+ const auto frameRateOverride = mScheduler->getFrameRateOverride(uid);
+ if (frameRateOverride.has_value()) {
+ return frameRateOverride.value();
+ }
+ return mRefreshRateConfigs->getCurrentRefreshRate().getFps();
+ }();
+ return getMaxAcquiredBufferCountForRefreshRate(refreshRate);
+}
+
+int SurfaceFlinger::getMaxAcquiredBufferCountForRefreshRate(Fps refreshRate) const {
+ const auto vsyncConfig = mVsyncConfiguration->getConfigsForRefreshRate(refreshRate).late;
+ const auto presentLatency = vsyncConfig.appWorkDuration + vsyncConfig.sfWorkDuration;
+ return calculateMaxAcquiredBufferCount(refreshRate, presentLatency);
+}
+
void SurfaceFlinger::TransactionState::traverseStatesWithBuffers(
std::function<void(const layer_state_t&)> visitor) {
for (const auto& state : states) {
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index a3fa8d6..81f569a 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -708,7 +708,7 @@
int getGPUContextPriority() override;
- status_t getExtraBufferCount(int* extraBuffers) const override;
+ status_t getMaxAcquiredBufferCount(int* buffers) const override;
// Implements IBinder::DeathRecipient.
void binderDied(const wp<IBinder>& who) override;
@@ -923,6 +923,8 @@
size_t getMaxTextureSize() const;
size_t getMaxViewportDims() const;
+ int getMaxAcquiredBufferCountForCurrentRefreshRate(uid_t uid) const;
+
/*
* Display and layer stack management
*/
@@ -1062,6 +1064,7 @@
// Calculates the expected present time for this frame. For negative offsets, performs a
// correction using the predicted vsync for the next frame instead.
+
nsecs_t calculateExpectedPresentTime(DisplayStatInfo) const;
/*
@@ -1177,8 +1180,9 @@
std::vector<ui::ColorMode> getDisplayColorModes(PhysicalDisplayId displayId)
REQUIRES(mStateLock);
- static int calculateExtraBufferCount(Fps maxSupportedRefreshRate,
- std::chrono::nanoseconds presentLatency);
+ static int calculateMaxAcquiredBufferCount(Fps refreshRate,
+ std::chrono::nanoseconds presentLatency);
+ int getMaxAcquiredBufferCountForRefreshRate(Fps refreshRate) const;
sp<StartPropertySetThread> mStartPropertySetThread;
surfaceflinger::Factory& mFactory;
@@ -1224,8 +1228,13 @@
// don't need synchronization
State mDrawingState{LayerVector::StateSet::Drawing};
bool mVisibleRegionsDirty = false;
- // Set during transaction commit stage to track if the input info for a layer has changed.
+
+ // Set during transaction application stage to track if the input info or children
+ // for a layer has changed.
+ // TODO: Also move visibleRegions over to a boolean system.
bool mInputInfoChanged = false;
+ bool mSomeChildrenChanged;
+
bool mGeometryInvalid = false;
bool mAnimCompositionPending = false;
diff --git a/services/surfaceflinger/SurfaceInterceptor.cpp b/services/surfaceflinger/SurfaceInterceptor.cpp
index c5f1598..8ca241e 100644
--- a/services/surfaceflinger/SurfaceInterceptor.cpp
+++ b/services/surfaceflinger/SurfaceInterceptor.cpp
@@ -130,25 +130,25 @@
transaction->set_animation(layerFlags & BnSurfaceComposer::eAnimation);
const int32_t layerId(getLayerId(layer));
- addPositionLocked(transaction, layerId, layer->mCurrentState.transform.tx(),
- layer->mCurrentState.transform.ty());
- addDepthLocked(transaction, layerId, layer->mCurrentState.z);
- addAlphaLocked(transaction, layerId, layer->mCurrentState.color.a);
+ addPositionLocked(transaction, layerId, layer->mDrawingState.transform.tx(),
+ layer->mDrawingState.transform.ty());
+ addDepthLocked(transaction, layerId, layer->mDrawingState.z);
+ addAlphaLocked(transaction, layerId, layer->mDrawingState.color.a);
addTransparentRegionLocked(transaction, layerId,
- layer->mCurrentState.activeTransparentRegion_legacy);
- addLayerStackLocked(transaction, layerId, layer->mCurrentState.layerStack);
- addCropLocked(transaction, layerId, layer->mCurrentState.crop);
- addCornerRadiusLocked(transaction, layerId, layer->mCurrentState.cornerRadius);
- addBackgroundBlurRadiusLocked(transaction, layerId, layer->mCurrentState.backgroundBlurRadius);
- addBlurRegionsLocked(transaction, layerId, layer->mCurrentState.blurRegions);
- addFlagsLocked(transaction, layerId, layer->mCurrentState.flags,
+ layer->mDrawingState.activeTransparentRegion_legacy);
+ addLayerStackLocked(transaction, layerId, layer->mDrawingState.layerStack);
+ addCropLocked(transaction, layerId, layer->mDrawingState.crop);
+ addCornerRadiusLocked(transaction, layerId, layer->mDrawingState.cornerRadius);
+ addBackgroundBlurRadiusLocked(transaction, layerId, layer->mDrawingState.backgroundBlurRadius);
+ addBlurRegionsLocked(transaction, layerId, layer->mDrawingState.blurRegions);
+ addFlagsLocked(transaction, layerId, layer->mDrawingState.flags,
layer_state_t::eLayerHidden | layer_state_t::eLayerOpaque |
layer_state_t::eLayerSecure);
- addReparentLocked(transaction, layerId, getLayerIdFromWeakRef(layer->mCurrentParent));
+ addReparentLocked(transaction, layerId, getLayerIdFromWeakRef(layer->mDrawingParent));
addRelativeParentLocked(transaction, layerId,
- getLayerIdFromWeakRef(layer->mCurrentState.zOrderRelativeOf),
- layer->mCurrentState.z);
- addShadowRadiusLocked(transaction, layerId, layer->mCurrentState.shadowRadius);
+ getLayerIdFromWeakRef(layer->mDrawingState.zOrderRelativeOf),
+ layer->mDrawingState.z);
+ addShadowRadiusLocked(transaction, layerId, layer->mDrawingState.shadowRadius);
}
void SurfaceInterceptor::addInitialDisplayStateLocked(Increment* increment,
@@ -511,8 +511,8 @@
SurfaceCreation* creation(increment->mutable_surface_creation());
creation->set_id(getLayerId(layer));
creation->set_name(layer->getName());
- creation->set_w(layer->mCurrentState.active_legacy.w);
- creation->set_h(layer->mCurrentState.active_legacy.h);
+ creation->set_w(layer->mDrawingState.active_legacy.w);
+ creation->set_h(layer->mDrawingState.active_legacy.h);
}
void SurfaceInterceptor::addSurfaceDeletionLocked(Increment* increment,
diff --git a/services/surfaceflinger/TimeStats/TimeStats.cpp b/services/surfaceflinger/TimeStats/TimeStats.cpp
index f1b153f..7c1f21f 100644
--- a/services/surfaceflinger/TimeStats/TimeStats.cpp
+++ b/services/surfaceflinger/TimeStats/TimeStats.cpp
@@ -846,8 +846,8 @@
timelineStats.stats[layerKey].displayRefreshRateBucket = refreshRateBucket;
timelineStats.stats[layerKey].renderRateBucket = renderRateBucket;
timelineStats.stats[layerKey].uid = info.uid;
- timelineStats.stats[layerKey].layerName = kDefaultGameMode;
- timelineStats.stats[layerKey].gameMode = info.gameMode;
+ timelineStats.stats[layerKey].layerName = kDefaultLayerName;
+ timelineStats.stats[layerKey].gameMode = kDefaultGameMode;
}
TimeStatsHelper::TimeStatsLayer& timeStatsLayer = timelineStats.stats[layerKey];
diff --git a/services/surfaceflinger/TimeStats/TimeStats.h b/services/surfaceflinger/TimeStats/TimeStats.h
index dd48950..9e70684 100644
--- a/services/surfaceflinger/TimeStats/TimeStats.h
+++ b/services/surfaceflinger/TimeStats/TimeStats.h
@@ -16,18 +16,10 @@
#pragma once
-// TODO(b/129481165): remove the #pragma below and fix conversion issues
#include <cstdint>
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wconversion"
-#pragma clang diagnostic ignored "-Wextra"
-
-#include <android/hardware/graphics/composer/2.4/IComposerClient.h>
-
-// TODO(b/129481165): remove the #pragma below and fix conversion issues
-#pragma clang diagnostic pop // ignored "-Wconversion -Wextra"
#include <../Fps.h>
+#include <android/hardware/graphics/composer/2.4/IComposerClient.h>
#include <gui/JankInfo.h>
#include <timestatsproto/TimeStatsHelper.h>
#include <timestatsproto/TimeStatsProtoHeader.h>
diff --git a/services/surfaceflinger/TransactionCallbackInvoker.cpp b/services/surfaceflinger/TransactionCallbackInvoker.cpp
index 4f4c02b..fdf16a7 100644
--- a/services/surfaceflinger/TransactionCallbackInvoker.cpp
+++ b/services/surfaceflinger/TransactionCallbackInvoker.cpp
@@ -235,8 +235,9 @@
handle->dequeueReadyTime);
transactionStats->surfaceStats.emplace_back(surfaceControl, handle->acquireTime,
handle->previousReleaseFence,
- handle->transformHint, eventStats, jankData,
- handle->previousBufferId);
+ handle->transformHint,
+ handle->currentMaxAcquiredBufferCount,
+ eventStats, jankData, handle->previousBufferId);
}
return NO_ERROR;
}
diff --git a/services/surfaceflinger/TransactionCallbackInvoker.h b/services/surfaceflinger/TransactionCallbackInvoker.h
index 184b151..444bec6 100644
--- a/services/surfaceflinger/TransactionCallbackInvoker.h
+++ b/services/surfaceflinger/TransactionCallbackInvoker.h
@@ -45,6 +45,7 @@
nsecs_t acquireTime = -1;
nsecs_t latchTime = -1;
uint32_t transformHint = 0;
+ uint32_t currentMaxAcquiredBufferCount = 0;
std::shared_ptr<FenceTime> gpuCompositionDoneFence{FenceTime::NO_FENCE};
CompositorTiming compositorTiming;
nsecs_t refreshStartTime = 0;
diff --git a/services/surfaceflinger/TunnelModeEnabledReporter.cpp b/services/surfaceflinger/TunnelModeEnabledReporter.cpp
index 1b3ddf7..48e3216 100644
--- a/services/surfaceflinger/TunnelModeEnabledReporter.cpp
+++ b/services/surfaceflinger/TunnelModeEnabledReporter.cpp
@@ -31,8 +31,8 @@
void TunnelModeEnabledReporter::updateTunnelModeStatus() {
bool tunnelModeEnabled = false;
mFlinger.mCurrentState.traverse([&](Layer* layer) {
- auto& currentState = layer->getCurrentState();
- if (currentState.sidebandStream != nullptr) {
+ auto& state = layer->getDrawingState();
+ if (state.sidebandStream != nullptr) {
tunnelModeEnabled = true;
return;
}
diff --git a/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp b/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp
index fb7d41c..5aa809d 100644
--- a/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp
+++ b/services/surfaceflinger/tests/ReleaseBufferCallback_test.cpp
@@ -30,7 +30,8 @@
class ReleaseBufferCallbackHelper {
public:
static void function(void* callbackContext, uint64_t graphicsBufferId,
- const sp<Fence>& releaseFence) {
+ const sp<Fence>& releaseFence,
+ uint32_t /*currentMaxAcquiredBufferCount*/) {
if (!callbackContext) {
FAIL() << "failed to get callback context";
}
@@ -66,7 +67,7 @@
android::ReleaseBufferCallback getCallback() {
return std::bind(function, static_cast<void*>(this) /* callbackContext */,
- std::placeholders::_1, std::placeholders::_2);
+ std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
}
std::mutex mMutex;
diff --git a/services/surfaceflinger/tests/unittests/FakeVsyncConfiguration.h b/services/surfaceflinger/tests/unittests/FakeVsyncConfiguration.h
index e890a62..f6f3c07 100644
--- a/services/surfaceflinger/tests/unittests/FakeVsyncConfiguration.h
+++ b/services/surfaceflinger/tests/unittests/FakeVsyncConfiguration.h
@@ -34,7 +34,8 @@
{FAKE_PHASE_OFFSET_NS, FAKE_PHASE_OFFSET_NS, FAKE_DURATION_OFFSET_NS,
FAKE_DURATION_OFFSET_NS},
{FAKE_PHASE_OFFSET_NS, FAKE_PHASE_OFFSET_NS, FAKE_DURATION_OFFSET_NS,
- FAKE_DURATION_OFFSET_NS}};
+ FAKE_DURATION_OFFSET_NS},
+ FAKE_DURATION_OFFSET_NS};
}
void reset() override {}
diff --git a/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp b/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp
index 71a567a..0a8c748 100644
--- a/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp
+++ b/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp
@@ -877,7 +877,7 @@
ProtoActualSurfaceFrameStart createProtoActualSurfaceFrameStart(
int64_t cookie, int64_t token, int64_t displayFrameToken, pid_t pid, std::string layerName,
ProtoPresentType presentType, bool onTimeFinish, bool gpuComposition,
- ProtoJankType jankType, ProtoPredictionType predictionType) {
+ ProtoJankType jankType, ProtoPredictionType predictionType, bool isBuffer) {
ProtoActualSurfaceFrameStart proto;
proto.set_cookie(cookie);
proto.set_token(token);
@@ -889,6 +889,7 @@
proto.set_gpu_composition(gpuComposition);
proto.set_jank_type(jankType);
proto.set_prediction_type(predictionType);
+ proto.set_is_buffer(isBuffer);
return proto;
}
@@ -978,6 +979,8 @@
EXPECT_EQ(received.jank_type(), source.jank_type());
ASSERT_TRUE(received.has_prediction_type());
EXPECT_EQ(received.prediction_type(), source.prediction_type());
+ ASSERT_TRUE(received.has_is_buffer());
+ EXPECT_EQ(received.is_buffer(), source.is_buffer());
}
void validateTraceEvent(const ProtoFrameEnd& received, const ProtoFrameEnd& source) {
@@ -1154,7 +1157,7 @@
displayFrameToken1, sPidOne, sLayerNameOne,
FrameTimelineEvent::PRESENT_DROPPED, false, false,
FrameTimelineEvent::JANK_NONE,
- FrameTimelineEvent::PREDICTION_VALID);
+ FrameTimelineEvent::PREDICTION_VALID, true);
auto protoDroppedSurfaceFrameActualEnd = createProtoFrameEnd(traceCookie + 2);
auto protoPresentedSurfaceFrameExpectedStart =
@@ -1166,7 +1169,7 @@
displayFrameToken1, sPidOne, sLayerNameOne,
FrameTimelineEvent::PRESENT_ON_TIME, true, false,
FrameTimelineEvent::JANK_NONE,
- FrameTimelineEvent::PREDICTION_VALID);
+ FrameTimelineEvent::PREDICTION_VALID, true);
auto protoPresentedSurfaceFrameActualEnd = createProtoFrameEnd(traceCookie + 4);
// Set up the display frame
@@ -1309,7 +1312,7 @@
displayFrameToken, sPidOne, sLayerNameOne,
FrameTimelineEvent::PRESENT_UNSPECIFIED, false,
false, FrameTimelineEvent::JANK_UNKNOWN,
- FrameTimelineEvent::PREDICTION_EXPIRED);
+ FrameTimelineEvent::PREDICTION_EXPIRED, true);
auto protoActualSurfaceFrameEnd = createProtoFrameEnd(traceCookie + 1);
// Set up the display frame
@@ -1383,7 +1386,7 @@
displayFrameToken, sPidOne, sLayerNameOne,
FrameTimelineEvent::PRESENT_DROPPED, false, false,
FrameTimelineEvent::JANK_NONE,
- FrameTimelineEvent::PREDICTION_EXPIRED);
+ FrameTimelineEvent::PREDICTION_EXPIRED, true);
auto protoActualSurfaceFrameEnd = createProtoFrameEnd(traceCookie + 1);
// Set up the display frame
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
index 7ace70a..d4b229f 100644
--- a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
+++ b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
@@ -45,9 +45,16 @@
class RefreshRateConfigsTest : public testing::Test {
protected:
+ using GetBestRefreshRateInvocation = RefreshRateConfigs::GetBestRefreshRateInvocation;
+
RefreshRateConfigsTest();
~RefreshRateConfigsTest();
+ RefreshRate createRefreshRate(DisplayModePtr displayMode) {
+ return {displayMode->getId(), displayMode, displayMode->getFps(),
+ RefreshRate::ConstructorTag(0)};
+ }
+
Fps findClosestKnownFrameRate(const RefreshRateConfigs& refreshRateConfigs, Fps frameRate) {
return refreshRateConfigs.findClosestKnownFrameRate(frameRate);
}
@@ -71,6 +78,19 @@
return *refreshRateConfigs.mMaxSupportedRefreshRate;
}
+ void setLastBestRefreshRateInvocation(RefreshRateConfigs& refreshRateConfigs,
+ const GetBestRefreshRateInvocation& invocation) {
+ std::lock_guard lock(refreshRateConfigs.mLock);
+ refreshRateConfigs.lastBestRefreshRateInvocation.emplace(
+ GetBestRefreshRateInvocation(invocation));
+ }
+
+ std::optional<GetBestRefreshRateInvocation> getLastBestRefreshRateInvocation(
+ const RefreshRateConfigs& refreshRateConfigs) {
+ std::lock_guard lock(refreshRateConfigs.mLock);
+ return refreshRateConfigs.lastBestRefreshRateInvocation;
+ }
+
// Test config IDs
static inline const DisplayModeId HWC_CONFIG_ID_60 = DisplayModeId(0);
static inline const DisplayModeId HWC_CONFIG_ID_90 = DisplayModeId(1);
@@ -124,6 +144,7 @@
mConfig30DifferentGroup,
mConfig25DifferentGroup,
mConfig50};
+ DisplayModes m60_120Device = {mConfig60, mConfig120};
// Expected RefreshRate objects
RefreshRate mExpected60Config = {HWC_CONFIG_ID_60, mConfig60, Fps(60),
@@ -1752,6 +1773,110 @@
refreshRateConfigs->getBestRefreshRate(layers, {.touch = false, .idle = false}));
}
+TEST_F(RefreshRateConfigsTest, getBestRefreshRate_ReadsCached) {
+ using GlobalSignals = RefreshRateConfigs::GlobalSignals;
+
+ auto refreshRateConfigs =
+ std::make_unique<RefreshRateConfigs>(m30_60_72_90_120Device,
+ /*currentConfigId=*/HWC_CONFIG_ID_60);
+
+ setLastBestRefreshRateInvocation(*refreshRateConfigs,
+ GetBestRefreshRateInvocation{.layerRequirements = std::vector<
+ LayerRequirement>(),
+ .globalSignals = {.touch = true,
+ .idle = true},
+ .outSignalsConsidered =
+ {.touch = true,
+ .idle = false},
+ .resultingBestRefreshRate =
+ createRefreshRate(
+ mConfig90)});
+
+ EXPECT_EQ(createRefreshRate(mConfig90),
+ refreshRateConfigs->getBestRefreshRate(std::vector<LayerRequirement>(),
+ {.touch = true, .idle = true}));
+
+ const GlobalSignals cachedSignalsConsidered{.touch = true, .idle = false};
+ setLastBestRefreshRateInvocation(*refreshRateConfigs,
+ GetBestRefreshRateInvocation{.layerRequirements = std::vector<
+ LayerRequirement>(),
+ .globalSignals = {.touch = true,
+ .idle = true},
+ .outSignalsConsidered =
+ cachedSignalsConsidered,
+ .resultingBestRefreshRate =
+ createRefreshRate(
+ mConfig30)});
+
+ GlobalSignals signalsConsidered;
+ EXPECT_EQ(createRefreshRate(mConfig30),
+ refreshRateConfigs->getBestRefreshRate(std::vector<LayerRequirement>(),
+ {.touch = true, .idle = true},
+ &signalsConsidered));
+
+ EXPECT_EQ(cachedSignalsConsidered, signalsConsidered);
+}
+
+TEST_F(RefreshRateConfigsTest, getBestRefreshRate_WritesCache) {
+ using GlobalSignals = RefreshRateConfigs::GlobalSignals;
+
+ auto refreshRateConfigs =
+ std::make_unique<RefreshRateConfigs>(m30_60_72_90_120Device,
+ /*currentConfigId=*/HWC_CONFIG_ID_60);
+ ASSERT_FALSE(getLastBestRefreshRateInvocation(*refreshRateConfigs).has_value());
+
+ GlobalSignals globalSignals{.touch = true, .idle = true};
+ auto layers = std::vector<LayerRequirement>{LayerRequirement{.weight = 1.0f},
+ LayerRequirement{.weight = 0.5f}};
+ const auto lastResult =
+ refreshRateConfigs->getBestRefreshRate(layers, globalSignals,
+ /* outSignalsConsidered */ nullptr);
+
+ const auto lastInvocation = getLastBestRefreshRateInvocation(*refreshRateConfigs);
+
+ ASSERT_TRUE(lastInvocation.has_value());
+ ASSERT_EQ(layers, lastInvocation->layerRequirements);
+ ASSERT_EQ(globalSignals, lastInvocation->globalSignals);
+ ASSERT_EQ(lastResult, lastInvocation->resultingBestRefreshRate);
+
+ // outSignalsConsidered needs to be populated even tho earlier we gave nullptr
+ // to getBestRefreshRate()
+ GlobalSignals detaultSignals;
+ ASSERT_FALSE(detaultSignals == lastInvocation->outSignalsConsidered);
+}
+
+TEST_F(RefreshRateConfigsTest, getBestRefreshRate_ExplicitExactTouchBoost) {
+ auto refreshRateConfigs =
+ std::make_unique<RefreshRateConfigs>(m60_120Device,
+ /*currentConfigId=*/HWC_CONFIG_ID_60,
+ /*enableFrameRateOverride=*/true);
+
+ auto layers = std::vector<LayerRequirement>{LayerRequirement{.weight = 1.0f},
+ LayerRequirement{.weight = 0.5f}};
+ auto& explicitExactLayer = layers[0];
+ auto& explicitExactOrMultipleLayer = layers[1];
+
+ explicitExactOrMultipleLayer.vote = LayerVoteType::ExplicitExactOrMultiple;
+ explicitExactOrMultipleLayer.name = "ExplicitExactOrMultiple";
+ explicitExactOrMultipleLayer.desiredRefreshRate = Fps(60);
+
+ explicitExactLayer.vote = LayerVoteType::ExplicitExact;
+ explicitExactLayer.name = "ExplicitExact";
+ explicitExactLayer.desiredRefreshRate = Fps(30);
+
+ EXPECT_EQ(mExpected60Config,
+ refreshRateConfigs->getBestRefreshRate(layers, {.touch = false, .idle = false}));
+ EXPECT_EQ(mExpected120Config,
+ refreshRateConfigs->getBestRefreshRate(layers, {.touch = true, .idle = false}));
+
+ explicitExactOrMultipleLayer.vote = LayerVoteType::NoVote;
+
+ EXPECT_EQ(mExpected60Config,
+ refreshRateConfigs->getBestRefreshRate(layers, {.touch = false, .idle = false}));
+ EXPECT_EQ(mExpected60Config,
+ refreshRateConfigs->getBestRefreshRate(layers, {.touch = true, .idle = false}));
+}
+
TEST_F(RefreshRateConfigsTest, testComparisonOperator) {
EXPECT_TRUE(mExpected60Config < mExpected90Config);
EXPECT_FALSE(mExpected60Config < mExpected60Config);
@@ -1772,10 +1897,10 @@
0);
EXPECT_EQ(KernelIdleTimerAction::TurnOn, refreshRateConfigs->getIdleTimerAction());
- // SetPolicy(60, 60), current 60Hz => NoChange, avoid extra calls.
+ // SetPolicy(60, 60), current 60Hz => TurnOff
ASSERT_GE(refreshRateConfigs->setDisplayManagerPolicy({HWC_CONFIG_ID_60, {Fps(60), Fps(60)}}),
0);
- EXPECT_EQ(KernelIdleTimerAction::NoChange, refreshRateConfigs->getIdleTimerAction());
+ EXPECT_EQ(KernelIdleTimerAction::TurnOff, refreshRateConfigs->getIdleTimerAction());
// SetPolicy(90, 90), current 90Hz => TurnOff.
ASSERT_GE(refreshRateConfigs->setDisplayManagerPolicy({HWC_CONFIG_ID_90, {Fps(90), Fps(90)}}),
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp
index fd3e564..35033ea 100644
--- a/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp
+++ b/services/surfaceflinger/tests/unittests/RefreshRateSelectionTest.cpp
@@ -116,7 +116,7 @@
}
void RefreshRateSelectionTest::commitTransaction(Layer* layer) {
- auto c = layer->getCurrentState();
+ auto c = layer->getDrawingState();
layer->commitTransaction(c);
}
diff --git a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
index 38e503f..f680d80 100644
--- a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
+++ b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
@@ -51,9 +51,18 @@
SchedulerTest();
- const scheduler::RefreshRateConfigs
- mConfigs{{DisplayMode::Builder(0).setVsyncPeriod(16'666'667).setGroup(0).build()},
- DisplayModeId(0)};
+ const DisplayModePtr mode60 = DisplayMode::Builder(0)
+ .setId(DisplayModeId(0))
+ .setVsyncPeriod(Fps(60.f).getPeriodNsecs())
+ .setGroup(0)
+ .build();
+ const DisplayModePtr mode120 = DisplayMode::Builder(1)
+ .setId(DisplayModeId(1))
+ .setVsyncPeriod(Fps(120.f).getPeriodNsecs())
+ .setGroup(0)
+ .build();
+
+ scheduler::RefreshRateConfigs mConfigs{{mode60}, mode60->getId()};
mock::SchedulerCallback mSchedulerCallback;
@@ -149,15 +158,14 @@
EXPECT_EQ(kEventConnections, mScheduler->getEventThreadConnectionCount(mConnectionHandle));
}
-TEST_F(SchedulerTest, noLayerHistory) {
- // Layer history should not be created if there is a single config.
- ASSERT_FALSE(mScheduler->hasLayerHistory());
-
+TEST_F(SchedulerTest, chooseRefreshRateForContentIsNoopWhenModeSwitchingIsNotSupported) {
+ // The layer is registered at creation time and deregistered at destruction time.
sp<mock::MockLayer> layer = sp<mock::MockLayer>::make(mFlinger.flinger());
- // Content detection should be no-op.
- mScheduler->registerLayer(layer.get());
+ // recordLayerHistory should be a noop
+ ASSERT_EQ(static_cast<size_t>(0), mScheduler->getNumActiveLayers());
mScheduler->recordLayerHistory(layer.get(), 0, LayerHistory::LayerUpdateType::Buffer);
+ ASSERT_EQ(static_cast<size_t>(0), mScheduler->getNumActiveLayers());
constexpr bool kPowerStateNormal = true;
mScheduler->setDisplayPowerState(kPowerStateNormal);
@@ -169,6 +177,18 @@
mScheduler->chooseRefreshRateForContent();
}
+TEST_F(SchedulerTest, updateDisplayModes) {
+ ASSERT_EQ(static_cast<size_t>(0), mScheduler->layerHistorySize());
+ sp<mock::MockLayer> layer = sp<mock::MockLayer>::make(mFlinger.flinger());
+ ASSERT_EQ(static_cast<size_t>(1), mScheduler->layerHistorySize());
+
+ mConfigs.updateDisplayModes({mode60, mode120}, /* activeMode */ mode60->getId());
+
+ ASSERT_EQ(static_cast<size_t>(0), mScheduler->getNumActiveLayers());
+ mScheduler->recordLayerHistory(layer.get(), 0, LayerHistory::LayerUpdateType::Buffer);
+ ASSERT_EQ(static_cast<size_t>(1), mScheduler->getNumActiveLayers());
+}
+
TEST_F(SchedulerTest, testDispatchCachedReportedMode) {
// If the optional fields are cleared, the function should return before
// onModeChange is called.
@@ -190,14 +210,35 @@
EXPECT_CALL(*mEventThread, onModeChanged(_, _, _)).Times(0);
}
-TEST_F(SchedulerTest, calculateExtraBufferCount) {
- EXPECT_EQ(0, mFlinger.calculateExtraBufferCount(Fps(60), 30ms));
- EXPECT_EQ(1, mFlinger.calculateExtraBufferCount(Fps(90), 30ms));
- EXPECT_EQ(2, mFlinger.calculateExtraBufferCount(Fps(120), 30ms));
+TEST_F(SchedulerTest, calculateMaxAcquiredBufferCount) {
+ EXPECT_EQ(1, mFlinger.calculateMaxAcquiredBufferCount(Fps(60), 30ms));
+ EXPECT_EQ(2, mFlinger.calculateMaxAcquiredBufferCount(Fps(90), 30ms));
+ EXPECT_EQ(3, mFlinger.calculateMaxAcquiredBufferCount(Fps(120), 30ms));
- EXPECT_EQ(1, mFlinger.calculateExtraBufferCount(Fps(60), 40ms));
+ EXPECT_EQ(2, mFlinger.calculateMaxAcquiredBufferCount(Fps(60), 40ms));
- EXPECT_EQ(0, mFlinger.calculateExtraBufferCount(Fps(60), 10ms));
+ EXPECT_EQ(1, mFlinger.calculateMaxAcquiredBufferCount(Fps(60), 10ms));
+}
+
+MATCHER(Is120Hz, "") {
+ return arg.getFps().equalsWithMargin(Fps(120.f));
+}
+
+TEST_F(SchedulerTest, chooseRefreshRateForContentSelectsMaxRefreshRate) {
+ mConfigs.updateDisplayModes({mode60, mode120}, /* activeMode */ mode60->getId());
+
+ sp<mock::MockLayer> layer = sp<mock::MockLayer>::make(mFlinger.flinger());
+
+ mScheduler->recordLayerHistory(layer.get(), 0, LayerHistory::LayerUpdateType::Buffer);
+
+ constexpr bool kPowerStateNormal = true;
+ mScheduler->setDisplayPowerState(kPowerStateNormal);
+
+ constexpr uint32_t kDisplayArea = 999'999;
+ mScheduler->onPrimaryDisplayAreaChanged(kDisplayArea);
+
+ EXPECT_CALL(mSchedulerCallback, changeRefreshRate(Is120Hz(), _)).Times(1);
+ mScheduler->chooseRefreshRateForContent();
}
} // namespace android
diff --git a/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp b/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp
index 46ef750..1ed52ea 100644
--- a/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp
+++ b/services/surfaceflinger/tests/unittests/SetFrameRateTest.cpp
@@ -152,7 +152,7 @@
void SetFrameRateTest::commitTransaction() {
for (auto layer : mLayers) {
- auto c = layer->getCurrentState();
+ auto c = layer->getDrawingState();
layer->commitTransaction(c);
}
}
diff --git a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp
index 0614434..e2be074 100644
--- a/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp
+++ b/services/surfaceflinger/tests/unittests/SurfaceFlinger_DestroyDisplayTest.cpp
@@ -74,4 +74,4 @@
}
} // namespace
-} // namespace android
\ No newline at end of file
+} // namespace android
diff --git a/services/surfaceflinger/tests/unittests/TestableScheduler.h b/services/surfaceflinger/tests/unittests/TestableScheduler.h
index 3f9dd01..41fd6e3 100644
--- a/services/surfaceflinger/tests/unittests/TestableScheduler.h
+++ b/services/surfaceflinger/tests/unittests/TestableScheduler.h
@@ -64,6 +64,11 @@
return mutableLayerHistory()->mLayerInfos.size();
}
+ size_t getNumActiveLayers() NO_THREAD_SAFETY_ANALYSIS {
+ if (!mLayerHistory) return 0;
+ return mutableLayerHistory()->mActiveLayersEnd;
+ }
+
void replaceTouchTimer(int64_t millis) {
if (mTouchTimer) {
mTouchTimer.reset();
diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
index d78f36c..7f6e05e 100644
--- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
+++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
@@ -259,7 +259,6 @@
memcpy(&mFlinger->mInternalDisplayPrimaries, &primaries, sizeof(ui::DisplayPrimaries));
}
- static auto& mutableLayerCurrentState(const sp<Layer>& layer) { return layer->mCurrentState; }
static auto& mutableLayerDrawingState(const sp<Layer>& layer) { return layer->mDrawingState; }
auto& mutableStateLock() { return mFlinger->mStateLock; }
@@ -272,7 +271,6 @@
static void setLayerSidebandStream(const sp<Layer>& layer,
const sp<NativeHandle>& sidebandStream) {
layer->mDrawingState.sidebandStream = sidebandStream;
- layer->mCurrentState.sidebandStream = sidebandStream;
layer->mSidebandStream = sidebandStream;
layer->editCompositionState()->sidebandStream = sidebandStream;
}
@@ -391,9 +389,9 @@
auto getGPUContextPriority() { return mFlinger->getGPUContextPriority(); }
- auto calculateExtraBufferCount(Fps maxSupportedRefreshRate,
- std::chrono::nanoseconds presentLatency) const {
- return SurfaceFlinger::calculateExtraBufferCount(maxSupportedRefreshRate, presentLatency);
+ auto calculateMaxAcquiredBufferCount(Fps refreshRate,
+ std::chrono::nanoseconds presentLatency) const {
+ return SurfaceFlinger::calculateMaxAcquiredBufferCount(refreshRate, presentLatency);
}
/* ------------------------------------------------------------------------
diff --git a/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp b/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp
index 546bc4a..2845d0a 100644
--- a/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp
+++ b/services/surfaceflinger/tests/unittests/TransactionFrameTracerTest.cpp
@@ -62,7 +62,7 @@
}
void commitTransaction(Layer* layer) {
- auto c = layer->getCurrentState();
+ auto c = layer->getDrawingState();
layer->commitTransaction(c);
}
diff --git a/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp b/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp
index c1123cd..7bf224d 100644
--- a/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp
+++ b/services/surfaceflinger/tests/unittests/TransactionSurfaceFrameTest.cpp
@@ -62,7 +62,7 @@
}
void commitTransaction(Layer* layer) {
- auto c = layer->getCurrentState();
+ auto c = layer->getDrawingState();
layer->commitTransaction(c);
}
@@ -101,9 +101,9 @@
sp<BufferStateLayer> layer = createBufferStateLayer();
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 1, /*inputEventId*/ 0},
10);
- EXPECT_EQ(1u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_TRUE(layer->mCurrentState.bufferSurfaceFrameTX == nullptr);
- const auto surfaceFrame = layer->mCurrentState.bufferlessSurfaceFramesTX.at(/*token*/ 1);
+ EXPECT_EQ(1u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_TRUE(layer->mDrawingState.bufferSurfaceFrameTX == nullptr);
+ const auto surfaceFrame = layer->mDrawingState.bufferlessSurfaceFramesTX.at(/*token*/ 1);
commitTransaction(layer.get());
EXPECT_EQ(1, surfaceFrame->getToken());
EXPECT_EQ(false, surfaceFrame->getIsBuffer());
@@ -123,9 +123,9 @@
acquireFence->signalForTest(12);
commitTransaction(layer.get());
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto& surfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto surfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
// Buffers are presented only at latch time.
EXPECT_EQ(PresentState::Unknown, surfaceFrame->getPresentState());
@@ -148,9 +148,9 @@
mRenderEngine, false);
layer->setBuffer(buffer1, fence1, 10, 20, false, mClientCache, 1, std::nullopt,
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto droppedSurfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto droppedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
sp<Fence> fence2(new Fence());
auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2);
@@ -164,9 +164,9 @@
nsecs_t end = systemTime();
acquireFence2->signalForTest(12);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto& presentedSurfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto presentedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
commitTransaction(layer.get());
bool computeVisisbleRegions;
@@ -190,8 +190,8 @@
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 1, /*inputEventId*/ 0},
10);
- EXPECT_EQ(1u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_EQ(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
+ EXPECT_EQ(1u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_EQ(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
sp<Fence> fence(new Fence());
auto acquireFence = fenceFactory.createFenceTimeForTest(fence);
@@ -203,9 +203,9 @@
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
acquireFence->signalForTest(12);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto& surfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto surfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
commitTransaction(layer.get());
EXPECT_EQ(1, surfaceFrame->getToken());
@@ -229,29 +229,29 @@
mRenderEngine, false);
layer->setBuffer(buffer, fence, 10, 20, false, mClientCache, 1, std::nullopt,
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 1, /*inputEventId*/ 0},
10);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
}
void MultipleSurfaceFramesPresentedTogether() {
sp<BufferStateLayer> layer = createBufferStateLayer();
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 1, /*inputEventId*/ 0},
10);
- EXPECT_EQ(1u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_EQ(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
+ EXPECT_EQ(1u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_EQ(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
const auto bufferlessSurfaceFrame1 =
- layer->mCurrentState.bufferlessSurfaceFramesTX.at(/*token*/ 1);
+ layer->mDrawingState.bufferlessSurfaceFramesTX.at(/*token*/ 1);
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 4, /*inputEventId*/ 0},
10);
- EXPECT_EQ(2u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_EQ(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto bufferlessSurfaceFrame2 = layer->mCurrentState.bufferlessSurfaceFramesTX[4];
+ EXPECT_EQ(2u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_EQ(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto bufferlessSurfaceFrame2 = layer->mDrawingState.bufferlessSurfaceFramesTX[4];
sp<Fence> fence(new Fence());
auto acquireFence = fenceFactory.createFenceTimeForTest(fence);
@@ -261,9 +261,9 @@
mRenderEngine, false);
layer->setBuffer(buffer, fence, 10, 20, false, mClientCache, 1, std::nullopt,
{/*vsyncId*/ 3, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
- EXPECT_EQ(2u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto& bufferSurfaceFrameTX = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(2u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto bufferSurfaceFrameTX = layer->mDrawingState.bufferSurfaceFrameTX;
acquireFence->signalForTest(12);
@@ -299,8 +299,8 @@
mRenderEngine, false);
layer->setBuffer(buffer1, fence1, 10, 20, false, mClientCache, 1, std::nullopt,
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto droppedSurfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto droppedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
sp<Fence> fence2(new Fence());
auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2);
@@ -312,8 +312,8 @@
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
acquireFence2->signalForTest(12);
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- auto& presentedSurfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ auto presentedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
commitTransaction(layer.get());
bool computeVisisbleRegions;
@@ -340,9 +340,9 @@
mRenderEngine, false);
layer->setBuffer(buffer1, fence1, 10, 20, false, mClientCache, 1, std::nullopt,
{/*vsyncId*/ 1, /*inputEventId*/ 0}, nullptr /* releaseBufferCallback */);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto droppedSurfaceFrame1 = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto droppedSurfaceFrame1 = layer->mDrawingState.bufferSurfaceFrameTX;
sp<Fence> fence2(new Fence());
auto acquireFence2 = fenceFactory.createFenceTimeForTest(fence2);
@@ -355,9 +355,9 @@
{/*vsyncId*/ FrameTimelineInfo::INVALID_VSYNC_ID, /*inputEventId*/ 0},
nullptr /* releaseBufferCallback */);
auto dropEndTime1 = systemTime();
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto droppedSurfaceFrame2 = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto droppedSurfaceFrame2 = layer->mDrawingState.bufferSurfaceFrameTX;
sp<Fence> fence3(new Fence());
auto acquireFence3 = fenceFactory.createFenceTimeForTest(fence3);
@@ -371,9 +371,9 @@
auto dropEndTime2 = systemTime();
acquireFence3->signalForTest(12);
- EXPECT_EQ(0u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- const auto& presentedSurfaceFrame = layer->mCurrentState.bufferSurfaceFrameTX;
+ EXPECT_EQ(0u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ const auto presentedSurfaceFrame = layer->mDrawingState.bufferSurfaceFrameTX;
commitTransaction(layer.get());
bool computeVisisbleRegions;
@@ -415,10 +415,10 @@
layer->setFrameTimelineVsyncForBufferlessTransaction({/*vsyncId*/ 2,
/*inputEventId*/ 0},
10);
- ASSERT_NE(nullptr, layer->mCurrentState.bufferSurfaceFrameTX);
- EXPECT_EQ(1u, layer->mCurrentState.bufferlessSurfaceFramesTX.size());
+ ASSERT_NE(nullptr, layer->mDrawingState.bufferSurfaceFrameTX);
+ EXPECT_EQ(1u, layer->mDrawingState.bufferlessSurfaceFramesTX.size());
auto& bufferlessSurfaceFrame =
- layer->mCurrentState.bufferlessSurfaceFramesTX.at(/*vsyncId*/ 2);
+ layer->mDrawingState.bufferlessSurfaceFramesTX.at(/*vsyncId*/ 2);
bufferlessSurfaceFrames.push_back(bufferlessSurfaceFrame);
commitTransaction(layer.get());
diff --git a/services/surfaceflinger/tests/unittests/VSyncPredictorTest.cpp b/services/surfaceflinger/tests/unittests/VSyncPredictorTest.cpp
index ae936e4..37ecd7c 100644
--- a/services/surfaceflinger/tests/unittests/VSyncPredictorTest.cpp
+++ b/services/surfaceflinger/tests/unittests/VSyncPredictorTest.cpp
@@ -510,6 +510,28 @@
EXPECT_EQ(mNow + 1000, tracker.nextAnticipatedVSyncTimeFrom(mNow));
}
+TEST_F(VSyncPredictorTest, robustToDuplicateTimestamps_60hzRealTraceData) {
+ // these are real vsync timestamps from b/190331974 which caused vsync predictor
+ // period to spike to 18ms due to very close timestamps
+ std::vector<nsecs_t> const simulatedVsyncs{
+ 198353408177, 198370074844, 198371400000, 198374274000, 198390941000, 198407565000,
+ 198540887994, 198607538588, 198624218276, 198657655939, 198674224176, 198690880955,
+ 198724204319, 198740988133, 198758166681, 198790869196, 198824205052, 198840871678,
+ 198857715631, 198890885797, 198924199640, 198940873834, 198974204401,
+ };
+ auto constexpr idealPeriod = 16'666'666;
+ auto constexpr expectedPeriod = 16'644'742;
+ auto constexpr expectedIntercept = 125'626;
+
+ tracker.setPeriod(idealPeriod);
+ for (auto const& timestamp : simulatedVsyncs) {
+ tracker.addVsyncTimestamp(timestamp);
+ }
+ auto [slope, intercept] = tracker.getVSyncPredictionModel();
+ EXPECT_THAT(slope, IsCloseTo(expectedPeriod, mMaxRoundingError));
+ EXPECT_THAT(intercept, IsCloseTo(expectedIntercept, mMaxRoundingError));
+}
+
} // namespace android::scheduler
// TODO(b/129481165): remove the #pragma below and fix conversion issues
diff --git a/services/surfaceflinger/tests/unittests/VsyncConfigurationTest.cpp b/services/surfaceflinger/tests/unittests/VsyncConfigurationTest.cpp
index bb7578d..41a4d30 100644
--- a/services/surfaceflinger/tests/unittests/VsyncConfigurationTest.cpp
+++ b/services/surfaceflinger/tests/unittests/VsyncConfigurationTest.cpp
@@ -34,16 +34,18 @@
public:
TestableWorkDuration(Fps currentFps, nsecs_t sfDuration, nsecs_t appDuration,
nsecs_t sfEarlyDuration, nsecs_t appEarlyDuration,
- nsecs_t sfEarlyGlDuration, nsecs_t appEarlyGlDuration)
+ nsecs_t sfEarlyGlDuration, nsecs_t appEarlyGlDuration,
+ nsecs_t hwcMinWorkDuration)
: impl::WorkDuration(currentFps, sfDuration, appDuration, sfEarlyDuration,
- appEarlyDuration, sfEarlyGlDuration, appEarlyGlDuration) {}
+ appEarlyDuration, sfEarlyGlDuration, appEarlyGlDuration,
+ hwcMinWorkDuration) {}
};
class WorkDurationTest : public testing::Test {
protected:
WorkDurationTest()
: mWorkDuration(Fps(60.0f), 10'500'000, 20'500'000, 16'000'000, 16'500'000, 13'500'000,
- 21'000'000) {}
+ 21'000'000, 1234) {}
~WorkDurationTest() = default;
@@ -104,7 +106,7 @@
}
TEST_F(WorkDurationTest, getConfigsForRefreshRate_DefaultOffsets) {
- TestableWorkDuration phaseOffsetsWithDefaultValues(Fps(60.0f), -1, -1, -1, -1, -1, -1);
+ TestableWorkDuration phaseOffsetsWithDefaultValues(Fps(60.0f), -1, -1, -1, -1, -1, -1, 0);
auto validateOffsets = [](const auto& offsets, std::chrono::nanoseconds vsyncPeriod) {
EXPECT_EQ(offsets.late.sfOffset, 1'000'000);
@@ -124,6 +126,8 @@
EXPECT_EQ(offsets.earlyGpu.sfWorkDuration, vsyncPeriod - 1'000'000ns);
EXPECT_EQ(offsets.earlyGpu.appWorkDuration, vsyncPeriod);
+
+ EXPECT_EQ(offsets.hwcMinWorkDuration, 0ns);
};
const auto testForRefreshRate = [&](Fps refreshRate) {
@@ -160,6 +164,10 @@
EXPECT_EQ(offsets.earlyGpu.appWorkDuration, 21'000'000ns);
}
+TEST_F(WorkDurationTest, minHwcWorkDuration) {
+ EXPECT_EQ(mWorkDuration.getCurrentConfigs().hwcMinWorkDuration, 1234ns);
+}
+
class TestablePhaseOffsets : public impl::PhaseOffsets {
public:
TestablePhaseOffsets(nsecs_t vsyncPhaseOffsetNs, nsecs_t sfVSyncPhaseOffsetNs,
@@ -172,13 +180,14 @@
std::optional<nsecs_t> highFpsEarlyGpuSfOffsetNs,
std::optional<nsecs_t> highFpsEarlyAppOffsetNs,
std::optional<nsecs_t> highFpsEarlyGpuAppOffsetNs,
- nsecs_t thresholdForNextVsync)
+ nsecs_t thresholdForNextVsync, nsecs_t hwcMinWorkDuration)
: impl::PhaseOffsets(Fps(60.0f), vsyncPhaseOffsetNs, sfVSyncPhaseOffsetNs,
earlySfOffsetNs, earlyGpuSfOffsetNs, earlyAppOffsetNs,
earlyGpuAppOffsetNs, highFpsVsyncPhaseOffsetNs,
highFpsSfVSyncPhaseOffsetNs, highFpsEarlySfOffsetNs,
highFpsEarlyGpuSfOffsetNs, highFpsEarlyAppOffsetNs,
- highFpsEarlyGpuAppOffsetNs, thresholdForNextVsync) {}
+ highFpsEarlyGpuAppOffsetNs, thresholdForNextVsync,
+ hwcMinWorkDuration) {}
};
class PhaseOffsetsTest : public testing::Test {
@@ -186,9 +195,9 @@
PhaseOffsetsTest() = default;
~PhaseOffsetsTest() = default;
- TestablePhaseOffsets mPhaseOffsets{2'000'000, 6'000'000, 7'000'000, 8'000'000, 3'000'000,
- 4'000'000, 2'000'000, 1'000'000, 2'000'000, 3'000'000,
- 3'000'000, 4'000'000, 10'000'000};
+ TestablePhaseOffsets mPhaseOffsets{2'000'000, 6'000'000, 7'000'000, 8'000'000, 3'000'000,
+ 4'000'000, 2'000'000, 1'000'000, 2'000'000, 3'000'000,
+ 3'000'000, 4'000'000, 10'000'000, 1234};
};
TEST_F(PhaseOffsetsTest, getConfigsForRefreshRate_unknownRefreshRate) {
@@ -258,8 +267,8 @@
}
TEST_F(PhaseOffsetsTest, getConfigsForRefreshRate_DefaultValues_60Hz) {
- TestablePhaseOffsets phaseOffsets{1'000'000, 1'000'000, {}, {}, {}, {}, 2'000'000,
- 1'000'000, {}, {}, {}, {}, 10'000'000};
+ TestablePhaseOffsets phaseOffsets{1'000'000, 1'000'000, {}, {}, {}, {}, 2'000'000,
+ 1'000'000, {}, {}, {}, {}, 10'000'000, 1234};
auto offsets = phaseOffsets.getConfigsForRefreshRate(Fps(60.0f));
EXPECT_EQ(offsets.late.sfOffset, 1'000'000);
@@ -282,8 +291,8 @@
}
TEST_F(PhaseOffsetsTest, getConfigsForRefreshRate_DefaultValues_90Hz) {
- TestablePhaseOffsets phaseOffsets{1'000'000, 1'000'000, {}, {}, {}, {}, 2'000'000,
- 1'000'000, {}, {}, {}, {}, 10'000'000};
+ TestablePhaseOffsets phaseOffsets{1'000'000, 1'000'000, {}, {}, {}, {}, 2'000'000,
+ 1'000'000, {}, {}, {}, {}, 10'000'000, 1234};
auto offsets = phaseOffsets.getConfigsForRefreshRate(Fps(90.0f));
EXPECT_EQ(offsets.late.sfOffset, 1'000'000);
@@ -305,4 +314,10 @@
EXPECT_EQ(offsets.earlyGpu.appWorkDuration, 21'222'222ns);
}
+TEST_F(PhaseOffsetsTest, minHwcWorkDuration) {
+ TestablePhaseOffsets phaseOffsets{1'000'000, 1'000'000, {}, {}, {}, {}, 2'000'000,
+ 1'000'000, {}, {}, {}, {}, 10'000'000, 1234};
+ EXPECT_EQ(phaseOffsets.getCurrentConfigs().hwcMinWorkDuration, 1234ns);
+}
+
} // namespace android::scheduler
diff --git a/services/surfaceflinger/tests/unittests/VsyncModulatorTest.cpp b/services/surfaceflinger/tests/unittests/VsyncModulatorTest.cpp
index 17648d5..60952bf 100644
--- a/services/surfaceflinger/tests/unittests/VsyncModulatorTest.cpp
+++ b/services/surfaceflinger/tests/unittests/VsyncModulatorTest.cpp
@@ -35,6 +35,7 @@
APP_OFFSET_EARLY_GPU,
SF_DURATION_EARLY_GPU,
APP_DURATION_EARLY_GPU,
+ HWC_MIN_WORK_DURATION,
};
static VsyncModulator::TimePoint Now() {
@@ -57,7 +58,8 @@
nanos(SF_DURATION_EARLY_GPU),
nanos(APP_DURATION_EARLY_GPU)};
- const VsyncModulator::VsyncConfigSet mOffsets = {kEarly, kEarlyGpu, kLate};
+ const VsyncModulator::VsyncConfigSet mOffsets = {kEarly, kEarlyGpu, kLate,
+ nanos(HWC_MIN_WORK_DURATION)};
VsyncModulator mVsyncModulator{mOffsets, Now};
void SetUp() override { EXPECT_EQ(kLate, mVsyncModulator.setVsyncConfigSet(mOffsets)); }