直接在Ubuntu或Gentoo上运行Android应用程序 -- applications 领域 和 linux 领域 android 相关 的问题

Running android apps directly on ubuntu or gentoo


简体版||繁體版
1
vote

问题

中文

我想知道是否可以直接在像Ubuntu或Gentoo等Linux发行版上运行Android应用程序? 我的意思是在Linux上运行应用程序在没有VirtualBox的帮助下,在Google Chroom上的模拟器(如Genymotion),在Google Chroom ...

是否可以以这样的方式编译Linux内核? 如果是这样,是否有任何指南逐步描述过程?

任何帮助被夸张

英文原文

I wonder if is it possible to run android applications DIRECTLY on a Linux distribution like ubuntu or gentoo? I mean running the apps on linux without the help of virtualbox,simulators like genymotion, on google chroom...

is it possible to compile a linux kernel in such a way to do this? if so, is there any guide to to describe the process step by step?

any help is appriciated

     

回答列表

1
 
vote

是的,虽然现在它仍然是实验性的。它被称为Anbox,它使用内核功能在发行版和Android系统之间共享内核。

哦,根本不需要重新编译内核。

 

Yes, there is, though right now it's still experimental. It's called Anbox, and it uses kernel features to share the kernel between the distro and the Android system.

Oh, and no need to recompile the kernel at all.

 
 
0
 
vote

否,它不是。即使您在基于ARM的系统上运行Linux,或者只想为Android-x86运行应用程序,所以您不需要仿真器,您仍然存在GNU用户空间没有的问题Android的相同设施和图书馆。所有Android应用程序使用的标准库,GNU / Linux不存在 Android Framework ,因此该应用程序将无法运行。与特定方式编译内核无关。

 

No, it isn't. Even if you were running Linux on an ARM-based system, or only wanted to run apps for Android-x86, so that you didn't need an emulator, you'd still have the problem that the GNU userspace doesn't have the same facilities and libraries that Android has. The Android framework, the standard library used by all Android apps, doesn't exist for GNU/Linux, so the apps would not be able to run. It's nothing to do with compiling the kernel in a particular way.

 
 
       
       
0
 
vote

Ubuntu 14.04及更高版本

Anbox具有> = 4GB RAM推荐硬件要求。

弃用Anbox-Installer。

请在 https://github.com/anbox/anbox/blob/master/docs/install.md

安装必要的内核模块

为了将PPA添加到您的Ubuntu系统,请运行以下内容 命令:

  sudo add-apt-repository ppa:morphis/anbox-support sudo apt update sudo apt install anbox-modules-dkms   

这些会将ppa添加到您的系统并安装 包含ASHMEM和粘合剂内核的Anbox-Modules-DKMS包 模块。他们每次核心都会自动重建 软件包在系统上更新。

安装后,您必须使用anbox-modules-dkms包 手动加载内核模块。下次您的系统开始时 它们将自动加载。

  sudo modprobe ashmem_linux sudo modprobe binder_linux   
现在,您应该在系统中有两个新节点 /dev 目录:

  ls -1 /dev/{ashmem,binder} /dev/ashmem /dev/binder   

安装Anbox Snap

安装Anbox Snap非常简单:

  snap install --devmode --beta anbox   

为了将Anbox更新到您可以运行的较新版本:

  snap refresh --beta --devmode anbox   

在短划线中键入"anbox" ,然后单击Anbox图标以启动Anbox Application Manager。在Anbox Application Manager中,您将看到一行的应用程序图标。单击图标以启动它。 Android应用程序将在新窗口中启动,您将能够运行它。

Anbox未附带Google Play Store预安装并且甚至没有包装安装程序,因此在Anbox中安装其他应用程序的唯一方法是通过名为Android调试桥的Ubuntu软件包( adb < / em>)。您必须下载要安装的应用程序的.apk文件,打开终端,使用 cd 更改目录到.apk文件的目录,然后用查找的命令安装应用程序像这样:

  adb install /path/to/file.apk     

从Warez网站下载.apk文件是一种悲惨的安全风险,但有些应用程序允许您从应用程序的官方网站下载.apk文件,例如 whatsapp messenger for Android 。

