Loading cmds/dumpstate/dumpstate.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -3657,6 +3657,10 @@ void Dumpstate::MaybeSavePlaceholderScreenshot() { // is saved for backwards compatibility. std::string path = ds.GetPath(ds.CalledByApi() ? "-png.tmp" : ".png"); if (android::os::CopyFileToFile(DEFAULT_SCREENSHOT_PATH, path)) { if (chown(path.c_str(), AID_SHELL, AID_SHELL)) { MYLOGE("Unable to change ownership of copied screenshot %s: %s\n", path.c_str(), strerror(errno)); } MYLOGD("Saved fallback screenshot on %s\n", path.c_str()); } else { MYLOGE("Failed to save fallback screenshot on %s\n", path.c_str()); Loading Loading @@ -4076,6 +4080,10 @@ void Progress::Save() { if (!android::base::WriteStringToFile(content, path_)) { MYLOGE("Could not save stats on %s\n", path_.c_str()); } if (chown(path_.c_str(), AID_SHELL, AID_SHELL)) { MYLOGE("Unable to change ownership of %s: %s\n", path_.c_str(), strerror(errno)); } } int32_t Progress::Get() const { Loading include/input/Input.h +3 −0 Original line number Diff line number Diff line Loading @@ -1035,6 +1035,9 @@ protected: int32_t mAction; int32_t mActionButton; ftl::Flags<MotionFlag> mFlags; // The input subsystem no longer sets edge flags to anything except NONE. However, some users of // the input API, such as Launcher, use it to store metadata about an event, so we have to keep // it around. int32_t mEdgeFlags; int32_t mMetaState; int32_t mButtonState; Loading include/input/InputTransport.h +2 −1 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ struct InputMessage { int32_t buttonState; MotionClassification classification; // base type: uint8_t uint8_t empty2[3]; // 3 bytes to fill gap created by classification // TODO(b/321101159): remove edgeFlags; it's always set to AMOTION_EVENT_EDGE_FLAG_NONE. int32_t edgeFlags; nsecs_t downTime __attribute__((aligned(8))); float dsdx; // Begin window transform Loading Loading @@ -371,7 +372,7 @@ public: status_t publishMotionEvent(uint32_t seq, int32_t eventId, int32_t deviceId, int32_t source, ui::LogicalDisplayId displayId, std::array<uint8_t, 32> hmac, int32_t action, int32_t actionButton, int32_t flags, int32_t edgeFlags, int32_t metaState, int32_t buttonState, int32_t metaState, int32_t buttonState, MotionClassification classification, const ui::Transform& transform, float xPrecision, float yPrecision, float xCursorPosition, float yCursorPosition, const ui::Transform& rawTransform, Loading libs/binder/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -735,7 +735,7 @@ cc_library { } cc_library { name: "libbinder_rpc_no_legacy", name: "libbinder_rpc_no_blob", vendor_available: true, defaults: [ "libbinder_common_defaults", Loading libs/binder/IPCThreadState.cpp +13 −11 Original line number Diff line number Diff line Loading @@ -1505,6 +1505,10 @@ status_t IPCThreadState::executeCommand(int32_t cmd) reinterpret_cast<BBinder*>(tr.cookie)->decStrong(this); } else { error = UNKNOWN_TRANSACTION; #ifdef BINDER_WITH_OBSERVERS [[clang::no_destroy]] static StaticString16 kDeletedBinder(u"<deleted_binder>"); interfaceDescriptor = kDeletedBinder; #endif } } else { Loading @@ -1515,6 +1519,15 @@ status_t IPCThreadState::executeCommand(int32_t cmd) } #ifdef BINDER_WITH_OBSERVERS int64_t endTimeNanos = uptimeNanos(); BinderCallData observerData = { .interfaceDescriptor = interfaceDescriptor, .transactionCode = tr.code, .startTimeNanos = startTimeNanos, .endTimeNanos = endTimeNanos, .senderUid = tr.sender_euid, }; ProcessState::self()->mBinderObserver->addStatMaybeFlush(mBinderStatsQueue, observerData); #endif //ALOGI("<<<< TRANSACT from pid %d restore pid %d sid %s uid %d\n", // mCallingPid, origPid, (origSid ? origSid : "<N/A>"), origUid); Loading Loading @@ -1559,17 +1572,6 @@ status_t IPCThreadState::executeCommand(int32_t cmd) } LOG_ONEWAY("NOT sending reply to %d!", mCallingPid); } #ifdef BINDER_WITH_OBSERVERS BinderCallData observerData = { .interfaceDescriptor = interfaceDescriptor, .transactionCode = tr.code, .startTimeNanos = startTimeNanos, .endTimeNanos = endTimeNanos, .senderUid = tr.sender_euid, }; ProcessState::self()->mBinderObserver->addStatMaybeFlush(mBinderStatsQueue, observerData); #endif mServingStackPointer = origServingStackPointer; mCallingPid = origPid; mCallingSid = origSid; Loading Loading
cmds/dumpstate/dumpstate.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -3657,6 +3657,10 @@ void Dumpstate::MaybeSavePlaceholderScreenshot() { // is saved for backwards compatibility. std::string path = ds.GetPath(ds.CalledByApi() ? "-png.tmp" : ".png"); if (android::os::CopyFileToFile(DEFAULT_SCREENSHOT_PATH, path)) { if (chown(path.c_str(), AID_SHELL, AID_SHELL)) { MYLOGE("Unable to change ownership of copied screenshot %s: %s\n", path.c_str(), strerror(errno)); } MYLOGD("Saved fallback screenshot on %s\n", path.c_str()); } else { MYLOGE("Failed to save fallback screenshot on %s\n", path.c_str()); Loading Loading @@ -4076,6 +4080,10 @@ void Progress::Save() { if (!android::base::WriteStringToFile(content, path_)) { MYLOGE("Could not save stats on %s\n", path_.c_str()); } if (chown(path_.c_str(), AID_SHELL, AID_SHELL)) { MYLOGE("Unable to change ownership of %s: %s\n", path_.c_str(), strerror(errno)); } } int32_t Progress::Get() const { Loading
include/input/Input.h +3 −0 Original line number Diff line number Diff line Loading @@ -1035,6 +1035,9 @@ protected: int32_t mAction; int32_t mActionButton; ftl::Flags<MotionFlag> mFlags; // The input subsystem no longer sets edge flags to anything except NONE. However, some users of // the input API, such as Launcher, use it to store metadata about an event, so we have to keep // it around. int32_t mEdgeFlags; int32_t mMetaState; int32_t mButtonState; Loading
include/input/InputTransport.h +2 −1 Original line number Diff line number Diff line Loading @@ -125,6 +125,7 @@ struct InputMessage { int32_t buttonState; MotionClassification classification; // base type: uint8_t uint8_t empty2[3]; // 3 bytes to fill gap created by classification // TODO(b/321101159): remove edgeFlags; it's always set to AMOTION_EVENT_EDGE_FLAG_NONE. int32_t edgeFlags; nsecs_t downTime __attribute__((aligned(8))); float dsdx; // Begin window transform Loading Loading @@ -371,7 +372,7 @@ public: status_t publishMotionEvent(uint32_t seq, int32_t eventId, int32_t deviceId, int32_t source, ui::LogicalDisplayId displayId, std::array<uint8_t, 32> hmac, int32_t action, int32_t actionButton, int32_t flags, int32_t edgeFlags, int32_t metaState, int32_t buttonState, int32_t metaState, int32_t buttonState, MotionClassification classification, const ui::Transform& transform, float xPrecision, float yPrecision, float xCursorPosition, float yCursorPosition, const ui::Transform& rawTransform, Loading
libs/binder/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -735,7 +735,7 @@ cc_library { } cc_library { name: "libbinder_rpc_no_legacy", name: "libbinder_rpc_no_blob", vendor_available: true, defaults: [ "libbinder_common_defaults", Loading
libs/binder/IPCThreadState.cpp +13 −11 Original line number Diff line number Diff line Loading @@ -1505,6 +1505,10 @@ status_t IPCThreadState::executeCommand(int32_t cmd) reinterpret_cast<BBinder*>(tr.cookie)->decStrong(this); } else { error = UNKNOWN_TRANSACTION; #ifdef BINDER_WITH_OBSERVERS [[clang::no_destroy]] static StaticString16 kDeletedBinder(u"<deleted_binder>"); interfaceDescriptor = kDeletedBinder; #endif } } else { Loading @@ -1515,6 +1519,15 @@ status_t IPCThreadState::executeCommand(int32_t cmd) } #ifdef BINDER_WITH_OBSERVERS int64_t endTimeNanos = uptimeNanos(); BinderCallData observerData = { .interfaceDescriptor = interfaceDescriptor, .transactionCode = tr.code, .startTimeNanos = startTimeNanos, .endTimeNanos = endTimeNanos, .senderUid = tr.sender_euid, }; ProcessState::self()->mBinderObserver->addStatMaybeFlush(mBinderStatsQueue, observerData); #endif //ALOGI("<<<< TRANSACT from pid %d restore pid %d sid %s uid %d\n", // mCallingPid, origPid, (origSid ? origSid : "<N/A>"), origUid); Loading Loading @@ -1559,17 +1572,6 @@ status_t IPCThreadState::executeCommand(int32_t cmd) } LOG_ONEWAY("NOT sending reply to %d!", mCallingPid); } #ifdef BINDER_WITH_OBSERVERS BinderCallData observerData = { .interfaceDescriptor = interfaceDescriptor, .transactionCode = tr.code, .startTimeNanos = startTimeNanos, .endTimeNanos = endTimeNanos, .senderUid = tr.sender_euid, }; ProcessState::self()->mBinderObserver->addStatMaybeFlush(mBinderStatsQueue, observerData); #endif mServingStackPointer = origServingStackPointer; mCallingPid = origPid; mCallingSid = origSid; Loading