Loading bootstat/bootstat.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,10 @@ const std::map<std::string, int32_t> kBootReasonMap = { {"warm_reset_0x80", 141}, {"pon_reason_0xb0", 142}, {"reboot_download", 143}, {"reboot_recovery_mode", 144}, {"oem_sdi_err_fatal", 145}, {"pmic_watchdog", 146}, {"software_master", 147}, }; // Converts a string value representing the reason the system booted to an Loading init/property_service.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -762,13 +762,21 @@ void CreateSerializedPropertyInfo() { // Don't check for failure here, so we always have a sane list of properties. // E.g. In case of recovery, the vendor partition will not have mounted and we // still need the system / platform properties to function. LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", &property_infos); if (!LoadPropertyInfoFromFile("/vendor/etc/selinux/vendor_property_contexts", &property_infos)) { // Fallback to nonplat_* if vendor_* doesn't exist. LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", &property_infos); } } else { if (!LoadPropertyInfoFromFile("/plat_property_contexts", &property_infos)) { return; } if (!LoadPropertyInfoFromFile("/vendor_property_contexts", &property_infos)) { // Fallback to nonplat_* if vendor_* doesn't exist. LoadPropertyInfoFromFile("/nonplat_property_contexts", &property_infos); } } auto serialized_contexts = std::string(); auto error = std::string(); Loading init/selinux.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -423,12 +423,16 @@ void SelinuxRestoreContext() { selinux_android_restorecon("/vendor_file_contexts", 0); selinux_android_restorecon("/plat_property_contexts", 0); selinux_android_restorecon("/nonplat_property_contexts", 0); selinux_android_restorecon("/vendor_property_contexts", 0); selinux_android_restorecon("/plat_seapp_contexts", 0); selinux_android_restorecon("/nonplat_seapp_contexts", 0); selinux_android_restorecon("/vendor_seapp_contexts", 0); selinux_android_restorecon("/plat_service_contexts", 0); selinux_android_restorecon("/nonplat_service_contexts", 0); selinux_android_restorecon("/vendor_service_contexts", 0); selinux_android_restorecon("/plat_hwservice_contexts", 0); selinux_android_restorecon("/nonplat_hwservice_contexts", 0); selinux_android_restorecon("/vendor_hwservice_contexts", 0); selinux_android_restorecon("/sepolicy", 0); selinux_android_restorecon("/vndservice_contexts", 0); Loading libbacktrace/UnwindStack.cpp +21 −15 Original line number Diff line number Diff line Loading @@ -128,11 +128,30 @@ bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, } frames->resize(total_frames); size_t cur_frame = 0; for (size_t i = num_ignore_frames; i < unwinder.NumFrames(); i++, cur_frame++) { for (size_t i = num_ignore_frames; i < unwinder.NumFrames(); i++) { auto frame = &unwinder_frames[i]; // Inject extra 'virtual' frame that represents the dex pc data. // The dex pc is magic register defined in the Mterp interpreter, // and thus it will be restored/observed in the frame after it. // Adding the dex frame first here will create something like: // #7 pc 006b1ba1 libartd.so ExecuteMterpImpl+14625 // #8 pc 0015fa20 core.vdex java.util.Arrays.binarySearch+8 // #9 pc 0039a1ef libartd.so art::interpreter::Execute+719 if (frame->dex_pc != 0) { backtrace_frame_data_t* dex_frame = &frames->at(cur_frame); dex_frame->num = cur_frame++; dex_frame->pc = frame->dex_pc; dex_frame->rel_pc = frame->dex_pc; dex_frame->sp = frame->sp; dex_frame->stack_size = 0; dex_frame->func_offset = 0; FillInDexFrame(stack_map, frame->dex_pc, dex_frame); } backtrace_frame_data_t* back_frame = &frames->at(cur_frame); back_frame->num = cur_frame; back_frame->num = cur_frame++; back_frame->rel_pc = frame->rel_pc; back_frame->pc = frame->pc; Loading @@ -147,19 +166,6 @@ bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, back_frame->map.offset = frame->map_offset; back_frame->map.load_bias = frame->map_load_bias; back_frame->map.flags = frame->map_flags; // Inject a frame that represents the dex pc data. if (frame->dex_pc != 0) { cur_frame++; backtrace_frame_data_t* dex_frame = &frames->at(cur_frame); dex_frame->num = cur_frame; dex_frame->pc = frame->dex_pc; dex_frame->rel_pc = frame->dex_pc; dex_frame->sp = back_frame->sp; dex_frame->stack_size = 0; dex_frame->func_offset = 0; FillInDexFrame(stack_map, frame->dex_pc, dex_frame); } } return true; Loading libcutils/include/private/android_filesystem_config.h +1 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ #define AID_RESERVED_DISK 1065 /* GID that has access to reserved disk space */ #define AID_STATSD 1066 /* statsd daemon */ #define AID_INCIDENTD 1067 /* incidentd daemon */ #define AID_SECURE_ELEMENT 1068 /* secure element subsystem */ /* Changes to this file must be made in AOSP, *not* in internal branches. */ #define AID_SHELL 2000 /* adb and debug shell user */ Loading Loading
bootstat/bootstat.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,10 @@ const std::map<std::string, int32_t> kBootReasonMap = { {"warm_reset_0x80", 141}, {"pon_reason_0xb0", 142}, {"reboot_download", 143}, {"reboot_recovery_mode", 144}, {"oem_sdi_err_fatal", 145}, {"pmic_watchdog", 146}, {"software_master", 147}, }; // Converts a string value representing the reason the system booted to an Loading
init/property_service.cpp +10 −2 Original line number Diff line number Diff line Loading @@ -762,13 +762,21 @@ void CreateSerializedPropertyInfo() { // Don't check for failure here, so we always have a sane list of properties. // E.g. In case of recovery, the vendor partition will not have mounted and we // still need the system / platform properties to function. LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", &property_infos); if (!LoadPropertyInfoFromFile("/vendor/etc/selinux/vendor_property_contexts", &property_infos)) { // Fallback to nonplat_* if vendor_* doesn't exist. LoadPropertyInfoFromFile("/vendor/etc/selinux/nonplat_property_contexts", &property_infos); } } else { if (!LoadPropertyInfoFromFile("/plat_property_contexts", &property_infos)) { return; } if (!LoadPropertyInfoFromFile("/vendor_property_contexts", &property_infos)) { // Fallback to nonplat_* if vendor_* doesn't exist. LoadPropertyInfoFromFile("/nonplat_property_contexts", &property_infos); } } auto serialized_contexts = std::string(); auto error = std::string(); Loading
init/selinux.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -423,12 +423,16 @@ void SelinuxRestoreContext() { selinux_android_restorecon("/vendor_file_contexts", 0); selinux_android_restorecon("/plat_property_contexts", 0); selinux_android_restorecon("/nonplat_property_contexts", 0); selinux_android_restorecon("/vendor_property_contexts", 0); selinux_android_restorecon("/plat_seapp_contexts", 0); selinux_android_restorecon("/nonplat_seapp_contexts", 0); selinux_android_restorecon("/vendor_seapp_contexts", 0); selinux_android_restorecon("/plat_service_contexts", 0); selinux_android_restorecon("/nonplat_service_contexts", 0); selinux_android_restorecon("/vendor_service_contexts", 0); selinux_android_restorecon("/plat_hwservice_contexts", 0); selinux_android_restorecon("/nonplat_hwservice_contexts", 0); selinux_android_restorecon("/vendor_hwservice_contexts", 0); selinux_android_restorecon("/sepolicy", 0); selinux_android_restorecon("/vndservice_contexts", 0); Loading
libbacktrace/UnwindStack.cpp +21 −15 Original line number Diff line number Diff line Loading @@ -128,11 +128,30 @@ bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, } frames->resize(total_frames); size_t cur_frame = 0; for (size_t i = num_ignore_frames; i < unwinder.NumFrames(); i++, cur_frame++) { for (size_t i = num_ignore_frames; i < unwinder.NumFrames(); i++) { auto frame = &unwinder_frames[i]; // Inject extra 'virtual' frame that represents the dex pc data. // The dex pc is magic register defined in the Mterp interpreter, // and thus it will be restored/observed in the frame after it. // Adding the dex frame first here will create something like: // #7 pc 006b1ba1 libartd.so ExecuteMterpImpl+14625 // #8 pc 0015fa20 core.vdex java.util.Arrays.binarySearch+8 // #9 pc 0039a1ef libartd.so art::interpreter::Execute+719 if (frame->dex_pc != 0) { backtrace_frame_data_t* dex_frame = &frames->at(cur_frame); dex_frame->num = cur_frame++; dex_frame->pc = frame->dex_pc; dex_frame->rel_pc = frame->dex_pc; dex_frame->sp = frame->sp; dex_frame->stack_size = 0; dex_frame->func_offset = 0; FillInDexFrame(stack_map, frame->dex_pc, dex_frame); } backtrace_frame_data_t* back_frame = &frames->at(cur_frame); back_frame->num = cur_frame; back_frame->num = cur_frame++; back_frame->rel_pc = frame->rel_pc; back_frame->pc = frame->pc; Loading @@ -147,19 +166,6 @@ bool Backtrace::Unwind(unwindstack::Regs* regs, BacktraceMap* back_map, back_frame->map.offset = frame->map_offset; back_frame->map.load_bias = frame->map_load_bias; back_frame->map.flags = frame->map_flags; // Inject a frame that represents the dex pc data. if (frame->dex_pc != 0) { cur_frame++; backtrace_frame_data_t* dex_frame = &frames->at(cur_frame); dex_frame->num = cur_frame; dex_frame->pc = frame->dex_pc; dex_frame->rel_pc = frame->dex_pc; dex_frame->sp = back_frame->sp; dex_frame->stack_size = 0; dex_frame->func_offset = 0; FillInDexFrame(stack_map, frame->dex_pc, dex_frame); } } return true; Loading
libcutils/include/private/android_filesystem_config.h +1 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ #define AID_RESERVED_DISK 1065 /* GID that has access to reserved disk space */ #define AID_STATSD 1066 /* statsd daemon */ #define AID_INCIDENTD 1067 /* incidentd daemon */ #define AID_SECURE_ELEMENT 1068 /* secure element subsystem */ /* Changes to this file must be made in AOSP, *not* in internal branches. */ #define AID_SHELL 2000 /* adb and debug shell user */ Loading