问题标签 [device-owner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
777 浏览

android - 关闭设备,而不是以设备所有者身份重新启动

使用 Android 设备所有者 API,可以重新启动设备(https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html#reboot(android.content.ComponentName)),这对我来说是许可明智的做法与关闭设备几乎相同。

我仍然找不到任何提及以设备所有者的身份以编程方式关闭设备的可能性。没有根,今天有可能吗?

有一些老问题在讨论这个问题,但从那时起,Android 发生了很大变化,当时无法在没有 root fe 的情况下重新启动,所以我希望现在也可以完全关闭。

0 投票
1 回答
1094 浏览

android - QR 配置后系统应用程序丢失

我正在尝试通过 QR 配置来配置我的 7.0 设备。配置已成功完成,但它创建了一个单独的配置文件,并且 priv-app 部分中的应用程序在此处不可见。

当我尝试通过 adb 手动安装应用程序时,它说成功,但应用程序仍然不可见。在设置中检查应用程序部分时,它表示该应用程序已安装在另一个用户身上。

关于如何将这些系统应用程序放入当前配置的配置文件的任何想法?

0 投票
1 回答
2040 浏览

android - 如何在三星设备上设置设备所有者?

与此处的问题类似,我正在尝试在三星 XCover4 上使用 adb 设置设备所有者

不允许设置设备所有者

虽然恢复出厂设置后设备上没有帐户,但调用

adb shell dpm set-device-owner

仍然因Not allowed to set the device owner because there are already some accounts on the device错误而失败。

这在我尝试过的其他“纯安卓”设备上运行良好,所以我猜测三星在设置过程中以某种方式设置了所有者。

有没有办法避免这种情况?

0 投票
1 回答
180 浏览

android - QR 配置后应用的默认策略 - 无法安装应用程序

我正在尝试通过 QR 配置来配置我的 7.0 设备。配置已成功完成,但已应用默认策略,我无法更改它。当我通过 adb 配置配置我的设备时,这些策略是可配置的。

例如,我无法通过 Playstore 安装应用程序、侧载应用程序、恢复出厂设置等。

我还应该在我的二维码配置数据中添加什么吗?

现在这就是我正在使用的:

{ “android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME”:“in.appslab.kardamom/in.appslab.kardamom.AdminReceiver”,“android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM”:“校验和代码”,“android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION” :"下载位置","android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED":true,"android.app.extra.PROVISIONING_SKIP_ENCRYPTION":true,"android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE":{"company_key":"companykey" } }

0 投票
0 回答
700 浏览

java - 以编程方式在具有设备所有者权限的一次性 Android 应用程序中启用 USB 共享?

当设备在一次性设备所有者 Android 应用程序中启动时,我需要能够自动启用 USB 网络共享。我无法在谷歌上找到任何表明它可以不生根的东西。但是,我想知道既然我们拥有设备所有者权限,我们是否可以做些什么来启用它?我的目标是Android 7.0+。

任何想法将不胜感激!

0 投票
1 回答
428 浏览

android - 实用更新应用程序时出现PackageInstaller错误

我有一个非常接近这个类CosuUtils类。我正在以编程方式更新作为设备所有者的应用程序。这在 Android 6 中运行良好,但在尝试在 Android 7 中更新时出现以下错误。

PackageInstaller: Commit of session 1108510423 failed: /data/app/vmdl1108510423.tmp/COSU specified package com.mypackage inconsistent with com.mypackage.full

CosuUtils我这样设置包名

如前所述,我传递com.mypackageinstallPackage它在 Android 6 上运行良好。这在 Android 7 中不起作用,除非我使用com.mypackage.full. 问题是这会破坏已升级到 Android 7 的用户更新到最新版本应用程序的能力。Android 6 和 7 之间发生了什么变化导致它崩溃,是否有解决方法?

0 投票
1 回答
551 浏览

android - 使用基本身份验证的 Android QR 配置

我正在构建一个 Android 信息亭应用程序(以设备所有者身份运行),它不会出现在 Google Play 商店中,而是由 QR 码提供。

到目前为止,事情一直运作良好。我可以签署我的应用程序,构建二维码并获得恢复出厂设置的平板电脑(三星 Galaxy Tab A)来读取二维码安装应用程序并作为信息亭启动。我使用不安全或在互联网上的本地 Web 服务器完成了这一切。

现在,我开始使用通过基本身份验证保护的面向公众的 Web 服务器。我试过在 QR 码中使用常规 url,如下所示:

显然,正确填写了 <>。这不起作用,但并不令人惊讶。我只是希望三星/谷歌的软件足够聪明,可以提示我输入用户名和密码。

所以,然后我用二维码里面的用户名和密码试了一下:

但这也不起作用。两者都失败并显示无助的错误消息:

第二个 URL 可以与 wget 一起正常工作,所以我认为这里没有错字。第一个使用 wget 失败,因为它需要用户名和密码。

由于尚未配置平板电脑,因此我无法打开 USB 调试以查找更有用的错误消息。

有没有办法通过基本(或任何)身份验证使其工作?或者关于如何获得更有用的错误消息的任何想法?

更新

查看来自我们网络服务器的访问日志,我们可以看到相同的 URL 从网络浏览器或 wget 正常工作,但 Android 失败并显示:

我们目前正在考虑,我们将允许在没有用户名和密码的情况下从“AndroidDownloadManager”下载 APK。默默无闻的蹩脚安全,但我没有看到更好的选择。建设性地,它将用户名和密码排除在二维码之外。

0 投票
0 回答
403 浏览

user-permissions - 通过 MediaProjection 进行 ScreenCapture,无需用户干预 Kiosk 应用程序 - Android

我在一家数字标牌公司工作,该公司的 Android 设备以 kiosk 模式运行。最近,我们想添加屏幕截图以进行调试。最简单的方法是使用

getWindow().getDecorView().getRootView().getDrawingCache()

创建位图并通过网络发送它,但这不会捕获视频,因为它已在表面视图中呈现。

MediaProjection 的 createVirtualDisplay 看起来很有希望,但使用此功能所需的明确许可是不可接受的。即使是第一次请求用户许可并将结果持久化以供进一步使用也是不可接受的,因为这会破坏现有的实现。

请帮我解决这个问题。

注意:那里的所有设备都已植根,或者我们的应用程序以设备所有者身份运行,并且 android 版本高于 4.4

0 投票
1 回答
989 浏览

android - NFC 设备所有者配置和 Knox

首先,如果这是一个不适合这个问题的地方,我们深表歉意,因为它不是严格意义上的代码问题,但我正在努力在其他任何地方找到任何相关资源。

我们有一个基于使用三星设备(目前是 S7s)作为完全托管设备的解决方案,其应用程序注册为“设备所有者”,然后管理产品所需的一些附加文件和应用程序。这在出厂重置后通过 NFC 配置到设备上,通过另一部运行自定义应用程序的手机生成 NFC 消息。

这一切都是独立于任何 MDM 或 EMM 系统完成的,设备所有者应用程序由我们封闭网络上的服务器提供,并且全部由原生 android 功能处理,而不是完全涉及 knox。

这最初是在运行 android 版本 6.0 和 Knox 2.7 的 S7 上开发的,并且运行良好。

然而,我们目前正在建立一个复制系统,理想情况下需要与以前的功能完全相同,但我们现在订购的设备配备了 Android 8.0 和 Knox 3.1,这似乎是一些问题的根源。

在第一次尝试通过 NFC 配置设备时,过程成功并且设备所有者设置成功,似乎没有任何问题。

然而,当设备恢复出厂设置以再次测试该过程时,发送 NFC 消息后会立即显示一个弹出窗口:“无法创建工作配置文件”“安全策略阻止创建托管设备,因为自定义操作系统是或已在此设备上安装”

这发生在手机甚至尝试连接到网络并下载我们的应用程序之前,因此问题不存在。

这款手机是开箱即用的新手机,在最初配置之前甚至从未设置过,因此部署实际自定义固件的可能性为零,为了理智起见,我确认 Knox 保修无效位仍设置为 0x0它是。

我知道从 Knox 3.0(?)开始,它与内置的 android 企业功能集成得更紧密,但我的印象是它仍然可以在没有的情况下使用,理想情况下我想避免做任何不必要的 Knox SDK一体化。如果我必须通过 Knox 做一些事情来允许此功能,因为目前这些设备在恢复出厂设置后基本上是无用的。

如果有人知道为什么会发生这种情况或我如何解决它,那将不胜感激。

0 投票
0 回答
167 浏览

android - 通过另一个设备所有者应用程序以编程方式向应用程序授予用户凭据权限

我的一个应用程序需要使用已安装到 android 商店中的用户凭据。

如果我尝试通过使用 KeyChain 类访问证书,则会出现异常:

android.security.KeyChainException:IllegalStateException: uid 无权访问请求的别名

我想避免用户手动“选择”用户凭据提示。

相反,我有一个单独的应用程序,已经设置为“设备所有者”来配置所有这些。

是否有一些 API 使用设备所有者应用程序,我可以在其中向尝试访问已安装用户凭据的应用程序授予权限?