Loading fs_mgr/libsnapshot/Android.bp +16 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,16 @@ cc_library_static { static_libs: [ "libfs_mgr_binder" ], shared_libs: [ // TODO(b/148818798): remove when parent bug is fixed "libutilscallstack", ], cflags: [ "-g", "-O0", "-DLIBSNAPSHOT_USE_CALLSTACK", ], } cc_library_static { Loading Loading @@ -171,6 +181,9 @@ cc_test { "libsparse", "libutils", "libz", // TODO(b/148818798): remove when parent bug is fixed "libutilscallstack", ], static_libs: [ "libgmock", Loading Loading @@ -207,6 +220,9 @@ cc_binary { "liblp", "libprotobuf-cpp-lite", "libutils", // TODO(b/148818798): remove when parent bug is fixed. "libutilscallstack", ], init_rc: [ "snapshotctl.rc", Loading fs_mgr/libsnapshot/snapshot.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <sys/unistd.h> #include <optional> #include <sstream> #include <thread> #include <unordered_set> Loading @@ -37,6 +38,10 @@ #include <libfiemap/image_manager.h> #include <liblp/liblp.h> #ifdef LIBSNAPSHOT_USE_CALLSTACK #include <utils/CallStack.h> #endif #include <android/snapshot/snapshot.pb.h> #include "device_info.h" #include "partition_cow_creator.h" Loading Loading @@ -197,6 +202,22 @@ SnapshotManager::Slot SnapshotManager::GetCurrentSlot() { } bool SnapshotManager::RemoveAllUpdateState(LockedFile* lock) { LOG(INFO) << "Removing all update state."; #ifdef LIBSNAPSHOT_USE_CALLSTACK LOG(WARNING) << "Logging stack; see b/148818798."; // Do not use CallStack's log functions because snapshotctl relies on // android-base/logging to save log to files. // TODO(b/148818798): remove this before we ship. CallStack callstack; callstack.update(); auto callstack_str = callstack.toString(); LOG(WARNING) << callstack_str.c_str(); std::stringstream path; path << "/data/misc/snapshotctl_log/libsnapshot." << Now() << ".log"; android::base::WriteStringToFile(callstack_str.c_str(), path.str()); #endif if (!RemoveAllSnapshots(lock)) { LOG(ERROR) << "Could not remove all snapshots"; return false; Loading fs_mgr/libsnapshot/snapshotctl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <libsnapshot/snapshot.h> #include "utility.h" #include "utility.h" using namespace std::string_literals; int Usage() { Loading Loading
fs_mgr/libsnapshot/Android.bp +16 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,16 @@ cc_library_static { static_libs: [ "libfs_mgr_binder" ], shared_libs: [ // TODO(b/148818798): remove when parent bug is fixed "libutilscallstack", ], cflags: [ "-g", "-O0", "-DLIBSNAPSHOT_USE_CALLSTACK", ], } cc_library_static { Loading Loading @@ -171,6 +181,9 @@ cc_test { "libsparse", "libutils", "libz", // TODO(b/148818798): remove when parent bug is fixed "libutilscallstack", ], static_libs: [ "libgmock", Loading Loading @@ -207,6 +220,9 @@ cc_binary { "liblp", "libprotobuf-cpp-lite", "libutils", // TODO(b/148818798): remove when parent bug is fixed. "libutilscallstack", ], init_rc: [ "snapshotctl.rc", Loading
fs_mgr/libsnapshot/snapshot.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <sys/unistd.h> #include <optional> #include <sstream> #include <thread> #include <unordered_set> Loading @@ -37,6 +38,10 @@ #include <libfiemap/image_manager.h> #include <liblp/liblp.h> #ifdef LIBSNAPSHOT_USE_CALLSTACK #include <utils/CallStack.h> #endif #include <android/snapshot/snapshot.pb.h> #include "device_info.h" #include "partition_cow_creator.h" Loading Loading @@ -197,6 +202,22 @@ SnapshotManager::Slot SnapshotManager::GetCurrentSlot() { } bool SnapshotManager::RemoveAllUpdateState(LockedFile* lock) { LOG(INFO) << "Removing all update state."; #ifdef LIBSNAPSHOT_USE_CALLSTACK LOG(WARNING) << "Logging stack; see b/148818798."; // Do not use CallStack's log functions because snapshotctl relies on // android-base/logging to save log to files. // TODO(b/148818798): remove this before we ship. CallStack callstack; callstack.update(); auto callstack_str = callstack.toString(); LOG(WARNING) << callstack_str.c_str(); std::stringstream path; path << "/data/misc/snapshotctl_log/libsnapshot." << Now() << ".log"; android::base::WriteStringToFile(callstack_str.c_str(), path.str()); #endif if (!RemoveAllSnapshots(lock)) { LOG(ERROR) << "Could not remove all snapshots"; return false; Loading
fs_mgr/libsnapshot/snapshotctl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <libsnapshot/snapshot.h> #include "utility.h" #include "utility.h" using namespace std::string_literals; int Usage() { Loading