Доброго времени суток!
После почти пяти лет эксплуатации ODROID X2 было принято решение обновить до
ASUS Tinker Board
Основной причиной обновление является переход на более свежую и стабильную версию Android.
На момент написания поста это
Android 6.01 Marshmallow v13.13.0.74. 2018/02/06
Для активации поддержи USB GPS (
USB GPS GLONASS приемник LS23030)
Нужно немного магии:
Код:
adb connect $IP
adb root
adb connect $IP
adb remount
$IP - заменить на IP Tinker Board
1. В ядре не активирована поддержка serial usb device
Решение:
- Программный драйвер pl2303drv
Установка:
Код:
adb push -p pl2303drv /system/bin
adb shell chmod 755 /system/bin/pl2303drv
adb shell chown root:root /system/bin/pl2303drv
- /system/bin/install-recovery.sh
Код:
#!/system/bin/sh
/system/bin/pl2303drv /dev/ttyUSB0 115200 > /dev/null &
exit 0
Установка:
Код:
adb push -p install-recovery.sh /system/bin
adb shell chmod 755 /system/bin/install-recovery.sh
adb shell chown root:root /system/bin/install-recovery.sh
2. Добавляем библиотеку для работы с GPS
- /system/lib/hw/gps.default.so
Установка:
Код:
adb push -p gps.default.so /system/lib/hw
adb shell chmod 644 /system/lib/hw/gps.default.so
adb shell chown root:root /system/lib/hw/gps.default.so
- /system/etc/gps.conf
Код:
GPSPORT /dev/ttyUSB0
GPSSPEED 115200
Установка:
Код:
adb push -p gps.conf /system/etc
adb shell chmod 644 /system/etc/gps.conf
adb shell chown root:root /system/etc/gps.conf
- редактируем /system/build.prop
Получаем build.prop с Tinker Board
Код:
adb pull -p -a /system/build.prop build.prop
Изменения:
Код:
##GPS
#ro.factory.hasGPS=false - находим и комментируем
android.hardware.location.gps=true
gps.enable=true
ro.kernel.android.gps=ttyUSB0
ro.kernel.android.gps.speed=115200
ro.kernel.android.max_rate=1
ro.gps.agps_provider=1
##
Установка:
Код:
adb push -p build.prop /system
3. Установка GApps:
Качаем
Open GApps Выбираем: ARM, Android 6.0, далее по вкусу (я выбрал pico).
Подготавливаем Open GApps на компьютере (linux):
Код:
#!/bin/bash
PKG_DIR="./pkg"
SYS_DIR="./sys"
TMP_DIR="./.tmp"
rm -r $PKG_DIR
mkdir $PKG_DIR
rm -r $TMP_DIR
mkdir $TMP_DIR
rm -r $SYS_DIR
mkdir $SYS_DIR
unzip open_gapps-arm-6.0-pico-20180617.zip -d $PKG_DIR # указываем путь и имя скаченного zip Open GApps
for PKG in $(find ./pkg -name "*.tar.[g|l|x]z")
do
echo $PKG
tar -xf $PKG -C $TMP_DIR
done
for PKG in $(find ./pkg -name "*.tar")
do
echo $PKG
tar -xf $PKG -C $TMP_DIR
done
for dir in $TMP_DIR/*/
do
pkg=${dir%*/}
dpi=$(ls -1 $pkg | head -1)
echo "Preparing $pkg/$dpi"
rsync -aq $pkg/$dpi/ $SYS_DIR/
done
rm -r $PKG_DIR
rm -r $TMP_DIR
exit 0
Установка 1 этап:
Код:
#!/bin/bash
SYS_DIR="./sys"
IP="192.168.0.11"
adb disconnect
sleep 5s
adb connect $IP
sleep 5s
adb root
sleep 5s
adb connect $IP
sleep 5s
adb remount
sleep 5s
adb push -p $SYS_DIR /system
adb shell rm -rf /system/priv-app/PackageInstaller
adb reboot > /dev/null &
sleep 5s
adb disconnect $IP
exit 0
Установка 2 этап (после перезагрузки):
Код:
#!/bin/bash
SYS_DIR="./sys"
IP="192.168.0.11"
adb disconnect
sleep 5s
adb connect $IP
sleep 5s
adb root
sleep 5s
adb connect $IP
sleep 5s
adb remount
sleep 5s
adb shell pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
adb shell pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
adb shell pm grant com.google.android.setupwizard android.permission.READ_PHONE_STATE
sleep 5s
adb reboot > /dev/null &
sleep 5s
adb disconnect $IP
exit 0
После перезагрузки радуемся )))
Всё остальное заработало из коробки.