-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathupdate_status_utils.sh
executable file
·69 lines (64 loc) · 1.9 KB
/
update_status_utils.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
# 2019 (c) Muntashir Al-Islam. All rights reserved.
# Taken from https://chromium.googlesource.com/aosp/platform/system/update_engine/+/master/update_status_utils.cc
# Get script directory
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
. "${SCRIPT_DIR}/service_constants.sh"
#
# Args: UPDATE_STATUS
#
function UpdateStatusToString {
. "${SCRIPT_DIR}/update_status.py"
status="$1"
case $status in
$IDLE)
echo $kUpdateStatusIdle
;;
$CHECKING_FOR_UPDATE)
echo $kUpdateStatusCheckingForUpdate
;;
$UPDATE_AVAILABLE)
echo $kUpdateStatusUpdateAvailable
;;
$NEED_PERMISSION_TO_UPDATE)
echo $kUpdateStatusNeedPermissionToUpdate
;;
$DOWNLOADING)
echo $kUpdateStatusDownloading
;;
$VERIFYING)
echo $kUpdateStatusVerifying
;;
$FINALIZING)
echo $kUpdateStatusFinalizing
;;
$UPDATED_NEED_REBOOT)
echo $kUpdateStatusUpdatedNeedReboot
;;
$REPORTING_ERROR_EVENT)
echo $kUpdateStatusReportingErrorEvent
;;
$ATTEMPTING_ROLLBACK)
echo $kUpdateStatusAttemptingRollback
;;
$DISABLED)
echo $kUpdateStatusDisabled
;;
*)
echo ""
;;
esac
}
#
# Args: last_checked_time, progress, current_operation, new_version, new_size, is_enterprise_rollback, is_install, eol_date
#
function BroadcastStatus {
last_checked_time=$1
progress=$2
current_operation=$3
new_version=$4
new_size=$5
dbus-send --system --type=signal /org/chromium/UpdateEngine org.chromium.UpdateEngineInterface.StatusUpdateAdvanced int64:$last_checked_time double:$progress string:"$(UpdateStatusToString $current_operation)" string:"${new_version}" int64:$new_size
pb_arr="$(python3 "${SCRIPT_DIR}/update_engine/status_result_to_pb_array.py" "$@")"
dbus-send --system --type=signal /org/chromium/UpdateEngine org.chromium.UpdateEngineInterface.StatusUpdate array:byte:"${pb_arr}"
}