Comando para automatizar a diferenciação SailfishOS+Alien Dalvik de um dispositivo Android

Comando para automatizar a diferenciação SailfishOS+Alien Dalvik de um dispositivo Android

EDIT0: Tenho 3 smartphones:

Um smartphone Jolla1 com SailfishOS v3 + Alien Dalvik e 2 smartphones Android.

Quero poder diferenciá-los na linguagem shell:

No meu Jolla1 Linux:

$ uname -s
Linux
$ getprop ro.build.version.release
4.1.2
$ uname -a 
Linux myJolla1 3.4.108.20190506.1 #1 SMP PREEMPT Wed Oct 9 18:24:45 UTC 2019 armv7l armv7l armv7l GNU/Linux

No meu primeiro smartphone Android via adb shell:

shell@hlteatt:/ $ getprop ro.build.version.release
5.0
shell@hlteatt:/ $ uname -s
/system/bin/sh: uname: not found
127|shell@hlteatt:/ $ uname -a
/system/bin/sh: uname: not found

No meu segundo smartphone Android via adb shell:

BV9500Pro:/ $ uname -s
Linux
BV9500Pro:/ $ getprop ro.build.version.release
8.1.0
BV9500Pro:/ $ uname -a                                                                                                                             
Linux localhost 4.4.95 #9 SMP PREEMPT Wed Mar 20 18:03:34 CST 2019 aarch64

Eu tentei isso, mas ambos os dispositivos possuem a getpropferramenta, então isso não funciona:

getprop 2>/dev/null | grep -q ro.build.version.release && export osFamily=Android || export osFamily=$(uname -s)

POR FALAR NISSO :Sailfish OSé um verdadeiro Linux baseado no kernel Linux + oDistribuição de software do projeto Mer(o último sendo bifurcado do descontinuadoMeeGoDistribuição Linux)

Responder1

Você pode obter três respostas distintas uname -me fazer uso delas.

Esperamos uma resposta de falha do dispositivo sem uname, mas suprimimos o erro e tomamos a resposta vazia como nosso indicador.

case "$(uname -m 2>/dev/null)" in
  (armv7l)  DEVICE=Jolla ;;
  (aarch64) DEVICE=Android1 ;;
  ("")      DEVICE=Android2 ;;
  (*)       DEVICE=UNKNOWN ;;
esac

Embora possamos nos referir aos números de versão do software, eles podem mudar quando/se o sistema operacional for atualizado. Usar as informações de hardware é mais confiável nas circunstâncias atuais, mas gerará falsos positivos se você obtiver outros dispositivos que compartilhem a mesma arquitetura de hardware.

Responder2

Outra maneira poderia ser instalar o bash (o aplicativo Termux, por exemplo) em todos os dispositivos Android e fazer com que o script teste a OSTYPEvariável bash:

No dispositivo Android 8.1, a OSTYPEvariável bash é igual linux-android(veja a imagem abaixo)

Portanto o comando para diferenciar será:

echo $OSTYPE | grep -q android && export osFamily=Android || export osFamily=$(uname -s)

insira a descrição da imagem aqui

informação relacionada