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

Commit 918beeb8 authored by Dario Freni's avatar Dario Freni
Browse files

Preserve attributes on rollback.

Bug: 211570674
Bug: 195477363
Test: atest RollbackTest (test modified in a separate CL)
Change-Id: Ic5b8a7c7ace1efe32fc2ce1afeb6485a542bcea4
parent a98ef807
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -1131,16 +1131,15 @@ binder::Status InstalldNativeService::fixupAppData(const std::optional<std::stri
}

static int32_t copy_directory_recursive(const char* from, const char* to) {
    char *argv[] = {
        (char*) kCpPath,
    char* argv[] =
            {(char*)kCpPath,
             (char*)"-F", /* delete any existing destination file first (--remove-destination) */
        (char*) "-p", /* preserve timestamps, ownership, and permissions */
             (char*)"--preserve=mode,ownership,timestamps,xattr", /* preserve properties */
             (char*)"-R", /* recurse into subdirectories (DEST must be a directory) */
             (char*)"-P", /* Do not follow symlinks [default] */
             (char*)"-d", /* don't dereference symlinks */
             (char*)from,
        (char*) to
    };
             (char*)to};

    LOG(DEBUG) << "Copying " << from << " to " << to;
    return logwrap_fork_execvp(ARRAY_SIZE(argv), argv, nullptr, false, LOG_ALOG, false, nullptr);