OPPO(realme) 魔改了设备管理员 API,增加了一个设备管理员应用签名白名单。白名单内有 Google 官方签名和测试签名。
OPPO 设备在激活设备管理员前会先判断一下应用签名是否在白名单。如果应用签名不在白名单,就不允许设置为设备管理员应用(@ProvisioningPreCondition 99)。当然了,小黑屋冰箱等等应用没有使用这两个签名,自然不在白名单,无法激活设备管理员。

OPPO 为什么要设置这个白名单,而不是一刀切呢?
可能是因为过 cts 需要,cts 测试设备管理员 API 时用的应用签名是 Google 签名或是测试签名。不加白名单,一刀切的后果就是设备过不了 cts 测试,手机不能在国外销售。

为啥不给小黑屋冰箱等等应用做白名单?
我怎么可能知道..

有解决方法吗?
有,联系 OPPO 把小黑屋冰箱等应用加到白名单;或是用测试签名打包 app。测试签名的话小黑屋冰箱无法验证其是否是正版,所以 pass。因此这个问题只能 OPPO 自己解决。
不过既然 OPPO 做了这个白名单,OPPO 肯定知道有小黑屋冰箱这类应用存在,因此我认为 OPPO 不太可能放开白名单。

------ 分割线 -----

“过 cts” 这个说法是我自己猜想的,我并不知道 OPPO 的真正用意。如果真的是为了过 cts,那么 OPPO 真的是“太牛逼啦”滑稽滑稽。