Files
OwnDroid/Guide.md
BinTianqi b5ebf7b6fa update docs about setUserControlDisabledPackages
use annotation instead of proguard rules to keep ShizukuService
hide profile owner entry if device owner is activated
2024-04-27 12:12:55 +08:00

1126 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 使用指南
欢迎来到OwnDroid使用教程
在这里了解各个功能所需的权限、兼容的安卓版本和注意事项
## 目录
0. [使用前须知](#使用前须知)
1. [权限](#权限)
2. [系统](#系统)
3. [网络](#网络)
4. [工作资料](#工作资料)
5. [应用管理](#应用管理)
6. [用户限制](#用户限制)
7. [用户管理](#用户管理)
8. [密码与锁屏](#密码与锁屏)
9. [其他功能](#其他功能)
10. [构建](#构建)
## 使用前须知
1. Device admin, Profile owner和Device owner有极高的特权包括但不限于让你的设备丢失所有数据。所以请谨慎使用
2. 以下的所有命令都需要在`adb shell`中执行。请进入`adb shell`后执行,不要直接`adb shell xxx`,容易出问题
3. ColorOS用户请在release页面下载testKey版否则无法激活Device owner
## 权限
### Device admin
有时候叫“设备管理器”
权限最小,数量不限
#### 激活
- 安卓设置中激活(你可以在此应用中跳转到安卓设置的激活界面)
- ADB命令
- Shizuku本质上还是ADB激活
ADB激活命令
```shell
dpm set-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
一个设备可以同时存在多个Device admin。
小天才电话手表Android 8.1使用ADB激活Device admin会返回"Success",但是实际上没有效果
#### 停用
- 此应用的”权限“界面中停用
- 安卓设置中停用
- ~~ADB命令停用~~参考Device owner的ADB命令停用
### Profile owner
权限中等
如无特别说明Profile owner包括主用户、工作资料和受管理用户中的Profile owner
每个用户都可以有一个Profile owner
#### 激活
- 使用ADB激活不推荐如果能使用ADB建议激活Device owner只能有一个Profile owner
- Shizuku本质上还是ADB激活
- 创建工作资料此应用会成为工作资料中的Profile owner只能有一个Profile owner
- 成为Device owner后创建并管理用户此应用会成为新用户的Profile owner每个用户各有一个Profile owner
ADB激活命令
```shell
dpm set-profile-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
#### 停用
主用户:”权限“界面中停用~~或ADB停用~~
工作资料:”设备控制“界面中的”清除数据“,会删除工作资料
受管理的用户:删除用户即可
### Device owner
权限最高,一个设备只能有一个
#### 激活
- 使用ADB激活
- Shizuku本质上还是ADB激活
- 恢复出厂设置并开机后使用NFC发送这个app的下载链接没试过
- 使用Root权限往/data/system里面放一个xml文件可以无视当前存在的用户和账号没试过
ADB激活命令
```shell
dpm set-device-owner com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
ADB激活有一定局限性
激活前必须删除所有用户user否则会报错。你可以使用下面这条ADB命令查看已有的用户
```shell
pm list users
```
激活前也要删除所有账号account否则会报错。你可以使用下面这条ADB命令查看已有的账号
```shell
dumpsys account
```
上面两个是安卓系统的限制,此外,还有设备生产商的限制
MIUI需要在开发者选项中打开”USB调试安全设置
ColorOS请使用testKey的apk否则只能使用Device admin和工作资料中的Profile owner
小天才电话手表Android 8.1完全不支持Device owner
#### 停用
- 恢复出厂设置(这是官方推荐的做法)
- 在“权限”页面停用(推荐)
- ADB命令停用麻烦
ADB命令停用十分麻烦你需要修改AndroidManifest.xml并自己编译项目。
你需要把AndroidManifest.xml中的`android:testOnly="false"`的值改为true
签名校验问题请自己解决
然后使用这条ADB命令停用
```shell
dpm remove-active-admin com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
使用这条命令也可以停用Device admin和Profile owner
以上三种方法停用Device owner都会同时停用Device admin
### Shizuku
请自己学习如何启动[Shizuku](https://github.com/RikkaApps/Shizuku)
功能:
- 激活[Device admin](#device-admin)
- 激活[Profile owner](#profile-owner)
- 激活[Device owner](#device-owner)
- 激活[由组织拥有的工作资料](#由组织拥有的工作资料)
- 列出所有Device owner和Profile owner
### 设备唯一标识码
需API31或以上
需要先设置[组织ID](#组织ID)同一个组织ID的设备唯一标识码相同恢复出厂设置不变
### 组织名称
需API26或以上
需要Device owner或Profile owner
设置组织名称后会在一些地方显示此设备归xxx所有
### 不受控制的账号类型
需Device owner或Profile owner
作用未知
### 锁屏信息
需API24或以上
需要Device owner或Profile owner
在锁屏界面上显示的一段简短的消息
### 提供支持的长/短消息
需API24或以上
如果用户试图使用被挂起的应用或被禁用的功能,会显示提供支持的短消息
提供支持的长消息不知道有啥用
### 转移所有权
需要Device owner或Profile owner
需要API28或以上
转移设备所有权到另外一个Device owner或Profile owner
目标应用必须是Device admin且支持被转移所有权
## 系统
### 禁用相机
需要的权限Device owner或Profile owner
### 禁止截屏
需要的权限Device owner或Profile owner
也会禁止AOSP自带的录屏
### 隐藏状态栏
需要的权限Device owner或附属用户的Profile owner
需要API34或以上
状态栏仍会显示时间和系统图标,但是通知图标会隐藏,并且状态栏不能下拉
### 自动设置时间
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API30或以上
默认打开
### 自动设置时区
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API30或以上
默认打开
### 自动设置时间(弃用)
需要的权限Device owner或Profile owner
自从API30开始弃用在API30或以上的设备上此功能不会显示
### 全局静音
需要的权限Device owner或Profile owner
### 备份服务
需要的权限Device owner或Profile owner
需要API26或以上
### 禁止蓝牙分享联系人
需要的权限Device owner或Profile owner
需要API23或以上
### 通用标准模式
需要的权限Device owner
需要API30或以上
### USB信号
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API31或以上
有的设备不支持
默认打开
### 锁屏方式
禁用和启用锁屏方式,需要无锁屏密码
需要的权限Device owner或附属用户的Profile owner
需要API28或以上
### 立即锁屏
选项重新输入密码需API26或以上
需要的权限Device admin
无论勾不勾选这个选项,解锁时都需要重新输入密码
### 请求错误报告
需要API24或以上
需要的权限Device owner
### 重启
需要API24或以上
需要的权限Device owner
### 修改时间
输入从Epoch(1970/1/1 00:00:00 UTC)到你想设置的时间(毫秒)
需要的权限Device owner或由组织拥有的工作资料的Profile owner
### 权限策略
当应用请求权限时执行的操作
- 默认(由用户决定)
- 自动允许
- 自动拒绝
需要的权限Device owner或Profile owner
### MTE策略
MTE: Memory Tagging Extension内存标记拓展[安卓开发者MTE](https://developer.android.google.cn/ndk/guides/arm-mte?hl=zh-cn)
需要安卓14和Armv9
需要的权限Device owner
选项:
- 由用户决定
- 开启
- 关闭
### 附近App共享&附近通知共享
需要的权限Device owner或Profile owner
需要API31或以上
选项:
- 由用户决定
- 启用
- 禁用
- 在足够安全时启用
### 锁定任务模式
需要的权限Device owner
需要API28或以上
选项:
- 禁用全部
- 自定义
- 允许状态栏信息
- 允许通知
- 允许返回主屏幕(启动器需在白名单内)
- 允许打开后台应用概览
- 允许全局行为(比如长按电源键的对话框)
- 允许锁屏(如果不允许,即使有密码也不会锁屏)
- 阻止启动未允许的应用阻止白名单应用启动非白名单应用需要API30
### Ca证书
需要的权限Device owner或Profile owner
需要先选择一个证书(一般是*.0
- 查看这个证书是否已安装
- 安装这个证书
- 卸载这个证书(如果已安装)
或者清除所有用户证书
### 安全日志&&重启前安全日志
需要的权限Device owner或由组织拥有的工作资料的Profile owner
如果被Device owner使用设备上不能有非附属用户否则不会有输出
需要API24或以上
### 系统更新策略
需要的权限Device owner
查看待安装的更新是否安全补丁
系统更新策略:
- 准备好后立即更新
- 在某段时间里更新
- 延迟30天
- 默认(由用户决定)
### 恢复出厂设置
**谨慎使用**
需要的权限Device admin
选项:
- 默认
- 清除外部存储
- 清除受保护的数据仅Device owner
- 清除eUICC
- 静默清除(不会向用户显示原因)
方法:
- WipeData
- WipeDevice需要API34或以上需要Device owner或由组织拥有的工作资料的Profile owner
恢复出厂原因需要API28或以上只有WipeData能用
如果在受管理用户中使用,会清除那个用户的数据并跳转到主用户
如果在工作资料中使用,会删除工作资料
API34或以上将不能在系统用户中使用WipeData如果要恢复出厂设置请使用WipeDevice
在AVD(API34)中使用WipeDevice没有任何效果
## 网络
这个页面需要API24或以上才能进入
### 查看Wi-Fi Mac地址
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API24或以上
得到的是设备真实的Wi-Fi Mac地址不是连接Wi-Fi时随机生成的Mac地址
### 优先网络服务
需要的权限Device owner
需要API33或以上
功能开发中
### Wi-Fi锁定
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API30或以上
作用未知
### 要求最小Wi-Fi安全等级
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API33或以上
选项:
- 开放
- WEP、WPA(2)-PSK
- WPA-EAP
- WPA3-192bit
用户不能连接低于要求的安全等级的Wi-Fi如果已经连接了这样的Wi-Fi会立即断开
### Wi-Fi SSID策略
需要的权限Device owner或由组织拥有的工作资料的Profile owner
需要API33或以上
模式:
- 黑名单
- 白名单
设置用户能连接/不能连接的Wi-Fi
### 私人DNS
需要的权限Device owner
需要API29或以上
可以将私人DNS模式设为自动
也可以设置私人DNS主机名
### 网络日志记录
需要的权限Device owner或工作资料的Profile owner
工作资料中使用此功能只会记录工作资料的网络日志
如果被Device owner使用设备上不能有非附属用户
需要API26或以上
功能开发中,所以现在使用收集不到任何内容
### Wi-Fi密钥对
需要的权限Device owner或Profile owner
需要API31或以上
可以添加或移除Wi-Fi密钥对
作用未知
### APN设置
需要的权限Device owner
需要API28或以上
我没用过这个功能因为我不懂APN。如果这个功能存在问题请打开一个issue
## 工作资料
工作资料是一种特殊的用户,使用`pm list user`命令可以看到工作资料工作资料的默认用户名是“工作资料”或“Work Profile”
工作资料创建后默认禁用[安装未知来源应用](#应用)
### 创建工作资料
设备上不能有Device owner
一个设备只能有一个工作资料
选项:
- 跳过加密需要API24或以上没有实际作用
创建后会跳转到工作资料中的OwnDroid请立即按照指引激活工作资料
创建后工作资料中的OwnDroid会成为Profile owner
在WearOS上可以创建工作资料但是会导致SystemUI停止运行一次。WearOS原生的启动器不会显示工作资料中的应用你需要使用支持工作资料的启动器。你可以通过[ADB命令移除工作资料](#删除工作资料)。此外不要尝试给工作资料重置密码因为WearOS不能输入工作资料的密码。测试环境WearOS4(AVD)
### 由组织拥有的工作资料
需要API30或以上
成为由组织拥有的工作资料后可以使用更多功能
前提条件OwnDroid是工作资料中的Profile owner
首先你需要在工作资料中的OwnDroid的“用户管理”页面中查看UserID
然后执行下面这个ADB命令
```shell
dpm mark-profile-owner-on-organization-owned-device --user USER_ID com.bintianqi.owndroid/com.bintianqi.owndroid.Receiver
```
把命令中的USER_ID替换为你的UserID
出现“Success”即为成功
### 挂起个人应用
需要的权限由组织拥有的工作资料的Profile owner
只会挂起个人的用户应用系统应用和OwnDroid仍然可以打开
### 资料最长关闭时间
需要的权限工作资料的Profile owner
用户可以关闭工作资料,如果关闭工作资料的时间超过了在这里设置的时间,会挂起个人应用
设置的时间不能小于72小时如果小于72小时按72小时算
### 跨资料Intent过滤器
需要的权限工作资料的Profile owner
默认情况下,工作资料中的应用不能打开个人应用,个人应用也不可以打开工作资料中的应用
添加Intent过滤器以允许这些行为
### 组织ID
需要的权限工作资料的Profile owner
需要API31或以上
组织ID长度需在6~64个字符之间
设置组织ID后才能在“权限”页面查看[设备唯一标识码](#设备唯一标识码)。不同的组织ID会有不同的设备唯一标识码
### 删除工作资料
你可以在工作资料中使用 [恢复出厂设置](#恢复出厂设置) 来删除工作资料
如果你的工作资料不是由组织拥有的,你可以打开安卓设置->安全->更多安全设置->设备管理器->带工作资料图标的OwnDroid->移除工作资料(非原生用户自己找)
你也可以使用ADB命令移除工作资料把USER_ID替换为工作资料的UserID
```shell
pm remove-user USER_ID
```
## 应用管理
如果是工作资料,只能管理工作资料中的应用
如果是受管理的用户,只能管理受管理用户中的应用
除了安装应用所有的操作都需要应用的包名你可以通过ADB命令查看所有已安装应用的包名
```shell
pm list packages
```
### 应用详情
跳转到应用详情,不需要任何权限
### 挂起
需要的权限Device owner或Profile owner
需要API24或以上
挂起应用应用图标变为灰色打开时会提示被IT管理员限制
### 隐藏
需要的权限Device owner或Profile owner
深度隐藏。`pm list packages`都看不到隐藏的应用。无法卸载隐藏的应用,因为找不到。你一定要记得隐藏的应用的包名,否则你只能去`/data/app`找被隐藏的应用
### VPN常开
需要的权限Device owner或Profile owner
需要API24或以上
需要应用支持VPN常开
### 防卸载
需要的权限Device owner或Profile owner
用户无法在应用详情卸载应用,也不能使用`adb uninstall``pm uninstall`命令卸载
参考:用户限制->应用->卸载应用
### 禁止用户控制
需要的权限: Device owner或Profile owner
如果是Device owner需要API30或以上如果是Profile owner需要API33或以上
谷歌并没有在文档中说明Profile owner调用此功能所需的API等级但是[MinoriceOWO](https://github.com/MinoriceOwO)发现Profile owner在API33以下调用这个功能会导致OwnDroid崩溃[(issue #12)](https://github.com/BinTianqi/OwnDroid/issues/12)。[commit d4e8473](https://github.com/BinTianqi/OwnDroid/commit/d4e8473218a6d91bf3608133061f8e636e48cdbb)中已对API33以下的Profile owner隐藏该功能入口
用户无法清除这些应用的存储空间和缓存,但是可以在这里清除
### 权限管理
需要的权限Device owner或Profile owner
使用这个ADB命令查看系统支持的所有权限
```shell
pm list permissions
```
权限有三种状态:
- 允许
- 拒绝
- 由用户决定
设为允许或拒绝后用户无法在应用管理修改权限,用户也不能通过`pm grant``pm revoke`修改权限
从允许或拒绝改为由用户决定会保持当前的状态
只能修改运行时权限(可以通过对话框授权的权限)
在API31或以上Profile owner不能再修改传感器相关权限如果能修改传感器相关权限说明这个设备是完全受管理设备Device owner
### 跨资料应用
需要的权限工作资料的Profile owner
需要API30或以上
设置跨工作资料的应用需要目标应用支持跨资料比如GBoard
### 跨资料微件
需要的权限工作资料的Profile owner
设置跨工作资料的桌面小部件提供者
### 凭据管理策略
需要的权限Device owner
需要API34或以上
作用未知
### 许可的无障碍应用&输入法
需要的权限Device owner或Profile owner
无障碍应用:强制启用无障碍应用
输入法:强制启用输入法,但是不强制用户使用输入法
### 保持卸载的应用
需要Device owner
需要API28或以上
作用未知
### 清除应用存储
需要的权限Device owner或Profile owner
需要API28或以上
清除应用的存储空间
### 默认拨号应用
需要的权限Device owner或Profile owner
需要API34或以上
没有测试过
### 卸载应用
- 静默卸载需要Device owner否则没反应
- 请求卸载
### 安装应用
- 静默安装需要Device owner否则没反应
- 请求安装
## 用户限制
需要的权限Device owner或Profile owner
Profile owner无法禁用部分功能工作资料中部分功能无效wearOS部分功能无效
功能前面的数字代表最少需要的API等级
打开开关就是禁用对应的功能,默认情况下所有开关都是关闭的
所有的用户限制都需要API24或以上
### 网络与互联网
- 配置移动数据
- 配置Wi-Fi
- (24) 数据漫游
- (34) 使用2G(GSM)
- (34) 超宽频段无线电
- (33) 添加Wi-Fi配置
- (33) 修改Wi-Fi状态
- (33) Wi-Fi直连
- (33) Wi-Fi共享
- (33) 分享设备管理器配置的Wi-Fi
- (23) 重置网络
- 配置网络共享
- 配置VPN
- (29) 配置私人DNS仍可以在网络中设置[私人DNS](#私人DNS)
- (28) 飞行模式
- 配置小区广播
- 短信
- 拨出电话
### 更多连接
- (26) 蓝牙
- (26) 蓝牙共享
- 分享位置
- (28) 配置位置信息
- (22) Beam发送
- USB文件传输
- 挂载物理媒体TF卡、U盘等
- (28) 打印
### 应用
- 安装应用
- (29) 安装未知来源应用(全局)
- 安装未知来源应用
- 卸载应用
- 控制应用
- (34) 修改默认APP
### 媒体
- (28) 调整亮度
- (28) 修改屏幕超时(仍可以在密码与锁屏中设置[屏幕超时](#最大屏幕超时时间)
- (28) 息屏显示 (AMOLED)
- 调整音量
- 取消麦克风静音
- (31) 切换摄像头使用权限
- (31) 切换麦克风使用权限
### 用户
- 添加用户(仍可以在用户管理中[创建用户](#创建并管理用户)
- 移除用户(仍可以在用户管理中[移除用户](#用户操作)
- (28) 切换用户
- (24) 修改用户头像
- 跨用户复制(包括工作资料)
- (28) 分享至工作应用
- (28) 个人和工作密码相同只能被工作资料Profile owner设置
### 其他
- (26) 自动填充服务
- 配置凭据
- (29) 内容捕获(作用未知)
- (29) 内容建议(作用未知)
- 创建窗口比如Toast
- (24) 更换壁纸在MIUI上可能不起作用
- (34) 启用设备管理器设备管理器就是Device admin
- (23) 娱乐(仅谷歌商店里的应用)
- 修改账号设置
- (28) 修改语言
- (28) 修改日期、时间
- (28) 系统报错对话框
- 恢复出厂设置
- (23) 安全模式(开机时通过特定按键组合进入的模式)
- 调试功能
## 用户管理
用户user不是账号account
使用ADB查看所有用户
```shell
pm list users
```
上面这条命令返回的结果中用户名前面的数字就是UserID
### 用户信息
用户已解锁:你能看到这个的时候一定解锁了
支持多用户系统是否支持多用户。WearOS即使写着支持多用户但不一定支持
系统用户UserID为0的用户需API23
管理员用户可以创建、删除用户。一个设备可以有多个管理员用户需API34
无头系统用户:~~头被砍掉了~~ 系统用户运行着系统服务但是没有分配给任何人使用也不能切换到系统用户需API31
可以登出:功能未知,无论什么用户都不能登出
临时用户临时用户登出后或重启后会被删除需API28
附属用户:详见[附属用户ID](#附属用户ID)
UserID不是UID。系统用户的UserID为0其他用户包括工作资料的UserID从10开始计算
序列号每个用户都不同的序列号序列号和UserID可能是一样的但是这是两个不同的东西
### 用户操作
推荐使用用户序列号来标识用户如果要使用UIDUID可以是运行在目标用户中的任意应用
无需输入UID/用户序列号的功能:
- 登出当前用户需要是附属用户的Profile owner需API28如果是无头系统用户模式会切换到前台用户
需要输入UID/用户序列号的功能:
- 在后台启动用户需Device owner和API28
- 切换至用户需Device owner
- 停止用户需Device owner和API28
- 移除用户需Device owner
### 创建并管理用户
创建一个受管理用户,新用户的头像右下方会有公文包标志
需要Device owner和API24
选项:
- 跳过创建用户向导(切换到新用户之后的向导)
- 临时用户需API28
- 启用所有系统应用有些系统应用在新用户中是默认不启用的比如谷歌手机上的YouTube
创建后OwnDroid会成为受管理用户中的Profile owner
这个功能在WearOS上使用会导致SystemUI停止运行一次过几秒恢复正常。创建用户实际上成功了回到OwnDroid后能看到新用户的序列号`pm list users`也能看到新用户。如果切换到新用户SystemUI无法使用表现为黑屏可以用ADB命令启动别的应用。如果黑屏无法使用ADB执行下面这个命令把USER_ID替换成受管理用户的用户序列号
```shell
pm remove-user --set-ephemeral-if-in-use USER_ID
```
新用户会被设为临时用户,重启后临时用户会被删除并切换到主用户
原生WearOS4(AVD)会出现这个问题,其他版本不知道有没有这个问题)
### 附属用户ID
需要Device owner或Profile owner工作资料中的Profile owner虽然也能设置但是没有实际作用
附属用户ID是一个列表列表中可以有多个不相同的ID不考虑顺序
当Device owner创建并管理用户时新的用户不是附属用户。Device owner设置和受管理用户完全相同的附属用户ID后受管理用户成为附属于Device owner的用户
Device owner无论在何时都是附属于设备的用户
你可以在用户管理->[用户信息](#用户信息)查看当前用户是否附属用户
### 用户名
修改当前用户的用户名
需要Device owner或Profile owner
### 用户图标
选择一个图片并设置为当前用户的图标
需要Device owner或Profile owner
需要API23或以上
尽量选择一个正方形的图片,分辨率不要太大,以免产生问题
### 用户会话开始/结束消息
用户会话开始消息:切换到非系统用户时的消息
用户会话结束消息:切换回系统用户时的消息
## 密码与锁屏
**谨慎使用**
**警告!**手表不支持带字母的密码也不支持超过4位的PIN码如果你设置了这样的密码或密码复杂度要求你将无法解锁你的手表
### 密码信息
当前密码复杂度:参考[密码复杂度要求](#密码复杂度要求)需要API29或以上
密码达到要求:当前密码复杂度是否达到了要求的密码复杂度
密码已错误次数你能看到这个数字的时候这个数字一定是0
个人与工作应用密码一致需要是工作资料的Profile owner需要API28或以上
### 密码重置令牌
需要Device owner或Profile owner
需API26或以上
操作:
- 清除令牌
- 设置令牌(如果无锁屏密码,会自动激活令牌)
- 激活令牌(如果有锁屏密码,会跳转到设置中,要求输入锁屏密码)
暂不支持自己输入令牌
### 重置密码
设置一个新的密码密码的长度需要4位或以上不输入密码将会清除现有的密码
长度在6位或以下的纯数字密码将会设置为PIN码
选项:
- 开机时不要求输入密码( **危险!** 一旦设置只能通过恢复出厂设置来取消。应该是给FDE全盘加密设备用的
- 不允许其他设备管理员重置密码直至用户输入一次密码
方式:
- 使用令牌重置密码需API26或以上
- 重置密码弃用API24之前Device admin可随时使用。API24或以上Device admin只能在没有密码时设置密码Device owner和Profile owner仍可以在用户解锁设备后更改密码。API26或以上完全弃用
### 最大密码错误次数
需要Device owner
输入密码错误次数达到限制后会恢复出厂设置前提是OwnDroid有权限恢复出厂设置
### 密码失效超时时间
需要Device owner
一个密码使用的时间超过这个时间后会要求用户重新设置密码
### 密码历史记录长度
需要Device owner
用户无法输入历史记录内相同的密码
不知道有啥用
### 最大屏幕超时时间
需要Device owner
如果设备无用户交互的时间达到屏幕超时时间就会锁定屏幕默认是0由用户决定在这里设置屏幕超时时间后用户只能设置比这个短的屏幕超时时间
### 密码复杂度要求
需要API31或以上
需要Device owner或Profile owner
有4个密码复杂度等级
1. 无(允许不设密码)
2. 低(允许图案和连续性)
3.无连续性至少4位
4.无连续性至少6位
连续性密码重复6666或密码递增递减4321、2468
要求设置新密码:跳转到设置中要求设置新密码,用户也可以选择不设置
### 锁屏功能
需要Device ownerProfile owner或许也可以
模式:
- 允许全部
- 禁用全部
- 自定义
自定义的项目:
- 禁用小工具API21或以上弃用OwnDroid的最小兼容API版本21所以这个功能没用
- 禁用相机
- 禁用通知(不知道是否包含音乐播放器)
- 禁用未经编辑的通知(作用未知)
- 禁用可信代理
- 禁用指纹解锁
- 禁止远程输入弃用需要API24作用未知
- 禁用人脸解锁需API28或以上
- 禁用虹膜解锁需API28或以上真的有人用得到吗
- 禁用生物识别包括指纹面部虹膜需API28或以上
- 禁用快捷方式需API34或以上
### 密码质量要求
需要Device owner或Profile owner
API31及以上弃用请使用[密码复杂度要求](#密码复杂度要求)
质量要求:
- 无要求(默认)
- 需要密码或图案,不管复杂度
- 至少一个字母
- 至少一个数字
- 数字字母各至少一个
- 生物识别(弱)
- 复杂数字(无连续性)
- 自定义(现在不支持,以后也不会支持,因为这已经弃用了)
## 其他功能
### ~~手表模式~~
正在修改预计在5.0版本重新加入。
在OwnDroid的设置中打开
适配手表的屏幕大小添加一些WearOS/AndroidWear相关的提示比如[密码与锁屏](#密码与锁屏)
### 动态取色
需要安卓12或以上
在安卓12或以上此功能默认打开
打开后OwnDroid中的颜色方案将会跟随系统
建议打开,因为自带的颜色方案不好看
打开或关闭此功能都要重启OwnDroid
## 构建
建议使用Android Studio
### testkey
- 使用Gradle执行任务assembleRelease生成未签名的release
- 打开signature目录运行signApk-testKey.bat或signApk-testKey.sh
- Windows: apk在`app/build/outputs/apk/release`目录中
- Linux: apk在`signature`目录中