Loading cmds/installd/otapreopt_chroot.cpp +0 −30 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/macros.h> #include <android-base/scopeguard.h> #include <android-base/stringprintf.h> #include <android-base/unique_fd.h> #include <libdm/dm.h> Loading Loading @@ -73,15 +72,6 @@ static void ActivateApexPackages() { } } static void DeactivateApexPackages() { std::vector<std::string> apexd_cmd{"/system/bin/apexd", "--unmount-all"}; std::string apexd_error_msg; bool exec_result = Exec(apexd_cmd, &apexd_error_msg); if (!exec_result) { PLOG(ERROR) << "Running /system/bin/apexd --unmount-all failed: " << apexd_error_msg; } } static void TryExtraMount(const char* name, const char* slot, const char* target) { std::string partition_name = StringPrintf("%s%s", name, slot); Loading Loading @@ -241,30 +231,10 @@ static int otapreopt_chroot(const int argc, char **arg) { exit(205); } // Call apexd --unmount-all to free up loop and dm block devices, so that we can re-use // them during the next invocation. Since otapreopt_chroot calls exit in case something goes // wrong we need to register our own atexit handler. // We want to register this handler before actually activating apex packages. This is mostly // due to the fact that if fail to unmount apexes, then on the next run of otapreopt_chroot // we will ask for new loop devices instead of re-using existing ones, and we really don't want // to do that. :) if (atexit(DeactivateApexPackages) != 0) { LOG(ERROR) << "Failed to register atexit hander"; exit(206); } // Try to mount APEX packages in "/apex" in the chroot dir. We need at least // the ART APEX, as it is required by otapreopt to run dex2oat. ActivateApexPackages(); auto cleanup = android::base::make_scope_guard([](){ std::vector<std::string> apexd_cmd{"/system/bin/apexd", "--unmount-all"}; std::string apexd_error_msg; bool exec_result = Exec(apexd_cmd, &apexd_error_msg); if (!exec_result) { PLOG(ERROR) << "Running /system/bin/apexd --unmount-all failed: " << apexd_error_msg; } }); // Check that an ART APEX has been activated; clean up and exit // early otherwise. static constexpr const std::string_view kRequiredApexs[] = { Loading cmds/installd/utils.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,8 @@ int prepare_app_cache_dir(const std::string& parent, const char* name, mode_t ta static const char* kProcFilesystems = "/proc/filesystems"; bool supports_sdcardfs() { if (!property_get_bool("external_storage.sdcardfs.enabled", true)) return false; std::string supported; if (!android::base::ReadFileToString(kProcFilesystems, &supported)) { PLOG(ERROR) << "Failed to read supported filesystems"; Loading libs/binder/include/binder/ProcessState.h +0 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,6 @@ private: Vector<handle_entry>mHandleToObject; String8 mRootDir; bool mThreadPoolStarted; volatile int32_t mThreadPoolSeq; Loading libs/gui/BLASTBufferQueue.cpp +22 −7 Original line number Diff line number Diff line Loading @@ -204,13 +204,16 @@ void BLASTBufferQueue::update(const sp<SurfaceControl>& surface, uint32_t width, if (mRequestedSize != newSize) { mRequestedSize.set(newSize); mBufferItemConsumer->setDefaultBufferSize(mRequestedSize.width, mRequestedSize.height); if (mLastBufferScalingMode != NATIVE_WINDOW_SCALING_MODE_FREEZE) { if (mLastBufferInfo.scalingMode != NATIVE_WINDOW_SCALING_MODE_FREEZE) { // If the buffer supports scaling, update the frame immediately since the client may // want to scale the existing buffer to the new size. mSize = mRequestedSize; t.setFrame(mSurfaceControl, {0, 0, static_cast<int32_t>(mSize.width), static_cast<int32_t>(mSize.height)}); // We only need to update the scale if we've received at least one buffer. The reason // for this is the scale is calculated based on the requested size and buffer size. // If there's no buffer, the scale will always be 1. if (mLastBufferInfo.hasBuffer) { setMatrix(&t, mLastBufferInfo); } applyTransaction = true; } } Loading Loading @@ -374,8 +377,10 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { // Ensure BLASTBufferQueue stays alive until we receive the transaction complete callback. incStrong((void*)transactionCallbackThunk); mLastBufferScalingMode = bufferItem.mScalingMode; mLastAcquiredFrameNumber = bufferItem.mFrameNumber; mLastBufferInfo.update(true /* hasBuffer */, bufferItem.mGraphicBuffer->getWidth(), bufferItem.mGraphicBuffer->getHeight(), bufferItem.mTransform, bufferItem.mScalingMode); auto releaseBufferCallback = std::bind(releaseBufferCallbackThunk, wp<BLASTBufferQueue>(this) /* callbackContext */, Loading @@ -388,8 +393,7 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { bufferItem.mFence ? new Fence(bufferItem.mFence->dup()) : Fence::NO_FENCE); t->addTransactionCompletedCallback(transactionCallbackThunk, static_cast<void*>(this)); t->setFrame(mSurfaceControl, {0, 0, static_cast<int32_t>(mSize.width), static_cast<int32_t>(mSize.height)}); setMatrix(t, mLastBufferInfo); t->setCrop(mSurfaceControl, computeCrop(bufferItem)); t->setTransform(mSurfaceControl, bufferItem.mTransform); t->setTransformToDisplayInverse(mSurfaceControl, bufferItem.mTransformToDisplayInverse); Loading Loading @@ -515,6 +519,17 @@ bool BLASTBufferQueue::rejectBuffer(const BufferItem& item) { return mSize != bufferSize; } void BLASTBufferQueue::setMatrix(SurfaceComposerClient::Transaction* t, const BufferInfo& bufferInfo) { uint32_t bufWidth = bufferInfo.width; uint32_t bufHeight = bufferInfo.height; float dsdx = mSize.width / static_cast<float>(bufWidth); float dsdy = mSize.height / static_cast<float>(bufHeight); t->setMatrix(mSurfaceControl, dsdx, 0, 0, dsdy); } void BLASTBufferQueue::setTransactionCompleteCallback( uint64_t frameNumber, std::function<void(int64_t)>&& transactionCompleteCallback) { std::lock_guard _lock{mMutex}; Loading libs/gui/LayerState.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -459,10 +459,6 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eCropChanged; crop = other.crop; } if (other.what & eFrameChanged) { what |= eFrameChanged; orientedDisplaySpaceRect = other.orientedDisplaySpaceRect; } if (other.what & eBufferChanged) { what |= eBufferChanged; buffer = other.buffer; Loading Loading
cmds/installd/otapreopt_chroot.cpp +0 −30 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ #include <android-base/file.h> #include <android-base/logging.h> #include <android-base/macros.h> #include <android-base/scopeguard.h> #include <android-base/stringprintf.h> #include <android-base/unique_fd.h> #include <libdm/dm.h> Loading Loading @@ -73,15 +72,6 @@ static void ActivateApexPackages() { } } static void DeactivateApexPackages() { std::vector<std::string> apexd_cmd{"/system/bin/apexd", "--unmount-all"}; std::string apexd_error_msg; bool exec_result = Exec(apexd_cmd, &apexd_error_msg); if (!exec_result) { PLOG(ERROR) << "Running /system/bin/apexd --unmount-all failed: " << apexd_error_msg; } } static void TryExtraMount(const char* name, const char* slot, const char* target) { std::string partition_name = StringPrintf("%s%s", name, slot); Loading Loading @@ -241,30 +231,10 @@ static int otapreopt_chroot(const int argc, char **arg) { exit(205); } // Call apexd --unmount-all to free up loop and dm block devices, so that we can re-use // them during the next invocation. Since otapreopt_chroot calls exit in case something goes // wrong we need to register our own atexit handler. // We want to register this handler before actually activating apex packages. This is mostly // due to the fact that if fail to unmount apexes, then on the next run of otapreopt_chroot // we will ask for new loop devices instead of re-using existing ones, and we really don't want // to do that. :) if (atexit(DeactivateApexPackages) != 0) { LOG(ERROR) << "Failed to register atexit hander"; exit(206); } // Try to mount APEX packages in "/apex" in the chroot dir. We need at least // the ART APEX, as it is required by otapreopt to run dex2oat. ActivateApexPackages(); auto cleanup = android::base::make_scope_guard([](){ std::vector<std::string> apexd_cmd{"/system/bin/apexd", "--unmount-all"}; std::string apexd_error_msg; bool exec_result = Exec(apexd_cmd, &apexd_error_msg); if (!exec_result) { PLOG(ERROR) << "Running /system/bin/apexd --unmount-all failed: " << apexd_error_msg; } }); // Check that an ART APEX has been activated; clean up and exit // early otherwise. static constexpr const std::string_view kRequiredApexs[] = { Loading
cmds/installd/utils.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,8 @@ int prepare_app_cache_dir(const std::string& parent, const char* name, mode_t ta static const char* kProcFilesystems = "/proc/filesystems"; bool supports_sdcardfs() { if (!property_get_bool("external_storage.sdcardfs.enabled", true)) return false; std::string supported; if (!android::base::ReadFileToString(kProcFilesystems, &supported)) { PLOG(ERROR) << "Failed to read supported filesystems"; Loading
libs/binder/include/binder/ProcessState.h +0 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,6 @@ private: Vector<handle_entry>mHandleToObject; String8 mRootDir; bool mThreadPoolStarted; volatile int32_t mThreadPoolSeq; Loading
libs/gui/BLASTBufferQueue.cpp +22 −7 Original line number Diff line number Diff line Loading @@ -204,13 +204,16 @@ void BLASTBufferQueue::update(const sp<SurfaceControl>& surface, uint32_t width, if (mRequestedSize != newSize) { mRequestedSize.set(newSize); mBufferItemConsumer->setDefaultBufferSize(mRequestedSize.width, mRequestedSize.height); if (mLastBufferScalingMode != NATIVE_WINDOW_SCALING_MODE_FREEZE) { if (mLastBufferInfo.scalingMode != NATIVE_WINDOW_SCALING_MODE_FREEZE) { // If the buffer supports scaling, update the frame immediately since the client may // want to scale the existing buffer to the new size. mSize = mRequestedSize; t.setFrame(mSurfaceControl, {0, 0, static_cast<int32_t>(mSize.width), static_cast<int32_t>(mSize.height)}); // We only need to update the scale if we've received at least one buffer. The reason // for this is the scale is calculated based on the requested size and buffer size. // If there's no buffer, the scale will always be 1. if (mLastBufferInfo.hasBuffer) { setMatrix(&t, mLastBufferInfo); } applyTransaction = true; } } Loading Loading @@ -374,8 +377,10 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { // Ensure BLASTBufferQueue stays alive until we receive the transaction complete callback. incStrong((void*)transactionCallbackThunk); mLastBufferScalingMode = bufferItem.mScalingMode; mLastAcquiredFrameNumber = bufferItem.mFrameNumber; mLastBufferInfo.update(true /* hasBuffer */, bufferItem.mGraphicBuffer->getWidth(), bufferItem.mGraphicBuffer->getHeight(), bufferItem.mTransform, bufferItem.mScalingMode); auto releaseBufferCallback = std::bind(releaseBufferCallbackThunk, wp<BLASTBufferQueue>(this) /* callbackContext */, Loading @@ -388,8 +393,7 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) { bufferItem.mFence ? new Fence(bufferItem.mFence->dup()) : Fence::NO_FENCE); t->addTransactionCompletedCallback(transactionCallbackThunk, static_cast<void*>(this)); t->setFrame(mSurfaceControl, {0, 0, static_cast<int32_t>(mSize.width), static_cast<int32_t>(mSize.height)}); setMatrix(t, mLastBufferInfo); t->setCrop(mSurfaceControl, computeCrop(bufferItem)); t->setTransform(mSurfaceControl, bufferItem.mTransform); t->setTransformToDisplayInverse(mSurfaceControl, bufferItem.mTransformToDisplayInverse); Loading Loading @@ -515,6 +519,17 @@ bool BLASTBufferQueue::rejectBuffer(const BufferItem& item) { return mSize != bufferSize; } void BLASTBufferQueue::setMatrix(SurfaceComposerClient::Transaction* t, const BufferInfo& bufferInfo) { uint32_t bufWidth = bufferInfo.width; uint32_t bufHeight = bufferInfo.height; float dsdx = mSize.width / static_cast<float>(bufWidth); float dsdy = mSize.height / static_cast<float>(bufHeight); t->setMatrix(mSurfaceControl, dsdx, 0, 0, dsdy); } void BLASTBufferQueue::setTransactionCompleteCallback( uint64_t frameNumber, std::function<void(int64_t)>&& transactionCompleteCallback) { std::lock_guard _lock{mMutex}; Loading
libs/gui/LayerState.cpp +0 −4 Original line number Diff line number Diff line Loading @@ -459,10 +459,6 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eCropChanged; crop = other.crop; } if (other.what & eFrameChanged) { what |= eFrameChanged; orientedDisplaySpaceRect = other.orientedDisplaySpaceRect; } if (other.what & eBufferChanged) { what |= eBufferChanged; buffer = other.buffer; Loading