Merge "Do not check for debuggable / profilable for app tracing." am: c89dd8594e

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1581672

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ia9f106b123f2091655f260e9b280d0826964a09d
This commit is contained in:
Primiano Tucci 2021-02-18 19:51:52 +00:00 committed by Automerger Merge Worker
commit bbd67c3ede
2 changed files with 11 additions and 32 deletions

View file

@ -103,14 +103,6 @@ void atrace_setup();
*/ */
void atrace_update_tags(); void atrace_update_tags();
/**
* Set whether the process is debuggable. By default the process is not
* considered debuggable. If the process is not debuggable then application-
* level tracing is not allowed unless the ro.debuggable system property is
* set to '1'.
*/
void atrace_set_debuggable(bool debuggable);
/** /**
* Set whether tracing is enabled for the current process. This is used to * Set whether tracing is enabled for the current process. This is used to
* prevent tracing within the Zygote process. * prevent tracing within the Zygote process.

View file

@ -52,7 +52,6 @@ constexpr uint32_t kSeqNoNotInit = static_cast<uint32_t>(-1);
atomic_bool atrace_is_ready = ATOMIC_VAR_INIT(false); atomic_bool atrace_is_ready = ATOMIC_VAR_INIT(false);
int atrace_marker_fd = -1; int atrace_marker_fd = -1;
uint64_t atrace_enabled_tags = ATRACE_TAG_NOT_READY; uint64_t atrace_enabled_tags = ATRACE_TAG_NOT_READY;
static bool atrace_is_debuggable = false;
static atomic_bool atrace_is_enabled = ATOMIC_VAR_INIT(true); static atomic_bool atrace_is_enabled = ATOMIC_VAR_INIT(true);
static pthread_mutex_t atrace_tags_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t atrace_tags_mutex = PTHREAD_MUTEX_INITIALIZER;
@ -96,15 +95,6 @@ uint64_t atrace_get_enabled_tags()
return atrace_enabled_tags; return atrace_enabled_tags;
} }
// Set whether this process is debuggable, which determines whether
// application-level tracing is allowed when the ro.debuggable system property
// is not set to '1'.
void atrace_set_debuggable(bool debuggable)
{
atrace_is_debuggable = debuggable;
atrace_update_tags();
}
// Check whether the given command line matches one of the comma-separated // Check whether the given command line matches one of the comma-separated
// values listed in the app_cmdlines property. // values listed in the app_cmdlines property.
static bool atrace_is_cmdline_match(const char* cmdline) static bool atrace_is_cmdline_match(const char* cmdline)
@ -128,24 +118,21 @@ static bool atrace_is_cmdline_match(const char* cmdline)
// Determine whether application-level tracing is enabled for this process. // Determine whether application-level tracing is enabled for this process.
static bool atrace_is_app_tracing_enabled() static bool atrace_is_app_tracing_enabled()
{ {
bool sys_debuggable = property_get_bool("ro.debuggable", 0);
bool result = false; bool result = false;
if (sys_debuggable || atrace_is_debuggable) { // Check whether tracing is enabled for this process.
// Check whether tracing is enabled for this process. FILE * file = fopen("/proc/self/cmdline", "re");
FILE * file = fopen("/proc/self/cmdline", "re"); if (file) {
if (file) { char cmdline[4096];
char cmdline[4096]; if (fgets(cmdline, sizeof(cmdline), file)) {
if (fgets(cmdline, sizeof(cmdline), file)) { result = atrace_is_cmdline_match(cmdline);
result = atrace_is_cmdline_match(cmdline);
} else {
ALOGE("Error reading cmdline: %s (%d)", strerror(errno), errno);
}
fclose(file);
} else { } else {
ALOGE("Error opening /proc/self/cmdline: %s (%d)", strerror(errno), ALOGE("Error reading cmdline: %s (%d)", strerror(errno), errno);
errno);
} }
fclose(file);
} else {
ALOGE("Error opening /proc/self/cmdline: %s (%d)", strerror(errno),
errno);
} }
return result; return result;