我想建立一个带有设备管理器应用程序的AOSP。
如何使用预配置的device_owner.xml和device_policies.xml构建AOSP?
附注:我的目标设备是Nexus5。
我想建立一个带有设备管理器应用程序的AOSP。
如何使用预配置的device_owner.xml和device_policies.xml构建AOSP?
附注:我的目标设备是Nexus5。
我猜你可能已经晚了,但是对于其他寻找相同内容(就像我一样)的人,有一篇关于kiosk模式的文章,其中包含很多技术细节:
http://trac.gateworks.com/wiki/Android/Kiosk
关于设备所有权的详细信息:
“但是,如果从源代码构建,则可以通过在out/target/product/ventana/data/system/下注入以下两个文件来绕过用户请求,并在第一次启动时将您的应用程序设为设备所有者/管理员。注入是通过在您的设备配置文件(即device/gateworks/ventana/ventana.mk)中添加文件到PRODUCT_COPY_FILES
变量来完成的。”
只需使用已配置的所有权/策略xmls将此添加到您的设备配置文件(.mk)的末尾即可:
# Set device ownership for the kiosk mode app
PRODUCT_COPY_FILES += \
device/gateworks/ventana/device_owner.xml:data/system/device_owner.xml \
device/gateworks/ventana/device_policies.xml:data/system/device_policies.xml
这还不够,将文件直接添加到 /data/system 中无法在出厂设置 (擦除数据分区) 后保留。
相反,您需要将您的 device_owner.xml
和 device_policies.xml
添加到系统分区中(任何文件夹都可以,可以简单地位于 /system/
下),然后编辑您的 init.rc 文件以复制 device_owner.xml
和 device_policies.xml
,这应该在 on post-fs-data
部分完成(在挂载数据分区后执行)。
别忘了为这些文件设置正确的权限 chmod 0600
和 chown system sytem
您的 makefile 应该如下所示:
PRODUCT_COPY_FILES += \
device/gateworks/ventana/device_owner.xml:system/device_owner.xml \
device/gateworks/ventana/device_policies.xml:system/device_policies.xml
你的 init.rc 文件应该长这样:
on post-fs-data
# set device manager as device owner
copy /system/device_owner_2.xml /data/system/device_owner_2.xml
chmod 0600 /data/system/device_owner_2.xml
chown system system /data/system/device_owner_2.xml
copy /system/device_policies.xml /data/system/device_policies.xml
chmod 0600 /data/system/device_policies.xml
chown system system /data/system/device_policies.xml