然后,如果应用程序需要在操作系统中未安装的附加依赖项,则可能安装应用程序或可能不会安装。例如,WhatsApp需要Java作为依赖关系。我已经在Ubuntu安装了Java,所以我试图安装WhatsApp。

  adb install WhatsApp.apk     

我收到了一条错误消息,称为 error: cannot connect to daemon 。我关闭了Anbox并重新打开。我收到另一个错误消息,称为 sudo modprobe ashmem_linux sudo modprobe binder_linux 0 。我关闭了Anbox并再次打开并获得相同的错误消息。 Anbox就像Anbox-Installer脚本说明的那样是错误的。我关闭了Anbox并再次重新打开,最后在Anbox中安装了WhatsApp。

在此处输入图像说明

当您第一次打开WhatsApp时,它会向您展示带有消息的屏幕:

  sudo modprobe ashmem_linux sudo modprobe binder_linux 1  

whatsapp还询问您是否要提供应用程序权限,以访问您的设备上的文件,这是我看来的另一个安全风险。我认为可以给出WhatsApp权限访问手机上的文件,但我不想提供应用程序权限来访问计算机上的文件。权限是Linux中重要性的问题。您应该非常小心地向应用程序提供默认情况下的应用程序,而Ubuntu 16.04中的电报桌面捕捉程序包比WhatsApp在内的Whatsapp呼叫语音呼叫较好,这些语音呼叫当前都可以为世界各地的用户提供的语音呼叫。

 

Ubuntu 14.04 and later

Anbox has >=4GB RAM recommended hardware requirements.

The anbox-installer is DEPRECATED.

Please find updated installation instructions for Anbox (64-bit architecture only) at https://github.com/anbox/anbox/blob/master/docs/install.md.

Install necessary kernel modules

In order to add the PPA to your Ubuntu system please run the following commands:

sudo add-apt-repository ppa:morphis/anbox-support sudo apt update sudo apt install anbox-modules-dkms 

These will add the PPA to your system and install the anbox-modules-dkms package which contains the ashmem and binder kernel modules. They will be automatically rebuild everytime the kernel packages on your system update.

After you installed the anbox-modules-dkms package you have to manually load the kernel modules. The next time your system starts they will be automatically loaded.

sudo modprobe ashmem_linux sudo modprobe binder_linux 

Now you should have two new nodes in your systems /dev directory:

ls -1 /dev/{ashmem,binder} /dev/ashmem /dev/binder 

Install the Anbox snap

Installing the Anbox snap is very simple:

snap install --devmode --beta anbox 

In order to update Anbox to a newer version you can run:

snap refresh --beta --devmode anbox 

Type "anbox" in the Dash and click the Anbox icon to start the Anbox Application Manager. In the Anbox Application Manager you will see a row of application icons. Click on an icon to launch it. The Android application will launch in a new window and you will be able to run it.

Anbox doesn't come with Google Play Store pre-installed and does not even have a package installer, so the only way to install additional applications in Anbox is through an Ubuntu software package named Android Debug Bridge (adb). You have to download the .apk file of the app you want to install, open the terminal, change directories using cd to the directory of the .apk file, and then install the app with a command that looks like this:

adb install /path/to/file.apk   

Downloading an .apk file from a warez website is a miserable security risk, however some applications allow you to download the .apk file from the application's official website, for example WhatsApp Messenger for Android.

Then maybe the app will install or maybe it won't install if the app requires additional dependencies that are not installed in your operating system. For example WhatsApp requires Java as a dependency. I already had Java installed in my Ubuntu, so I tried to install WhatsApp.

adb install WhatsApp.apk   

I got an error message that said error: cannot connect to daemon. I closed Anbox and reopened it. I got another error message that said write: Broken pipe. I closed Anbox and opened it again and got the same error message. Anbox is buggy just like the anbox-installer script says it is. I closed Anbox and reopened it again and finally WhatsApp installed in Anbox.

enter image description here

When you open WhatsApp for the first time it shows you a screen with a message that says:

WhatsApp will send an SMS message to verify your phone number.   Enter your country code and phone number.   

WhatsApp also asks if you want to give the app permission to access the files on your device which is another security risk in my opinion. I think it's OK to give WhatsApp permission to access the files on my phone, but I don't want to give the app permission to access the files on my computer. Permissions are a matter of fundamental importance in Linux. You should be very careful about giving permissions to an application that it doesn't already have by default, and the telegram-desktop snap package in Ubuntu 16.04 has better support than WhatsApp including Telegram Calls voice calls which are currently available to users around the world.

 
 

