forked from daliansky/XiaoMi-Pro-Hackintosh
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathone-key-hidpi_cn.sh
More file actions
executable file
·173 lines (151 loc) · 5.23 KB
/
one-key-hidpi_cn.sh
File metadata and controls
executable file
·173 lines (151 loc) · 5.23 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#!/bin/bash
#set -x # for DEBUGGING
# stevezhengshiqi重写于2019.02.25
# 这个脚本是 https://github.com/xzhih/one-key-hidpi 的一个精简,谢谢@xzhih
# 只支持小米笔记本Pro (9e5,747)
DISPLAYPATH="/System/Library/Displays/Contents/Resources/Overrides"
# 界面 (参考:https://github.com/xzhih/one-key-hidpi/master/hidpi.sh)
function interface() {
echo ' _ _ _____ _____ _____ _____ '
echo ' | | | | |_ _| | __ \ | __ \ |_ _|'
echo ' | |__| | | | | | | | | |__) | | |'
echo ' | __ | | | | | | | | ___/ | |'
echo ' | | | | _| |_ | |__| | | | _| |_ '
echo ' |_| |_| |_____| |_____/ |_| |_____|'
echo '此脚本只限于小米笔记本Pro!'
echo '============================================'
}
# 选择选项
function choice() {
choose=0
echo '(1) 开启HiDPI'
echo '(2) 关闭HiDPI'
echo '(3) 退出'
read -p "输入你的选择 [1~3]: " choose
}
# 如果网络连接失败,则退出
function networkWarn(){
echo "错误: 下载one-key-hidpi失败, 请检查网络连接状态"
clean
exit 1
}
# 下载资源来自 https://github.com/daliansky/XiaoMi-Pro-Hackintosh/tree/master/one-key-hidpi
function download(){
echo '正在下载屏幕文件...'
mkdir -p one-key-hidpi
cd one-key-hidpi
curl -fsSL https://raw.githubusercontent.com/daliansky/XiaoMi-Pro-Hackintosh/master/one-key-hidpi/Icons.plist -O || networkWarn
curl -fsSL https://raw.githubusercontent.com/daliansky/XiaoMi-Pro-Hackintosh/master/one-key-hidpi/DisplayVendorID-9e5/DisplayProductID-747 -O || networkWarn
curl -fsSL https://raw.githubusercontent.com/daliansky/XiaoMi-Pro-Hackintosh/master/one-key-hidpi/DisplayVendorID-9e5/DisplayProductID-747.icns -O || networkWarn
curl -fsSL https://raw.githubusercontent.com/daliansky/XiaoMi-Pro-Hackintosh/master/one-key-hidpi/DisplayVendorID-9e5/DisplayProductID-747.tiff -O || networkWarn
echo '下载完成'
echo
}
function removeold() {
# 卸载 HiScale (在commit https://github.com/daliansky/XiaoMi-Pro-Hackintosh/commit/fa35968b5acf851e274932ca52e67c43fe747877 加入)
echo '正在移除旧版本...'
sudo launchctl remove /Library/LaunchAgents/org.zysuper.riceCracker.plist
sudo pkill riceCrackerDaemon
sudo rm -f /Library/LaunchAgents/org.zysuper.ricecracker.daemon.plist
sudo rm -f /usr/bin/riceCrackerDaemon
# 卸载旧版本one-key-hidpi (在commit https://github.com/daliansky/XiaoMi-Pro-Hackintosh/commit/a3b7f136209a91455944b4afece7e14a931e62ba 加入)
sudo rm -rf $DISPLAYPATH/DisplayVendorID-9e5
echo '移除完成'
echo
}
# 重新挂载系统分区, 如果macOS版本>=10.15
function remountSystem() {
swver=$(sw_vers -productVersion | sed 's/\.//g' | colrm 5)
if [[ $swver -ge 1015 ]]; then
echo '正在重新挂载系统分区来获得写入权限...'
sudo mount -uw /
echo '挂载完成'
echo '请在脚本运行结束后立即重启电脑, 让电脑重新给系统分区上锁!'
echo
fi
}
# 给Icons.plist创建备份
function backup() {
echo '正在备份...'
sudo mkdir -p $DISPLAYPATH/backup
sudo cp $DISPLAYPATH/Icons.plist $DISPLAYPATH/backup/
echo '备份完成'
echo
}
# 拷贝屏幕文件夹
function copy() {
echo '正在拷贝文件到目标路径...'
sudo mkdir -p $DISPLAYPATH/DisplayVendorID-9e5
sudo cp ./Icons.plist $DISPLAYPATH/
sudo cp ./DisplayProductID-747 $DISPLAYPATH/DisplayVendorID-9e5/
sudo cp ./DisplayProductID-747.icns $DISPLAYPATH/DisplayVendorID-9e5/
sudo cp ./DisplayProductID-747.tiff $DISPLAYPATH/DisplayVendorID-9e5/
echo '拷贝完成'
echo
}
# 修复权限
function fixpermission() {
echo '正在修复权限...'
sudo chown root:wheel $DISPLAYPATH/Icons.plist
sudo chown root:wheel $DISPLAYPATH/DisplayVendorID-9e5
sudo chown root:wheel $DISPLAYPATH/DisplayVendorID-9e5/DisplayProductID-747
sudo chown root:wheel $DISPLAYPATH/DisplayVendorID-9e5/DisplayProductID-747.icns
sudo chown root:wheel $DISPLAYPATH/DisplayVendorID-9e5/DisplayProductID-747.tiff
echo '修复完成'
echo
}
# 清理
function clean() {
echo '正在清理临时文件...'
sudo rm -rf ../one-key-hidpi
echo '清理完成'
echo
}
# 安装
function install() {
download
remountSystem
removeold
backup
copy
fixpermission
clean
echo '很棒! 安装已结束, 请重启并在显示器面板选择1424x802分辨率! '
exit 0
}
# 卸载
function uninstall() {
echo '正在卸载one-key-hidpi...'
remountSystem
sudo rm -rf $DISPLAYPATH/DisplayVendorID-9e5
# 恢复 Icon.plist 从备份文件夹(如果存在)
if [ -f "$DISPLAYPATH/backup/Icons.plist" ];then
sudo cp $DISPLAYPATH/backup/Icons.plist $DISPLAYPATH/
sudo chown root:wheel $DISPLAYPATH/Icons.plist
fi
# 移除备份文件夹
sudo rm -rf $DISPLAYPATH/backup
echo '卸载完成'
exit 0
}
# 主程序
function main() {
interface
choice
case $choose in
1)
install
;;
2)
uninstall
;;
3)
exit 0
;;
*)
echo "错误: 无效输入, 脚本将退出";
exit 1
;;
esac
}
main