android - 如何在无法卸载的android中创建应用程序?我们可以制作系统应用程序吗?

标签 android root application-settings system-administration

我们正在为使用 Android 手机的客户提供一个默认应用程序。哪个用户不能卸载。我使用了 this example 中的设备管理功能但是用户可以通过从设置中停用来删除应用程序。

我发现另一种可能的方法是像所有谷歌应用程序一样在系统/应用程序文件夹中安装应用程序(我不确定)。

为此,我需要 root 访问权限,所以我打算执行以下操作,但不确定如何实现它。

  1. 以编程方式根设备
  2. 在 System/apps 文件夹中安装应用
  3. > 再次取消根设备

像许多系统应用程序一样,它们如何实现此类功能?

请帮忙。

最佳答案

我制作了自定义启动器,无法卸载。

  1. 重要:root 手机
  2. 恢复模式将应用程序安装为系统应用程序(安装到/system/app)。
  3. 可选:订阅包删除,检查用户是否尝试删除您的应用 - 并且不允许他执行此操作(关闭包删除 Activity )

我制作了存档,可以从恢复模式安装。此外,我的 Launcher 需要自定义 Superuser 应用程序(我不想看到来自 Superuser 应用程序的通知,当我的 Launcher运行 root 命令 - 静默授予 root 访问我的 Launcher)。

结果是:Launcher 应用程序,作为系统应用程序安装(无法删除)。我还阻止了其他启动器的安装,添加了允许应用程序的白名单(不要安装可以管理文件系统和修改重要内容的应用程序)。

这个解决方案充满技巧,但比自定义ROM更容易实现。

如果您自定义 ROM,并以某种方式将其安装到设备(例如,联系来自中国的设备制造商,请求目标设备驱动程序并在设备上构建 ROM),您可以使用系统 key 签署您的应用程序,将其与其他系统应用程序,然后它无法删除。在这种情况下不需要 root,但它需要更多的时间和精力来实现。

如果您将以编程方式对设备进行 root,那么您应该有利用它来进行 root。 并且不同的设备有不同的 root。

关于android - 如何在无法卸载的android中创建应用程序?我们可以制作系统应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25446236/

相关文章:

java - 无法使用导入的库。安卓工作室。谷歌云端点 jar

android - LAYER_TYPE_HARDWARE 并绘制到缓存

sql-server - 在 Dockerfile 中切换到 Root 用户

file - Postgres COPY TO/FROM A FILE 作为非 super 用户

c# - 如何通过 C# 更改我的 web.config 中的 applicationSettings

android - 如何为 iOS 和 Android 移动应用程序创建 REST 身份验证

android - 使用哪个上下文?

c# - 我可以将对象保存到 app.config 文件吗?

php - 以 root 用户身份运行 PHP shell_exec()

java - android 如何检查数据连接是否打开,如果没有则提示用户打开数据服务或退出应用程序