相关问题

16  如何通过使用USB电缆将文件从Android手机转移到Ubuntu PC?  ( How to transfer files from an android phone to a ubuntu pc by using a usb cable ) 
我是完全新的用户和inexpert。我用手机制作了一个视频。 l如何将其转移到Ubuntu PC?我插入USB电缆,但Apparenntly我的电脑看不到手机。谢谢你的帮助 ...

10  提取使用adb制作的TWRP备份  ( Extract twrp backups made with adb ) 
我有三星Galaxy S2 GT-I9100智能手机,带有线系和TWRP。每周一次,使用以下命令备份: adb backup -f twrp-20170322.ab --twrp boot data system 我可以选择使用 --compress 选项。 有没有办法提取 twrp-20170322.ab...

7  如何通过USB将手机连接到内部SD?  ( How do i get my phone to connect the internal sd by usb ) 
我最近扎根并升级了我的三星Galaxy S2到版本4,IC。 自这样做,当我通过USB将我的设备连接到我的Ubuntu计算机时,只有12GB内部存储器在我的桌面上显示,并在Banshee中显示。 如何让我的16GB SD卡也可以安装在Ubuntu上,以便它可用于传输音乐文件等? 更新 根据下面的一个答案,也是我现在...

9  如何在SD卡上找到交换分区的路径名?  ( How to find the pathname of the swap partition on sd card ) 
作为 < / a>警告,你不应该在错误的分区上启用交换,或者您可以销毁您的手机: 在我们进一步进一步之前好的!之前的手机有一个分区布局,其中MMCBLCK0是SDCard(外部)我们的手机使用MMCB1CCK1用于外部SD。这很重要,因为如果使用应用程序,它可能会预设使用mmcblck0作为交换分区。使用此设置将导...

12  从Ubuntu到Android的流声  ( Stream sound from ubuntu to android ) 
当有人打电话给我时,我厌倦了在桌面和Android之间重新打开我的耳机。有没有办法从ubuntu流出声音(我使用 pulseaudio )通过WiFi或USB的Android手机? ...

0  Android Studio 3在Ubuntu 17.04中没有看到连接设备中的Nexus 7运行应用程序  ( Android studio 3 in ubuntu 17 04 not see nexus 7 in connected devices to run the ) 
我在Ubuntu 17.04和Nexus 7中使用了Android Studio 3.1.1。 Android Studio未在窗口中的"连接设备" 列表中未查看设备以运行应用程序: 设备已被激活为具有MTP USB类型的调试USB,并且我已经选择"确定" ,以便每次提示都要求与PC连接USB连接。 它在连接...

1  生根三星Galaxy S II GT-I9100  ( Rooting samsung galaxy s ii gt i9100 ) 
如何根系三星Galaxy S II GT-I9100(其原始的Android 2.3姜饼),最好是在Linux薄荷下? 本问题特别是GT-I9100版本(不是GT-I9100G和GT-I9100T,ET Cetera),目前在生根索引。 我特别寻找一个没有擦除手机数据的生根方法,如我希望之后恢复数据。我有一个8GB的...

2  Linux内核4.4 Android设备  ( Linux kernel 4 4 android devices ) 
我正在尝试找出所有设备正在运行的Linux内核4.4+并遇到困难的时间。到目前为止,我只能找到运行内核4.4的索尼Xperia设备。 我试图获得4.4个Linux设备的原因是我在我的Ubuntu Linux 4.15上遇到了3.1x的艰难时间编译内核,所以我认为在这方面有一个Linux 4.4设备将很好。我现在正在...

5  使用Ubuntu / Linux使用Fastboot解锁引导加载程序  ( Unlock bootloader using fastboot using ubuntu linux ) 
我正在尝试为我的htc图例解锁引导加载程序。 我在我的Ubuntu / Linux盒上有ADT(android SDK)。 在遵循HTCDEV指令以解锁HTC图例的引导加载程序。 我可以 adb devices ,结果为 List of devices attached HTXXXXXXXXXX devi...

