#!/bin/sh ########################################################################### # # Copyright (c) 2021-2023 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file factory_reset.sh # # @author (last) Vy Duong # @date (last) 26-May-2023 # @author (original) Vy Duong # @date (original) 26-May-2023 # ############################################################################ # Description # - delete WiFi settings # - delete Bluetooth settings # - settings.conf to default # - brightness to default (5) # - delete logs # - keep partition password # - keep service password # - keep cloudsync tokens # Parameters # - None # sources . ./_errors_ . ./_functions_ # variables PARAM_COUNT=0 LOC_SETTINGS_CONF="/opt/leahi/configurations/Settings/System.conf" LOC_SETTINGS_DFLT="/opt/leahi/configurations/Settings/System.dflt" LOC_LOG_BASE_FOLDER="/media/sd-card/" LOC_TX_LOG_BASE_FOLDER="/opt/leahi/configurations/treatment/" LOC_SCRIPTS=/opt/leahi/scripts LOC_SCRIPTS_BRIGHTNESS=$LOC_SCRIPTS/brightness.sh DEFAULT_BRIGHTNESS_LEVEL=5 TRUE=1 FALSE=0 # functions function deleteWiFi() { $LOC_SCRIPTS/wifi_disconnect_network.sh wlan0 } function deleteBluetooth() { $LOC_SCRIPTS/bluetooth_paired_clear.sh } function defaultSettings() { servicePasswordLine=$(grep -A1 "\[Service\]" "$LOC_SETTINGS_CONF" | grep Password) # store the service password line check_result "$?" "$ERR_CMDFAIL_SETTINGS_CONF_PASSNOTFOUND" cp $LOC_SETTINGS_DFLT $LOC_SETTINGS_CONF # reset the settings to default settings check_result "$?" "$ERR_CMDFAIL_SETTINGS_CONF_OVERWRITE" sed -i "s/^.*Password.*$/$servicePasswordLine/" $LOC_SETTINGS_CONF # keep the service password check_result "$?" "$ERR_CMDFAIL_SETTINGS_DFLT_RESTORE" } function defaultBrightness() { $LOC_SCRIPTS_BRIGHTNESS $DEFAULT_BRIGHTNESS_LEVEL } function deleteLogFiles() { # handling log deletion in a special manner: # - Log files generated today # - are not deleted # - not part of the checking whether deletion was successful # - setting maxDepth to 2 due to path used is root level with sd-card/ folders of logs # NOTE: find command always return true / non-zero! when using with exec # TODO: Checking the file count should be fixed later # Remove the contents of the log folder rm "$LOC_LOG_BASE_FOLDER"/log/* _has_error_=!$? check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_LOG_FOLDER" # Remove the contents of the service folder rm "$LOC_LOG_BASE_FOLDER"/service/* _has_error_=!$? check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_SERVICE_LOG" fileCount=$(find "$LOC_LOG_BASE_FOLDER" -maxdepth 2 -type f -daystart -mtime +0 | wc -l) _has_error_=$fileCount check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_COUNT_SERVICE_LOG" # Deleting treatment logs in encrypted partition: find "$LOC_TX_LOG_BASE_FOLDER" -maxdepth 2 -type f | xargs rm _has_error_=!$? check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_REMOVE_TX_LOG" fileCount=$(find "$LOC_TX_LOG_BASE_FOLDER" -maxdepth 2 -type f | wc -l) _has_error_=$fileCount check_result $_has_error_ "$ERR_CMDFAIL_SETTINGS_COUNT_TX_LOG" } function main() { deleteWiFi deleteBluetooth defaultSettings defaultBrightness deleteLogFiles } # checks check_param_count "$#" "$PARAM_COUNT" # main main # exit gracefully sleep 0.1 echo "" exit 0