You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AOSP 13自定义设置向导配置问题:重复ID与权限缺失求助

修复AOSP 13中GrapheneOS-SetupWizard的配置问题

针对你遇到的日志错误,分三个核心问题逐一给出修复方案:

1. 解决共享UID重复问题

日志里的Adding duplicate shared id: 1000 name=org.lineageos.setupwizard,是因为SetupWizard的AndroidManifest.xml使用了系统默认UID(1000),和其他系统应用冲突。

修复步骤:

  • 打开GrapheneOS-SetupWizard的AndroidManifest.xml,找到根节点manifest的sharedUserId属性,替换为专属系统级UID,比如android.uid.setupwizard(确保系统未占用该UID):
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.lineageos.setupwizard"
        android:sharedUserId="android.uid.setupwizard">
    
  • 检查设备配置文件device/{vendor}/{device}/manifest.xml或system_ext/etc/permissions下的文件,确认没有其他应用声明相同的sharedUserId和包名。

2. 让PackageManager识别为设置向导

日志里的There should probably be exactly one setup wizard; found 0: matches=[],说明系统未将该应用识别为默认设置向导,需补充配置标记。

修复步骤:

  • 在SetupWizard主Activity的intent-filter中添加设置向导专属分类和标记:
    <activity
        android:name=".SetupWizardActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <!-- 添加设置向导专属分类 -->
            <category android:name="android.intent.category.SETUP_WIZARD" />
        </intent-filter>
        <!-- 标记为完整设置向导模式 -->
        <meta-data
            android:name="android.setupwizard.mode"
            android:value="FULL_SETUP" />
    </activity>
    
  • 确保应用被标记为privapp:检查system_ext/etc/permissions/privapp_whitelist_org.lineageos.setupwizard.xml,包名需和SetupWizard一致:
    <privapp-permissions package="org.lineageos.setupwizard">
        <!-- 按需添加SetupWizard需要的系统权限 -->
    </privapp-permissions>
    
  • 在设备的device.mk或product.mk中添加编译配置,确保应用被编译为系统特权应用:
    PRODUCT_PACKAGES += GrapheneOS-SetupWizard
    PRODUCT_PRIVILEGED_APP_PACKAGES += GrapheneOS-SetupWizard
    

3. 解决权限缺失问题

日志里的Permission not found: com.google.android.setupwizard.SETUP_COMPAT_SERVICE,是因为GrapheneOS的SetupWizard引用了谷歌专属权限,而AOSP原生无该权限定义。

修复步骤:

  • 打开SetupWizard的AndroidManifest.xml,搜索并移除所有com.google.android.setupwizard.SETUP_COMPAT_SERVICE相关的权限声明:
    <!-- 删除或注释掉这类无效权限 -->
    <!-- <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" /> -->
    
  • 检查代码中是否有依赖该权限的服务调用,替换为AOSP原生服务或直接移除相关逻辑,确保只使用AOSP原生存在的系统权限(如android.permission.MANAGE_USERS、android.permission.SET_TIME_ZONE等)。

验证步骤

  • 重新编译AOSP并刷入设备,执行adb shell pm list packages -s | grep setup确认应用已作为系统应用安装。
  • 执行adb shell dumpsys package org.lineageos.setupwizard,检查输出中的UID、权限、intent filter配置是否正确。
  • 重启设备,观察设置向导是否正常启动。

内容的提问来源于stack exchange,提问作者frostSi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:21:18