4  生根始终如何?  ( How is it that rooting is always possible ) 
花了一些时间研究实际落后于rootio手机后面,导致能力root的主要原因是Linux内核上的固有漏洞,导致漏洞利用并安装'su'二进制文件。 我的问题是:如何运送操作系统并不硬化?谁是负责的人?这是我们正在谈论的Linux操作系统,被认为是"安全" 。然而,人们总能找到进入和root设备的方法。 ...

7  ubuntu无法识别Android手机  ( Android phone not recognized in ubuntu ) 
我有一个Android手机(摩托罗拉里程碑)并试图将其连接到我的Ubuntu Maverick(10.10)。问题是我甚至无法使用USB来充电,因此手机上没有消息,也没有在设备连接的计算机上。 我还有一台笔记本电脑运行ubuntu maverick aswell,我可以通过USB访问手机。 我已经使用了根据设置创建了...

2  如何在华硕EEE Pad滑块上双启动Ubuntu(SL101)?  ( How to dual boot ubuntu on asus eee pad slider sl101 ) 
我能够在我的华硕滑块SL101上运行Ubuntu在Chroot环境中(原始TF101华硕EEE焊盘变压器的堂兄)。 但是,由于各种原因,我希望能够突然启动到Ubuntu或Android。 我目前正在运行Cyanogenmod 9 IC,并将设备扎根。 要注意的另一件事是,过去使用nvflash的任何尝试...似乎失败...

6  如何使用Yaffs2访问.img文件?  ( How do i access img files with yaffs2 ) 
我已经尝试在Ubuntu中安装它们,没有运气, mount 无法识别Yaffs2文件系统。我尝试了 yaffs2utils 和 ./unyaffs2 但它实际上并没有解压缩IMG文件,我在Google代码页 here 。 IMG文件是由CWM恢复为备份创建的,我正在尝试挖掘文件系统以查找旧联系人,如果我可以获得.d...

1  直接在Ubuntu或Gentoo上运行Android应用程序  ( Running android apps directly on ubuntu or gentoo ) 
我想知道是否可以直接在像Ubuntu或Gentoo等Linux发行版上运行Android应用程序? 我的意思是在Linux上运行应用程序在没有VirtualBox的帮助下,在Google Chroom上的模拟器(如Genymotion),在Google Chroom ... 是否可以以这样的方式编译Linux内核?...

6  在与Windows或OS X同步时才能使用哪些功能?  ( What functionality is only available when syncing to windows or os x ) 
我正在考虑购买Android手机(可能是Galaxy S变种)。但我只运行Linux(如果重要)。所以,我很奇怪有什么功能与Linux一起工作,以及是否有任何功能,我是否会不会将手机与Windows或OS X PC同步。 (我在标题中持乐观,假设大多数事情都会工作 - 如果我错了,请纠正我。) ...

1  Linux部署:制作新磁盘映像(大小)...失败  ( Linux deploy making new disk image size fail ) 
我正在尝试使用带有android 4.3 / slimkat 4.4.4的我的rooted Galaxy S3上的Linux部署。但是当我按安装时: Updating configuration file ... done >>> begin install Checking mount points ... d...

25  如何在Linux上获取我的设备检测到我的设备?  ( How do i get my device detected by adb on linux ) 
我刚刚获得了我的闪亮新的 wileyfox swift - 然后将我使用我想要 oem unlock 和root(因为我通常与新设备有关; )麻烦是,虽然 usb-debugging 在设备上启用,并且存在相应的行<代码> abcdefghijklmn3 存在,因此 adb devices 。 我知道在这个网站上...

0  如何在内核级别禁用我的Android手机中的GPS功能?  ( How can i disable the gps functionality from my android phone at the kernel leve ) 
如何在内核级别禁用我的Android手机中的GPS功能?我知道这需要(虽然不确定)禁用GPS或内核模块的设备驱动程序,但是如何完全进行? 通过内核级别,我的意思是,GPS不再像软形式一样,它的硬件仍然存在,但它没有使用。如果我禁用IT应用程序级别,它仍然可以跟踪我,应用程序可能会访问它。我想要的是硬件和软件之间没有通...

3  如何在启动时运行可执行文件并将其保持运行?  ( How to run an executable on boot and keep it running ) 
我有一个来自 ndk-build 程序的可执行构建。我想在rooted android设备上运行它。 Android将杀死我可执行的可能性是多少? 使用 adb shell ,我能够使用以下命令执行我的可执行文件: adb push executable /sdcard adb shell device:/ $ ...

