我创建了一个使用系统证书签名的intentservice,因此它可以拥有系统权限并作为系统运行。我把它放在/ system / app目录中。当我在"所有者"下运行的应用程序调用它时android 4.4.2上的帐号,其uid为1000:
I / ActivityManager(3223):为服务com.abc.dbintentservice / .DbIntentService启动proc com.abc.dbintentservice:pid = 4515 uid = 1000 gids = {41000,1028,1015,1023,3002,3001,3003 }
打开具有系统所有权的sqlite文件没有问题。
我创建了一个辅助用户配置文件,并安装了调用intentservice的相同应用程序,我得到了一个不同的uid
I / ActivityManager(3227):为服务com.abc.dbintentservice / .DbIntentService启动proc com.abc.dbintentservice:pid = 5161 uid = 1001000 gids = {41000,1028,1015,1023,3002,3001,3003 }
并且intentservice有一个无法打开sqlite文件的uid。
感谢任何见解。