刷导航包:
先扩容:/lib/systemd/systemd-growfs /
把导航包navigation-china*.tar.gz放到/tmp下
Autostart文件放到home/root下
执行sh Autostart-4.1.sh
Autostart-4.1.sh内容如下
#!/bin/bash
version="Install script Ver 3.8"
echo $version
echo Please prepare file from Artifactory.
#Disable navigation-china service to Exclude interference
mount -o remount,rw /
# Stop running navigation
kill -9 `pidof nv_main`
systemctl stop navigation-china
# Clean old version and data
rm -rf /opt/navroot/cn_amap
rm -rf /run/filesystem_storage/systemwide/navi/cn_navi/*
# Install package:
## Decompress to temp directory
temp_path=/opt/navroot/.temp
rm -rf $temp_path
mkdir -p $temp_path
# Raise exception when unzip failed: exit 1
tar -zxf /tmp/navigation-china*.tar.gz -C $temp_path || exit 1
## Move files to right directory
### Replace service file
if [ -f "$temp_path/lib/systemd/system/navigation-china.service" ];
then
echo $version: Use "navigation-china.service" in Package
mv $temp_path/lib/systemd/system/navigation-china.service /lib/systemd/system/navigation-china.service
else
if [ -f "navigation-china.service" ]; # service for product package.
then
echo $version: Use "navigation-china.service" in local
cp navigation-china.service /lib/systemd/system/navigation-china.service
else
echo $version:Package without service file
fi
fi
### Replace asan(AddressSanitizer) file
if [ -f "$temp_path/usr/lib/libasan.so" ];
then
echo $version: Add asan to system env
mv $temp_path/usr/lib/libasan.so* /usr/lib
chmod 755 /usr/lib/libasan.so*
else
echo $version:No asan in package
fi
### Mapdata Permissioins
if [ -f "$temp_path/lib/systemd/system/systemd-tmpfiles-setup-navchndb@.service" ];
then
echo $version: copy mapdata permissions service
mv $temp_path/lib/systemd/system/systemd-tmpfiles-setup-navchndb@.service /lib/systemd/system/
fi
if [ -f "$temp_path/etc/polkit-1/rules.d/04-navigation-china.rules" ];
then
echo $version: copy mapdata permissions rule
mv $temp_path/etc/polkit-1/rules.d/04-navigation-china.rules /etc/polkit-1/rules.d/04-navigation-china.rules
fi
### Replace Navigation
mv $temp_path/opt/navroot/cn_amap /opt/navroot/cn_amap
### Replace apparmor
if [ -f "$temp_path/etc/apparmor.d/opt.navroot.cn_amap.nv_main" ] # apparmor in develop package.
then
echo $version: Use "opt.navroot.cn_amap.nv_main" in Package
mv $temp_path/etc/apparmor.d/opt.navroot.cn_amap.nv_main /etc/apparmor.d/opt.navroot.cn_amap.nv_main
else
if [ -f "opt.navroot.cn_amap.nv_main" ] # apparmor for product package.
then
echo $version: Use "opt.navroot.cn_amap.nv_main" in local
cp opt.navroot.cn_amap.nv_main /etc/apparmor.d/opt.navroot.cn_amap.nv_main
else
echo $version:Package without apparmor configure
fi
fi
## Fix folder permission
chown nav:navi -R /opt/navroot/cn_amap/
chmod +x /opt/navroot/cn_amap/nv_main
# Apply configure
systemctl enable navigation-china
apparmor_parser -r /etc/apparmor.d/opt.navroot.cn_amap.nv_main
#restart navigation
systemctl start navigation-china
# check result
echo "Please check the script result: y/n and Enter"
echo "* Press 'y' to watch navigation-china service status"
echo "* Press 'n' to end script"
read response
# Clean
rm -rf $temp_path
if [ 'y' = $response ]
then
# watch status
watch systemctl status navigation-china
fi
echo $version: Done