Files
config_apk/AndroidManifest.xml
2026-06-08 03:55:11 -07:00

92 lines
3.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Required if/when activated as device owner -->
<uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
<application
android:label="PawletConfig">
<!--
No-op activity required for icon pack discovery.
Launchers query for packages with these intent filters.
-->
<activity
android:name=".IconPackActivity"
android:exported="true"
android:label="PawletOS Icons"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- ADW / Nova / Lawnchair icon pack discovery -->
<intent-filter>
<action android:name="org.adw.launcher.THEMES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="com.novalauncher.THEME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- Applies config on first boot after install / update -->
<receiver
android:name=".ConfigReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
<!--
Partner customization receiver — discovered by Lawnchair via
com.android.launcher3.util.Partner (MATCH_SYSTEM_ONLY query).
Only active when this APK is installed as a system app (ROM build).
Lawnchair reads res/xml/partner_default_layout.xml from this package.
-->
<receiver
android:name=".PartnerCustomizationReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.launcher3.action.PARTNER_CUSTOMIZATION" />
</intent-filter>
</receiver>
<!--
ContentProvider serving partner_default_layout.xml to Lawnchair.
Works even as a user app — ConfigProvisioner writes
Settings.Secure["launcher3.layout.provider"] = "app.pawlet.config.layout"
and Lawnchair reads the layout from this provider.
-->
<provider
android:name=".LayoutProvider"
android:authorities="app.pawlet.config.layout"
android:exported="true"
android:readPermission="android.permission.READ_LAUNCHER_LAYOUTS" />
<!--
Device admin receiver — required for Device Owner mode.
Activation is intentionally NOT done automatically; see ConfigReceiver.
To activate:
adb shell dpm set-device-owner app.pawlet.config/.PawletDeviceAdminReceiver
-->
<receiver
android:name=".PawletDeviceAdminReceiver"
android:exported="true"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
</application>
</manifest>