diff --git a/README.md b/README.md index 65eb0cb8..040bc5ed 100644 --- a/README.md +++ b/README.md @@ -173,7 +173,14 @@ These files can be created manually: You can also use the `create-version-file.sh` helper shell script located in the `scripts` folder to do this. -4. Run the following command to create the compressed archive +4. Set the Q7S user as the file owner for both files + + ```sh + sudo chown root:root eive-obsw-stripped + sudo chown root:root obsw_version.txt + ``` + +5. Run the following command to create the compressed archive ```sh tar -cJvf eive-sw-update.tar.xz eive-obsw-stripped obsw_version.txt diff --git a/bsp_q7s/core/CoreController.cpp b/bsp_q7s/core/CoreController.cpp index 25151bc7..e3cad378 100644 --- a/bsp_q7s/core/CoreController.cpp +++ b/bsp_q7s/core/CoreController.cpp @@ -1936,6 +1936,22 @@ ReturnValue_t CoreController::executeSwUpdate(SwUpdateSources sourceDir, const u utility::handleSystemError(result, "CoreController::executeAction: Copying SW version file"); } cmd.clear(); + + // Set correct permission for both files + cmd << "chmod 0755 " << obswDestPath; + result = system(cmd.str().c_str()); + if (result != 0) { + utility::handleSystemError(result, "CoreController::executeAction: Copying SW permissions 0755"); + } + cmd.clear(); + + cmd << "chmod 0644 " << obswVersionDestPath; + result = system(cmd.str().c_str()); + if (result != 0) { + utility::handleSystemError(result, "CoreController::executeAction: Setting version file permission 0644"); + } + cmd.clear(); + // TODO: This takes a long time and will block the core controller.. Maybe use command executor? // For now dont care.. cmd << "writeprotect " << data[0] << " " << data[1] << " 1"; diff --git a/scripts/create-sw-update.sh b/scripts/create-sw-update.sh index 3aff1c2d..9f56fcae 100755 --- a/scripts/create-sw-update.sh +++ b/scripts/create-sw-update.sh @@ -15,7 +15,20 @@ if [ ! -f obsw_version.txt ]; then exit 1 fi +mkdir update-archive +cp eive-obsw-stripped update-archive +cp obsw_version.txt update-archive + +cd update-archive + +sudo chown root:root eive-obsw-stripped +sudo chown root:root obsw_version.txt + cmd="tar -cJvf eive-sw-update.tar.xz eive-obsw-stripped obsw_version.txt" echo "Running command ${cmd} to generate compressed SW update archive." eval ${cmd} +cp eive-sw-update.tar.xz .. +cd .. +rm -rf update-archive + echo "Generated eive-sw-update.tar.xz update archive."