2016-11-10 154 views
0

我们是生产工业设备的公司的软件开发部门,我们使用我们为此目的编写的应用程序,并直接安装了一些我们用作制造设备“遥控器”的三星Galaxy-Tab 4平板电脑来自Android Studio。此应用不分发给其他设备。我们在网上购买这些平板电脑,从三星开箱即用,即没有涉及电话公司或共同运营商。这些平板电脑未向Google注册,即没有与其关联的Gmail帐户;实际上我们甚至无法访问Google Play。我自己拆开这些平板电脑,并且从未将它们与Google或三星注册过。以编程方式禁用Android操作系统升级?

所以我很惊讶,当我今天上午来到,看到一个预定的软件更新已下载并准备就绪的屏幕上的通知。它说它是876.87 MB,它想要升级到棒棒糖。

我不知道升级来自何处或如何启动。我担心的是,如果这发生在客户现场或贸易展会上,意外的升级可能会破坏我们的软件或导致其他恶作剧。 有没有办法以编程方式禁用软件升级?

+0

如果您的产品与硬件和软件都绑在一起,那么您应该先销售Android操作系统,然后再销售它们。应用程序是沙盒,只能访问他们自己的东西,并且在涉及沙箱(OS)之外的东西时非常愚蠢。 在大多数情况下,更新不应该损坏您的应用程序,如果确实如此,则可能会查看您向客户销售的软件质量。 您的其他选择是仅在平板电脑发送给客户之前禁用平板电脑上的自动更新。 – CodyEngel

+0

我不知道这是什么意思。 (“分叉操作系统”?)我们不是从源代码构建我们自己的操作系统(并且没有资源成为操作系统开发人员)。这是来自这些的股票操作系统,而不是一些来源不明的定制黑市操作系统。另外,我们不会将此出售给客户 - 它在贸易展会和现场工程师中使用。 – user316117

+0

“我不知道升级来自哪里” - 谷歌,通过三星,通过您的网络连接。 “它是如何启动的” - 设备会定期检查更新。 “有没有办法以编程方式禁用软件升级?” - 除非设备所有者API中有某些我没有看到的东西,那么不会。 – CommonsWare

回答

0

作为一名应用程序开发人员,您无法控制固件升级。他们来自运营商,或者如果它是一个Wi-Fi平板电脑,制造商。

您唯一的选择是控制固件。这意味着要为您选择的硬件构建您自己的Android固件。然后,您可以禁用(或以其他方式控制)固件更新计划/过程,从而对固件进行更改。

与部署应用程序相比,拥有固件是非常重要的。

0

我很惊讶,当我来到这个早上,看到一个计划软件更新

的软件开发人员,我不能明白你惊喜的屏幕上的通知。这是操作系统的一个非常著名的(并且经常批评由于缓慢的功能/延迟推出)功能

我不知道在哪里升级是来自或它是如何开始

那些来从设备制造商(你说三星,对吧?),并不需要任何类型的登录或帐户。它被编码到操作系统内部的某处,以检查制造商服务器的更新。与Windows,Mac OS,Linux或iOS相同。

从API的角度来看,应用程序绝对没有办法阻止操作系统更新。这将是一个重大的安全漏洞。可以轻易想象一个恶意应用程序利用已知的操作系统漏洞并阻止操作系统自身进行更新,从而修复该漏洞。

为你的情况

除了创建自己的自定义操作系统控制的过程中,我能想到的唯一可能的方式,是举办自己的VPN服务器模块更新服务器可能的解决方案(或阻止整个互联网期望你想从你的应用程序访问的资源),并配置设备到这个VPN下Settings -> WiFi

ps。:我看到提到的link,我建议不要禁用系统服务(或者至少在你打开它之后测试一下LOT),因为这可能会导致其他问题。