Показать сообщение отдельно
Старый 25.06.2018, 23:31   #65
AlekSher
Старший Пользователь
 
Регистрация: 28.01.2012
Возраст: 40
Город: Королёв
Регион: 50, 90, 150
Машина: VW POLO LIFTBACK
Сообщений: 106
AlekSher is on a distinguished road
По умолчанию Обновление до Tinker Board

Доброго времени суток!

После почти пяти лет эксплуатации 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
После перезагрузки радуемся )))

Всё остальное заработало из коробки.
AlekSher вне форума   Ответить с цитированием