首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令将SailfishOS+Alien Dalvik与android设备的区分自动化。

命令将SailfishOS+Alien Dalvik与android设备的区分自动化。
EN

Unix & Linux用户
提问于 2019-11-29 16:01:01
回答 2查看 124关注 0票数 0

EDIT0 :我有3部智能手机:

一款Jolla1智能手机,配有SailfishOS v3 + Alien和2款安卓智能手机。

我希望能够在shell语言中区分它们:

在我的Jolla1 Linux上:

代码语言:javascript
复制
$ 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

在我的第一部安卓智能手机上通过adb shell

代码语言:javascript
复制
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

在我的第二部安卓智能手机上通过adb shell

代码语言:javascript
复制
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

我尝试过这样做,但这两种设备都有getprop工具,因此这不起作用:

代码语言:javascript
复制
getprop 2>/dev/null | grep -q ro.build.version.release && export osFamily=Android || export osFamily=$(uname -s)

顺便说一句:SailfishOS是一个基于Linux内核+ Mer项目软件分发的真正Linux (最后一次是从停产的MeeGo Linux发行版中分叉出来的)。

EN

回答 2

Unix & Linux用户

发布于 2019-11-30 15:20:57

您可以从uname -m获得三个不同的响应并利用它。

我们期望设备在没有uname的情况下出现故障响应,但是我们会抑制错误并以空响应作为我们的指示。

代码语言:javascript
复制
case "$(uname -m 2>/dev/null)" in
  (armv7l)  DEVICE=Jolla ;;
  (aarch64) DEVICE=Android1 ;;
  ("")      DEVICE=Android2 ;;
  (*)       DEVICE=UNKNOWN ;;
esac

虽然我们可以参考软件版本号,但当操作系统被更新时,它们很可能会改变。在当前的情况下,使用硬件信息更可靠,但如果您得到更多共享相同硬件架构的设备,则会导致误报。

票数 1
EN

Unix & Linux用户

发布于 2019-12-03 13:57:33

另一种方法可以是在所有安卓设备上安装bash (例如Termux ),并让脚本测试OSTYPE bash变量:

其中一个是Android8.1设备,OSTYPE bash变量等于linux-android (见下面的屏幕截图)

因此,要区分的命令是:

代码语言:javascript
复制
echo $OSTYPE | grep -q android && export osFamily=Android || export osFamily=$(uname -s)
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/554813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档