Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96259800 authored by Steve Fung's avatar Steve Fung Committed by Android Git Automerger
Browse files

am 3f43729a: am 7c262abe: Merge "crash_reporter: Set Version and Product ID"

* commit '3f43729a':
  crash_reporter: Set Version and Product ID
parents fc5185a5 3f43729a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ LOCAL_MODULE := crash_reporter_tests
LOCAL_CPP_EXTENSION := $(crash_reporter_cpp_extension)
LOCAL_SHARED_LIBRARIES := libchrome \
    libchromeos \
    libcutils \
    libdbus \
    libpcrecpp
LOCAL_SRC_FILES := $(crash_reporter_test_src)
+0 −16
Original line number Diff line number Diff line
@@ -53,9 +53,6 @@ const char kSystemCrashPath[] = "/data/misc/crash_reporter/crash";
const char kUploadVarPrefix[] = "upload_var_";
const char kUploadFilePrefix[] = "upload_file_";

// Key of the lsb-release entry containing the OS version.
const char kLsbVersionKey[] = "CHROMEOS_RELEASE_VERSION";

// Normally this path is not used.  Unfortunately, there are a few edge cases
// where we need this.  Any process that runs as kDefaultUserName that crashes
// is consider a "user crash".  That includes the initial Chrome browser that
@@ -387,27 +384,14 @@ void CrashCollector::AddCrashMetaUploadData(const std::string &key,
void CrashCollector::WriteCrashMetaData(const FilePath &meta_path,
                                        const std::string &exec_name,
                                        const std::string &payload_path) {
  chromeos::KeyValueStore store;
  if (!store.Load(FilePath(lsb_release_))) {
    LOG(ERROR) << "Problem parsing " << lsb_release_;
    // Even though there was some failure, take as much as we could read.
  }

  std::string version("unknown");
  if (!store.GetString(kLsbVersionKey, &version)) {
    LOG(ERROR) << "Unable to read " << kLsbVersionKey << " from "
               << lsb_release_;
  }
  int64_t payload_size = -1;
  base::GetFileSize(FilePath(payload_path), &payload_size);
  std::string meta_data = StringPrintf("%sexec_name=%s\n"
                                       "ver=%s\n"
                                       "payload=%s\n"
                                       "payload_size=%" PRId64 "\n"
                                       "done=1\n",
                                       extra_metadata_.c_str(),
                                       exec_name.c_str(),
                                       version.c_str(),
                                       payload_path.c_str(),
                                       payload_size);
  // We must use WriteNewFile instead of base::WriteFile as we
+13 −0
Original line number Diff line number Diff line
@@ -55,6 +55,13 @@ static const uid_t kUnknownUid = -1;
const char *UserCollector::kUserId = "Uid:\t";
const char *UserCollector::kGroupId = "Gid:\t";

// The property containing the OS version.
const char kVersionProperty[] = "ro.build.id";

// The property containing the product id.
const char kProductIDProperty[] = "ro.product.product_id";


using base::FilePath;
using base::StringPrintf;

@@ -455,6 +462,12 @@ UserCollector::ErrorType UserCollector::ConvertAndEnqueueCrash(
  if (GetLogContents(FilePath(log_config_path_), exec, log_path))
    AddCrashMetaData("log", log_path.value());

  char value[PROPERTY_VALUE_MAX];
  property_get(kVersionProperty, value, "undefined");
  AddCrashMetaUploadData("ver", value);
  property_get(kProductIDProperty, value, "undefined");
  AddCrashMetaUploadData("prod", value);

  ErrorType error_type =
      ConvertCoreToMinidump(pid, container_dir, core_path, minidump_path);
  if (error_type != kErrorNone) {