android 11 系统在frameworks\base\core\java\android\app\AppOpsManager.java中修改让apk允许管理所有文件权限
时间: 2024-04-27 14:18:00 浏览: 11
根据提供的引用内容,要在Android 11系统中修改让apk允许管理所有文件权限,需要进行以下步骤[^1]:
1. 打开文件:frameworks/base/core/java/android/app/AppOpsManager.java。
2. 找到名为`OP_MANAGE_EXTERNAL_STORAGE`的常量,该常量对应于MANAGE_EXTERNAL_STORAGE权限。
3. 将该常量的值设置为`OPSTR_LEGACY_STORAGE`,这将允许apk管理所有文件权限。
以下是示例代码:
```java
public static final int OP_MANAGE_EXTERNAL_STORAGE = OPSTR_LEGACY_STORAGE;
```
请注意,修改系统源代码需要具备相应的权限和技术知识,并且需要小心操作以避免不必要的问题。在进行任何系统级修改之前,请务必备份相关文件并了解潜在的风险。
相关问题
android 11 在frameworks\base\services\core\java\com\android\server\pm\permission\PermissionManagerService.java 允许管理所有文件权限
根据提供的引用内容,Android 11中允许管理所有文件权限的代码位于PermissionManagerService.java文件中[^1]。具体代码如下所示:
```java
@Override
public int checkPermission(String permName, String pkgName) {
try {
String taker = mContext.getPackageName();
if ("com.google.android.permission.gts".equals(taker)) {
String[] whiteLists = new String[]{"com.xxx.yyy"};
for (String pkg : whiteLists) {
if (pkg.equals(pkgName)) {
return PERMISSION_DENIED;
}
}
}
return mPM.checkPermission(permName, pkgName, mContext.getUserId());
} catch (RemoteException e) {
throw new RuntimeException("PackageManager has died", e);
}
}
```
该代码段中,首先获取当前应用的包名,然后判断是否为特定的包名("com.google.android.permission.gts")。如果是特定的包名,则遍历白名单列表(whiteLists),如果传入的包名与白名单中的任何一个包名匹配,则返回PERMISSION_DENIED,否则调用mPM.checkPermission()方法检查权限。
android系统 apk接收广播BOOT_COMPLETED流程/frameworks/base/core/java/android/app/LoadedApk.java
Android系统APK接收广播BOOT_COMPLETED的流程可以通过以下步骤来实现:
1. 在AndroidManifest.xml文件中注册接收BOOT_COMPLETED广播的接收器。例如:
```xml
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
```
2. 创建一个BootCompletedReceiver类来处理接收到的广播。例如:
```java
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
// 在这里执行你想要的操作
}
}
}
```
3. 在接收到BOOT_COMPLETED广播时,系统会调用BootCompletedReceiver类的onReceive()方法。你可以在这个方法中执行你想要的操作,例如启动服务、发送通知等。
需要注意的是,为了确保接收到BOOT_COMPLETED广播,你需要在AndroidManifest.xml文件中添加相应的权限。例如:
```xml
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
```