“未经许可,我已将自己的设备上的Google Play服务安装到我的设备上”。它破坏了我的防火墙(AFWall和其他几个应用程序)的功能。并且它正在未经许可地更新自身和其他应用程序/组件。当我卸载此组件时,它将再次下载自身并重新安装。 (也就是说,很可能实际上是在后台执行“ Google Play服务”)
没有任何确认,任何下载,更新或安装的通知。我发现它的方式是注意到应用程序的某些功能已更改/损坏。因此,我使用了一个应用程序(“ Android的系统信息”),它表明实际上是一天前安装的“用于Instant Apps的Google Play服务”。
我的问题是:如何完全禁止未经授权的更新一个Android设备,但保留以下功能:
联系人同步
Google Play商店
Google Maps App
在这些屏幕截图中,您可以看到关闭负责自动更新的所有设置。因此,此下载和安装显然是未经授权的,不应进行。安装东西后,将显示Instant Apps设置的屏幕快照。仅保留Google Play商店中的全局设置。
设置›应用程序//设置› Google›即时应用程序(已关闭!)// Play商店设置(已关闭自动更新!)
在我遵循一个误导性建议后开始运行,您可以在此屏幕快照中看到更新“ Google Play服务”的信息:
单击图像获取较大的变体
更新1:
到目前为止,我发现有些东西(很可能是“ Google Play服务”)正在请求下载和安装。这样做的方式是通过Google下载管理器发出请求。不清楚触发它的原因,但是如果仔细观察设备,则会从通知下载指示中显示下载管理器的图标,该图标指示下载百分比。但是,完成后,它会立即消失。不过,仍然没有任何指示安装的信息。存储和服务框架(
com.google.android.gms
; com.android.vending
; com.google.android.gsf
)无效。仍然需要下载,然后再安装。似乎任何阻止安装的方式都会一次又一次下载(直到数据用尽)。因此,最有可能的最佳方法是首先防止下载。我无法将Download Manager安装为用户应用,这似乎是需要控制的部分。
可以通过防火墙阻止Download Manager和/或Play商店,但这破坏了唯一值得信赖的方式下载应用程序。
更新2:
降级到GP Services的早期版本(v11.3.02)工作了几天,但是今天下载并安装了Instant Apps的GP服务。因此,使用哪个版本都没关系。
更新3:
因此,现在Google会随时定期更新自己的位置。如果我正在观看电影,流失了我的速度,就用完了我为每MB支付的互联网带宽。在此图像中,您可以看到未经许可已更新了3个Google应用。
#1 楼
更新:在最新的android版本中,您可以从设置-> Google-> Instant Apps-> OFF进行操作。原始答案如下:
在最佳情况下,这足以阻止Instant Apps自动更新。
通过终端(connectbot,juicessh等)在设备上运行。
pm hide com.google.android.instantapps.supervisor
或者,如果通过电缆(或wifi adb)连接时在PC上通过adb运行,则使用:
adb shell pm hide com.google.android.instantapps.supervisor
与
pm disable
不同,pm hide
也可以在非根目录设备上使用。到目前为止,我没有看到更多的Instant Apps通知。如果上述方法对您不起作用,则另一种方法是修改文件/文件夹的SELinux上下文(例如,使用
chcon
) 。要恢复上面的
pm hide
命令,请使用:pm unhide com.google.android.instantapps.supervisor
评论
好吧,这将针对特定的应用程序,但是我想阻止所有未经授权的更新或新应用程序的安装。同样,这种“系统级”的安装和下载对用户来说是隐藏的。它的工作方式是检查版本,如果需要升级,则在后台下载文件。下载完成后,它将尝试进行安装;如果安装失败,它将在另一时间再次尝试。临时文件会定期删除,因此,如果找不到它,它将再次下载。如果您监视临时文件夹,您可以一遍又一遍地捕捉到它。
–艾米尔
17年11月12日在16:54
@Emil:com.google.android.instantapps.supervisor不是正在执行您提到的监视的应用程序吗?还是Google Play服务提供的某些特定服务?如果是第二个,那么我猜菜谱还不完整。我还拒绝了该软件包在后台运行并在启动时启动的权限。
–ccpizza
17年11月12日17:15
我无法确切指出监控的内容。在Android上,有一个设置侦听器的系统,有一些应用声称可以调整这些侦听器,但事实证明它们无效。我找不到直接访问/控制“队列”或以某种方式拦截它的方法。基本上,Google视为核心的所有内容都可以绕过普通应用的设置
–艾米尔
17年11月12日在17:54
#2 楼
顾名思义,它是Google服务应用程序的一部分。 PlayStore使用它来运行应用程序而不安装它们(新服务)。可以禁用但不能删除(据我所知,它将作为核心服务的一部分继续自行安装)。要禁用,请转到设置› Google› Instant Apps and切换拨动开关(参考)。
我相信这将是在较新设备上出现的系统应用程序,对于我们其余的较旧设备,它们将强制安装在兼容设备上。 br />
编辑:由于这个问题,我回答后被修正了。此答案适用于无根设备。使用植根设备可以实现,但我想不出简单或永久的解决方案。
评论
让我们继续聊天中的讨论。
–乔苏·里维拉(Josue Rivera)
17年8月7日在16:11
@Emil我刚刚清理了所有注释,但聊天链接仍然可用。此外,我无法同意这不是答案:在您的问题中,您写了“似乎没有简单的方法来永久禁用此功能”和“我的问题是:我如何完全禁用此功能” –这就是Josue在这篇文章中提出:“要禁用,请转到“设置”,“ Google”,“ Instant Apps”并切换切换开关。”如果您这样做却没有用,请说明。
– Izzy♦
17年8月7日在23:03
无论如何,我已经尽力解释了这一点。他问了一个问题,我基本上说不,解释了原因并为可能遇到类似情况的其他人提供了信息。问题已更改,我进行编辑以表示我的回答适用于原始问题。如果我误解了这里的规则是如何工作的,请删除我的答案,然后告诉我如何做得更好。
–乔苏·里维拉(Josue Rivera)
17年8月8日在13:24
@JosueRivera离开,如果您对自己没有错感到满意。如果答案是错误的,人们可以投票否决并继续前进。
–Firelord♦
17年8月8日在13:50
即使设置为关闭,它也会自动更新。我在一个多月前关闭了它,今天它又自动更新了。
–tgf
17年12月8日在2:25
#3 楼
关于:[仅root用户]此解决方案涉及阻止对temp(缓存)文件夹的写访问,该文件夹用于Google下载其系统应用程序(例如Google Play服务,Instant Apps的Google Play服务等)。由于它很简单,解释一切,看起来很多。之后,安装新应用程序基本上分为3个步骤,该过程类似于在PC上安装程序。背景:在我的系统下,文件夹的工作方式如下:
1)
/data/data/com.android.providers.downloads/cache
*这是Google系统更新的文件夹(以及
*很遗憾,此文件夹还用于下载普通的新应用。因此,您不能只是永久性地阻止它。下载新应用时,您必须能够阻止/取消阻止它。
2)
/mnt/sdcard/Android/data/com.android.vending/files
*此文件夹用于更新常规(非Google系统应用)。因此,无需阻止此操作,或在更新常规应用程序(例如Facebook,游戏等)时,无需执行任何特殊操作。
解决方案:上面的缓存文件夹在正常运行期间保持锁定状态。当您要安装新应用程序时,总体过程如下(尽管大多数情况下是自动化的):(1)解锁缓存文件夹(2)锁定应用程序文件夹,以防它在解锁并安装时潜行。 (3)从商店下载新应用(4)将下载的程序从安装文件夹复制到另一个位置,并使用默认名称(download.apk)重命名。(5)清除并锁定缓存文件夹(6)解锁应用文件夹( 7)单击apk文件进行安装。
显然您不想每次都在终端上键入此命令,因此这是自动化的步骤。它们涉及使用两个附加应用程序以及安装BusyBox(以便能够通过脚本使用chattr命令)。
锁定解锁是通过名为Gscript的应用程序实现的。您可以使用其他任何可以执行脚本的应用程序。 Google商店中有一个版本,但对我和其他人来说却崩溃了。这里有一个稳定的fork:https://bitbucket.org/Equidamoid/gscript(感谢作者在这里的帖子:https://stackoverflow.com/a/20328927/7609435)
只需将这两个脚本粘贴在那里。 (都需要SU)
A)在下载之前执行-锁定应用程序/解锁缓存
chattr +i /data/data/*
chattr +i /data/data
chattr +i /data/app/*
chattr +i /data/app
chattr -i /data/data/com.android.providers.downloads/cache
B)在下载完成并复制文件后执行-清除并锁定缓存/解锁应用程序
rm /data/data/com.android.providers.downloads/cache/*
chattr +i /data/data/com.android.providers.downloads/cache
chattr -i /data/data/*
chattr -i /data/data
chattr -i /data/app/*
chattr -i /data/app
当Play商店说“下载失败”时,您将知道该应用程序已下载。它将说是因为它无法安装apk,但实际上下载成功,它位于缓存文件夹中。在运行上面的脚本(B)之前,您必须将文件从缓存文件夹移动到其他位置。您当然可以使用任何应用程序进行操作,但是我喜欢使用Total Commander,因为它可以有两个窗格并且支持书签(我向其中添加了缓存)。因此,将其移动并将文件从默认名称重命名为其他名称,然后运行上面的(B)脚本。另请注意,在复制APK时,它应带有该应用程序的图标。如果具有默认图标,则可能是由于其他不相关的原因导致下载已损坏,因此您可以尝试再次下载。
现在,清除并锁定了缓存文件夹,并且解锁了应用程序文件夹。 (您可以确保100%确保高速缓存文件夹为空,但我再次检查缓存文件夹是否为空)。现在,您可以安装已下载的APK。
注意1:如果您单击一个新的下载文件,然后它说“待定”只是(强制)关闭Google Play并重新启动它,它应该会开始自动下载。
注意2:我仅使用Android:6.0.1 / MIUI:8.5.3.0进行了测试,因此该解决方案可能并不通用。检查是否有缓存文件夹,以及是否正在将Google Play服务的下载文件上传到该文件夹(一旦上传完成,它会在其中保留一段时间)。
警告:可以保留缓存文件夹已锁定,但是如果在这些数据文件夹被锁定的同时碰巧重新启动手机,则手机将无法启动。而且您需要手动进行操作,并从TWRP Shell中进行更改。
P.S.我了解此解决方案并不适合所有人,但是如果您最关心的是稳定性并保持数据使用受控,那么此方法现在就可以使用。希望有人会提供比这个更好的答案。
评论
免责声明:由于您的手机不再自动更新,因此如果以前的Google系统存在漏洞,您可能会暴露在外。但是,就我个人而言,当未经明确许可就可以安装某些东西时,我会考虑一个漏洞。
–艾米尔
17年10月1日在20:28
评论
@Firelord,您好:我要说的是“即时应用程序的Google Play服务”,而不是标准的“ Google Play服务”。后者是最新的发展,并且行为类似于恶意软件(尽管它是Google的官方应用)。我不会对其中断的应用程序功能进行过多的详细介绍,主要是因为它可能依赖于设备/ ROM(我运行的是标准ROM,并且已扎根,但是出于我想提出的问题,找到“正常”的无根解决方案)。 AFWall断断续续地发出了“无法应用规则”错误的提示。@Izzy感谢您的修改,使其更加清晰。
高兴地读,埃米尔!是的,再测试一下。如果没有副作用,请考虑回答您自己的问题:)
这是Google Play论坛上相关讨论的链接。
@frans,您好,问题不只是带宽/成本。这也是我要阻止的有害软件的安装。另外,由于我目前无法访问WiFi,因此我会通过电话的互联网下载应用程序和更新。另一件事是,此更新程序“监听”状态更改,因此,如果您切换到WiFi,它将优先处理Google事物并立即对其进行提示。在下面发布的解决方法中,基本上是一种竞争条件,我会在意识到可以下载更新之前先下载一些应用程序,但是随后我再次锁定了它,但这不是100%可靠的方式。