]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - IMG/cpio/ventoy/hook/deepin/ventoy_autoinstall.sh
Support unattended auto install for Deepin/UOS
[Ventoy.git] / IMG / cpio / ventoy / hook / deepin / ventoy_autoinstall.sh
1 #!/ventoy/busybox/sh
2
3 . /ventoy/hook/ventoy_hook_lib.sh
4
5 change_var_value() {
6 local vfile=$1
7 local vkey=$2
8 local vVal=$3
9 local quote=$4
10 local vline
11
12 if [ $quote -eq 0 ]; then
13 vline="$vkey = $vVal"
14 else
15 vline="$vkey = \"$vVal\""
16 fi
17
18 if grep -q -m1 "^$vkey[[:space:]]*=" $vfile; then
19 sed "s#^$vkey[[:space:]]*=.*#$vline#g" -i $vfile
20 else
21 echo "$vline" >> $vfile
22 fi
23 }
24
25 setting_script_process() {
26 local sfile=$1
27 local vItem
28 local vB64Item
29
30 vItem=$(grep '^language[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
31 if [ -n "$vItem" ]; then
32 change_var_value $sfile 'select_language_default_locale' "$vItem" 0
33 fi
34
35 vItem=$(grep '^timezone[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
36 if [ -n "$vItem" ]; then
37 change_var_value $sfile 'timezone_default' "$vItem" 0
38 fi
39
40 vItem=$(grep '^hostname[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
41 if [ -n "$vItem" ]; then
42 change_var_value $sfile 'system_info_default_hostname' "$vItem" 1
43 change_var_value $sfile 'DI_HOSTNAME' "$vItem" 1
44 fi
45
46 vItem=$(grep '^root_password[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
47 if [ -n "$vItem" ]; then
48 vB64Item=$(echo -n "$vItem" | base64)
49 change_var_value $sfile 'system_info_default_root_password' "$vB64Item" 1
50 change_var_value $sfile 'DI_ROOTPASSWORD' "$vB64Item" 1
51 fi
52
53 vItem=$(grep '^default_username[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
54 if [ -n "$vItem" ]; then
55 change_var_value $sfile 'system_info_default_username' "$vItem" 1
56 change_var_value $sfile 'DI_USERNAME' "$vItem" 1
57 fi
58
59 vItem=$(grep '^default_password[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
60 if [ -n "$vItem" ]; then
61 change_var_value $sfile 'system_info_default_password' "$vItem" 1
62 change_var_value $sfile 'DI_PASSWORD' "$vItem" 1
63 fi
64
65 vItem=$(grep '^install_disk[[:space:]]*=' /ventoy/autoinstall | awk '{print $3}')
66 if [ -n "$vItem" ]; then
67 echo "DI_FULLDISK_MULTIDISK_DEVICE = $vItem" >> $sfile
68 echo "DI_ROOTDISK = $vItem" >> $sfile
69 echo "DI_BOOTLOADER = $vItem" >> $sfile
70 fi
71
72 change_var_value $sfile 'skip_virtual_machine_page' 'true' 0
73 change_var_value $sfile 'skip_select_language_page' 'true' 0
74 change_var_value $sfile 'skip_select_language_page_on_first_boot' 'true' 0
75 change_var_value $sfile 'skip_system_keyboard_page' 'true' 0
76 change_var_value $sfile 'skip_system_info_page' 'true' 0
77 change_var_value $sfile 'skip_qr_code_system_info_page' 'true' 0
78 change_var_value $sfile 'skip_timezone_page' 'true' 0
79 change_var_value $sfile 'skip_partition_page' 'true' 0
80 change_var_value $sfile 'system_info_password_validate_required' '0' 0
81 change_var_value $sfile 'system_info_password_strong_check' 'false' 0
82 change_var_value $sfile 'partition_do_auto_part' 'true' 0
83 change_var_value $sfile 'system_info_disable_license' 'true' 0
84 change_var_value $sfile 'system_info_disable_experience' 'true' 0
85 change_var_value $sfile 'system_info_disable_privacy_license' 'true' 0
86
87 #filesystem.squashfs search ini
88 #first_page_state=0,表示不跳过首页,展示首页让用户自己选择
89 #first_page_state=1,表示跳过首页,并且自动点击一键安装
90 #first_page_state=2,表示跳过首页,并且自动点击自定义安装
91 #first_page_state=3,表示跳过首页,并且直接以全盘安装方式自动安装
92 change_var_value $sfile 'first_page_state' '3' 0
93 }
94
95 update_settings() {
96 local script=$1
97 local newscript
98
99 echo "update_settings for $script ..."
100
101 newscript=$(basename $script)
102 cp -a $script /ventoy/vini_${newscript}
103 setting_script_process /ventoy/vini_${newscript}
104
105 rm -f $script
106 cp -a /ventoy/vini_${newscript} $script
107 }
108
109 sh /ventoy/hook/common/auto_install_varexp.sh /ventoy/autoinstall
110
111 update_settings /root/usr/share/deepin-installer/resources/default_settings.ini
112
113 ls -1 /root/usr/share/deepin-installer/resources/override/ | while read line; do
114 update_settings /root/usr/share/deepin-installer/resources/override/$line
115 done
116
117 ls -1 /root/usr/share/deepin-installer/resources/oem/ | while read line; do
118 update_settings /root/usr/share/deepin-installer/resources/oem/$line
119 done
120
121
122