SecretAPI

interface SecretAPI(source)

AutoTweaker 使用 GPG 加密存储密钥,私钥与密文放在一起,需要通过用户设置密码来保护密文。

AutoTweaker 在运行时将密码明文存储在内存之中,面对无 root 且不在同一用户下的进程,密码是安全的。 同时,只要 AutoTweaker 不在运行或者 isUnlocked 为 false,密码就是绝对安全的——只存储在用户脑中。

如果没有密码(isPasswordEmpty),那么加密毫无作用,SecretAPI 专门用来设置密码和接收密码。

在从用户接收密码时,请注意安全,AutoTweaker 接受同用户或 root 下任何进程带来的威胁,但插件不应该扩大这个威胁。 如果不具备安全接收密码的能力,请不要向用户获取密码——将解密交给其他适配器。

Properties

Link copied to clipboard
abstract val isUnlocked: StateFlow<Boolean>

密钥库已经解锁,请确保在调用任何 API 前检查此值,否则 SecretStoreLockedException 可能在任何地方抛出。

Functions

Link copied to clipboard
abstract suspend fun changePassword(oldPassword: String, newPassword: String)

修改密码。在从用户接收密码时,请注意安全。

Link copied to clipboard
abstract fun isPasswordEmpty(): Boolean

如果为 true,密码未设置。密码未设置时密钥库会自动解锁。

Link copied to clipboard
abstract suspend fun unlock(password: String)

解锁密钥库。在从用户接收密码时,请注意安全。