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

Commit cd4b579e authored by Akilesh Kailash's avatar Akilesh Kailash Committed by Gerrit Code Review
Browse files

Merge "init: Remove legacy virtual-ab support" into main

parents 283482bd ec799183
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -396,9 +396,10 @@ bool FirstStageMountVBootV2::CreateSnapshotPartitions(SnapshotManager* sm) {
    use_snapuserd_ = sm->IsSnapuserdRequired();
    if (use_snapuserd_) {
        if (sm->UpdateUsesUserSnapshots()) {
            LaunchFirstStageSnapuserd(SnapshotDriver::DM_USER);
            LaunchFirstStageSnapuserd();
        } else {
            LaunchFirstStageSnapuserd(SnapshotDriver::DM_SNAPSHOT);
            LOG(FATAL) << "legacy virtual-ab is no longer supported";
            return false;
        }
    }

+7 −16
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ static constexpr char kSnapuserdFirstStageInfoVar[] = "FIRST_STAGE_SNAPUSERD_INF
static constexpr char kSnapuserdLabel[] = "u:object_r:snapuserd_exec:s0";
static constexpr char kSnapuserdSocketLabel[] = "u:object_r:snapuserd_socket:s0";

void LaunchFirstStageSnapuserd(SnapshotDriver driver) {
void LaunchFirstStageSnapuserd() {
    SocketDescriptor socket_desc;
    socket_desc.name = android::snapshot::kSnapuserdSocket;
    socket_desc.type = SOCK_STREAM;
@@ -85,7 +85,6 @@ void LaunchFirstStageSnapuserd(SnapshotDriver driver) {
    if (pid == 0) {
        socket->Publish();

        if (driver == SnapshotDriver::DM_USER) {
        char arg0[] = "/system/bin/snapuserd";
        char arg1[] = "-user_snapshot";
        char* const argv[] = {arg0, arg1, nullptr};
@@ -93,14 +92,6 @@ void LaunchFirstStageSnapuserd(SnapshotDriver driver) {
            PLOG(FATAL) << "Cannot launch snapuserd; execv failed";
        }
        _exit(127);
        } else {
            char arg0[] = "/system/bin/snapuserd";
            char* const argv[] = {arg0, nullptr};
            if (execv(arg0, argv) < 0) {
                PLOG(FATAL) << "Cannot launch snapuserd; execv failed";
            }
            _exit(127);
        }
    }

    auto client = SnapuserdClient::Connect(android::snapshot::kSnapuserdSocket, 10s);
+1 −6
Original line number Diff line number Diff line
@@ -29,13 +29,8 @@
namespace android {
namespace init {

enum class SnapshotDriver {
    DM_SNAPSHOT,
    DM_USER,
};

// Fork and exec a new copy of snapuserd.
void LaunchFirstStageSnapuserd(SnapshotDriver driver);
void LaunchFirstStageSnapuserd();

class SnapuserdSelinuxHelper final {
    using SnapshotManager = android::snapshot::SnapshotManager;