相关疑难解决方法(0)

如何检查应用是否是Android中的非系统应用?

我正在ApplicationInfo使用packageManager.getInstalledApplications(0)获取对象列表,并尝试根据它们是否是系统应用程序对它们进行分类.

有一段时间我一直在使用这里描述的技术,但是在我的应用程序中看到之后,一些应用程序不在非系统应用程序列表中(例如Facebook,当可用时要求系统在SD上安装自己)卡).在下次阅读ApplicationInfo.FLAG_SYSTEM的实际文档并了解它实际上没有过滤系统应用程序之后,我现在正在寻找一种新方法.

我的猜测是,系统和非系统应用程序的UID之间存在很大差距,我可以收集这些差异来进行区分,但到目前为止我还没有找到答案.我也查看了其他标志,例如ApplicationInfo.FLAG_EXTERNAL_STORAGE,我支持API 1.5.

有没有人有这个真正的解决方案(不涉及FLAG_SYSTEM)?

android system uid android-applicationinfo

35
推荐指数
9
解决办法
4万
查看次数

AOSP 系统服务与服务差异

我试图更好地理解这些差异,以便我可以评估是否应该实现系统服务或服务。我从文档中发现的差异如下:

系统服务

  1. 在系统服务器中启动
  2. 添加到ServiceManager
  3. 被认为是强制性的,并在失败时软重启设备
  4. 更多权限?(不确定它能做什么而服务不能做什么)

服务

  1. 初始化并开始使用意图?

两者之间还有什么不同吗?我正在修改 AOSP 以包含我自己的服务,提供的任何其他信息将有助于帮助我做出决定。

android android-source

8
推荐指数
1
解决办法
1万
查看次数

通过将应用程序放入/ system/app获取Android系统权限?

尝试使用AOSP的一些较新的Android API,我发现一些需要android.permission.BLUETOOTH_PRIVILEGED权限.根据文档,许可"不适用于第三方应用程序".

我在别处读过,你可以通过在/ system/app目录中安装你的应用程序来获得root设备的系统级权限.我在我的root用户Nexus 5上尝试了这个,但是我的应用程序仍然无法获得所需的权限.(参见下面的代码和LogCat输出.)

我听说过的另一种方法是构建自己的自定义Android ROM,然后使用相同的密钥对应用程序进行签名.我可以做到这一点,但如果可能的话,我强烈希望能够使用股票图像.

那是哪个呢?是否可以在带有库存图像的root电话上获得系统级权限?如果是这样,我做错了什么?

活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if ((this.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
        Log.d(TAG, "This is a system application");
    }
    else {
        Log.d(TAG, "This is not a system application");         
    }
    if (getApplicationContext().checkCallingOrSelfPermission("android.permission.BLUETOOTH_PRIVILEGED") == PackageManager.PERMISSION_GRANTED) {
        Log.d(TAG, "I have android.permission.BLUETOOTH_PRIVILEGED");
    }
    else {
        Log.d(TAG, "I do not have android.permission.BLUETOOTH_PRIVILEGED");            
    }       
    ...     

}
Run Code Online (Sandbox Code Playgroud)

LogCat输出:

W/PackageManager(  788): Not granting permission android.permission.BLUETOOTH_PRIVILEGED to package com.radiusnetworks.testapp (protectionLevel=18 flags=0x8be47)
I/ActivityManager(  788): Start proc …
Run Code Online (Sandbox Code Playgroud)

permissions android android-permissions

7
推荐指数
1
解决办法
2万
查看次数

位于/ system/app中的系统应用程序如何在Android 4.4 KitKat构建中拥有系统权限?

我是Jaemoon.

我的系统应用程序位于/ system/app中运行良好,直到Android 4.3 Jelly Bean,但它开始出现一些问题,这是Android 4.4 KitKat中的安全问题.

换句话说,我的系统应用程序需要权限,如android.permission.WRITE_APN_SETTINGS和android.permission.CONNECTIVITY_INTERNAL,并且直到Jelly Bean,但是从KitKat,安全问题如下.我不明白为什么我的系统应用程序在Jelly Bean中运行良好的原因导致KitKat出现安全问题.

我怀疑KitKat是否需要在某些脚本文件中进行新设置以获得系统权限.任何人都可以帮助我或指导我吗?

---------------------------------------------------------------------
java.lang.SecurityException: No permission to write APN settings: Neither user 10146 nor current process has android.permission.WRITE_APN_SETTINGS.
...
---------------------------------------------------------------------
java.lang.SecurityException: ConnectivityService: Neither user 10097 nor current process has android.permission.CONNECTIVITY_INTERNAL.
---------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

提前致谢..

permissions android system android-4.4-kitkat

4
推荐指数
2
解决办法
1万
查看次数