Android 权限(您在 list 中请求并在安装时显示的权限)是否与 root 用户在 root 手机上获得的 linux 权限相同?
更确切地说:如果我的手机上有 root 权限并且我有一个可以调用电话但没有在 list 中请求权限的应用程序,那么通话会成功还是应用程序会崩溃?
谢谢。
最佳答案
一些 Android 权限作为 Linux 权限实现(例如,外部存储或网络每个都授予 Unix 组的成员资格,允许执行这些操作),而其他权限则完全在 Android 层内实现。
“Root”与此无关,因为几乎闻所未闻的 Android 应用程序(可以访问各种 Android 级服务)的主进程以 root 身份运行。相反,当人们在他们的设备上安装 root hack 时,他们所做的是添加一个 shim,它可以让 helper 程序以 root 身份运行——而不是应用程序本身。如果 helper 程序想要做的是基于 Linux API,并且受 Linux 权限限制,那么这可能会起作用,在某种程度上它是基于传统用户/组的强制执行,并且不会被 SELinux 阻止(为了解决这个问题,一些 hacks 从一个守护进程启动帮助程序,该守护进程本身在 SELinux 完全激活之前在启动时就已初始化)。
但是对于必须通过 Android API 完成的事情,root 几乎是无关紧要的,因为执行任务的代码通常不会以 root 身份运行。一些通过启动不同的 VM 实例与 Android API 进行交互的命令行工具可能在那里具有增强的权限 - 但这与尝试在您的应用进程中执行相同的操作有很大不同。
人们有时还利用 root 访问权限将他们的 .apk 放到系统分区上(如果他们可以将其挂载为可写),这允许授予一些 list 权限,如果在同一 .apk 的 list 中找到这些权限,当它运行时,这些权限将被忽略以正常方式安装在数据分区上。
关于android 权限 vs linux 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29720921/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe
我正在为我的用户实现一些rubyonrails代码推特内容。我正在创建正确的oauth链接...类似http://twitter.com/oauth/authorize?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv但在我的测试帐户授予对twitter的访问权限后,它会弹出一个页面,上面写着“您已成功授予对.我不知道用户应该在哪里输入此PIN以及他们为什么必须这样做。我认为这不是必要的步骤。Twitter应该将用户重定向到我在应用程序设置中提供的回调URL。有谁知道为什么会这样?更新我找到了thisarticle声明我需
我正在关注Ryan的RailsCast第339集。我已经安装了rbenv并且可以运行ruby-v。我退出了我的session,当我试图返回时(通过root的sudeployer,我得到了这个错误/home/deployer/.rbenv/bin/rbenv:line20:cd:/root:Permissiondenied这是rbenv文件:#!/usr/bin/envbashset-e[-n"$RBENV_DEBUG"]&&set-xresolve_link(){$(type-pgreadlinkreadlink|head-1)"$1"}abs_dirname(){localcwd="
如何使用Capistrano将Rails应用程序部署到无法访问外部网络或存储库的生产或暂存服务器?我已经设法完成部署的一半,并意识到Capistrano没有在我的本地机器上下载gitrepo,但它首先连接到远程服务器并尝试在那里下载Git存储库。我希望有一个类似Javaee的构建系统,其中创建可交付成果并将该可交付成果发送到服务器。就像您构建.ear文件并将其部署到您想要的任何服务器上一样。显然在RoR中,你被迫(据我所知)在该服务器上构建应用程序,在那里创建一个gem存储库,在那里克隆最新的分支等等。有什么方法可以将准备运行的包发送到远程服务器吗? 最佳答
我在运行Ubuntu10.04LTS的远程VPS机器上以生产模式运行RubyonRails3.0.9(在开发模式下,我在MACOSSnow上使用RoRLeopard),我想知道如何管理以下场景。我使用Apache2和PhusionPassenger并且我将虚拟主机设置为如下所示:ServerNameproject_name.comDocumentRoot/srv/www/project_name.com/publicAllowOverrideallOptions-MultiViews此外,我使用Paperclipgem,由于网上很多人在生产模式下使用它,我在处理(图像)文件时遇到以下错
我创建了一个包含自定义gemset的项目特定.rvmrc文件(使用命令rvm--rvmrc--create1.9.2@registration):#excerptof.rvmrc...environment_id="ruby-1.9.2@registration"if[[-d"${rvm_path:-$HOME/.rvm}/environments"\&&-s"${rvm_path:-$HOME/.rvm}/environments/$environment_id"]]then\."${rvm_path:-$HOME/.rvm}/environments/$environment_id
我是编程新手,正在尝试在我的终端上安装Rails。我一直按照friend的指示安装xcode命令行工具、自制软件、git、rbenv、ruby-build、rubygems、ruby和postgres。但是每当我尝试$geminstallrails时,我都会得到以下信息:Russell-Silvers-MacBook-Pro:~Russell_Silver$geminstallrailsERROR:Whileexecutinggem...(Errno::EACCES)Permissiondenied@rb_sysopen-/Users/Russell_Silver/.rbenv/ver
我是Ruby的新手..正在按照TeamTreehouse上的说明在OSX(Yosemite)上安装Ruby开发环境。当我到达创建测试应用程序的步骤时。它最终失败了。权限被拒绝。:(不确定我做错了什么,我确实尝试运行geminstalldebuginspector和bundleexecspringbinstubball但它们都失败了。[]railsnewtestappcreatecreateREADME.rdoccreateRakefilecreateconfig.rucreate.gitignorecreateGemfilecreateappcreateapp/assets/javas
我想知道其他人是如何实现这个场景的。我有一个内部Rails应用程序(库存管理、标签打印、运输等)。我正在重写系统的安全性,导致旧方法变得难以维护(用户表、密码、角色)——我使用了restful_authentication和角色。它是大约3年前实现的。我已经使用ruby-ldap-net实现了AuthLogic来对用户进行身份验证(与我之前与其他框架/语言的挣扎相比,实际上这非常容易)。下一步是角色。我已经在ActiveDirectory中定义了组——所以我不想在我的Rails应用程序中运行一个单独的角色系统,我只想重用ActiveDirectory组——因为系统的那一部分已经被维