10  连接到PC时,Nexus 7没有SDCard文件夹  ( Nexus 7 doesnt have sdcard folder when connected to pc ) 
我刚刚买了一个nexus 7.当我将它插入我的笔记本电脑时,它显示媒体文件夹,我想访问SDCard文件夹,就像其他设备一样。如何传输文件? 我认为"adb push" 不是一个不错的选择。 ...

0  使用WiFi加密狗监控网络  ( Using a wifi dongle to monitor network ) 
我有一个带内置WiFi的Android智能盒,我想向盒子添加一个加密狗,以便我可以监控网络。我找到了类似的问题,有点模糊答案(至少对我); Android作为WiFi桥与AP 我此刻我有3个wifi congles。设备可以检测其中2(使用DMESG从shell运行,也是获取连接的USB设备的VendorID和...

3  Samsung Galaxy Tab S2在Bootloop中(标准恢复无效!)  ( Samsung galaxy tab s2 in bootloop standard recovery not working ) 
嗨热情社区!我需要你的帮助和建议! 设备: 三星Galaxy Tab S2(SM-T819) 用Android 6秒钟购买 - &gt;上周更新到Android 7 没有植根,原始固件,官方更新(根本没有乱搞......) 我在没有sd卡或sim 的情况下使用它 问题: 在启动循环中粘在一起显示Gala...

5  如何使用MTP使我的Linux PC安装我的Android 4.2.2手机?  ( How do i make my linux pc mount my android 4 2 2 phone using mtp ) 
我刚刚购买了一个新的tcl(s950)偶像x手机,我弄清了一些问题,使其在我的系统上可见。 本手机使用Android 4.2.2,我猜这是问题的原因:我之前的手机与Android 4.1正确显示在Nautilus / Dolphin(使用 Abcdefghijklmnabcdefghijklmn0 ) 现在我已经尝试...

26  如何使用shell命令并与下面的Linux系统进行交互?  ( How can i use shell commands and interact with the linux system underneath ) 
Android基于Linux,并在下面有一个Linux内核。有没有办法,我可以使用shell命令并与Linux系统直接交互?例如。一个可以访问Linux系统的shell应用程序? ...

4  如何快速了解Android UI  ( How to quickly understand the android ui ) 
我有Windows,麦克斯,iPad和Linux UI的经验,就像KDE一样。但是,我没有使用Android设备,所以我真的不明白它是如何运作和比较。我的普遍了解是它类似于Gnome的Linux接口,但我想必须有一些差异,因为Android有一层java, dalvik / art虚拟机,在Linux内核和UI元素之...

相关问题

16  如何通过使用USB电缆将文件从Android手机转移到Ubuntu PC? 
10  提取使用adb制作的TWRP备份 
7  如何通过USB将手机连接到内部SD? 
9  如何在SD卡上找到交换分区的路径名? 
12  从Ubuntu到Android的流声 
0  Android Studio 3在Ubuntu 17.04中没有看到连接设备中的Nexus 7运行应用程序 
1  生根三星Galaxy S II GT-I9100 
2  Linux内核4.4 Android设备 
5  使用Ubuntu / Linux使用Fastboot解锁引导加载程序 
4  生根始终如何? 
7  ubuntu无法识别Android手机 
2  如何在华硕EEE Pad滑块上双启动Ubuntu(SL101)? 
6  如何使用Yaffs2访问.img文件? 
1  直接在Ubuntu或Gentoo上运行Android应用程序 
6  在与Windows或OS X同步时才能使用哪些功能? 
1  Linux部署:制作新磁盘映像(大小)...失败 
25  如何在Linux上获取我的设备检测到我的设备? 
0  如何在内核级别禁用我的Android手机中的GPS功能? 
3  如何在启动时运行可执行文件并将其保持运行? 
10  连接到PC时,Nexus 7没有SDCard文件夹 
0  使用WiFi加密狗监控网络 
3  Samsung Galaxy Tab S2在Bootloop中(标准恢复无效!) 
5  如何使用MTP使我的Linux PC安装我的Android 4.2.2手机? 
26  如何使用shell命令并与下面的Linux系统进行交互? 
4  如何快速了解Android UI 



© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有