adb disable-verity 실행 실패 원인
1449 단어 기술 총결산
void set_verity_enabled_state_service(int fd, void* cookie) {
...
if (using_avb) {
// Yep, the system is using AVB.
AvbOps* ops = avb_ops_user_new();
if (ops == nullptr) {
WriteFdFmt(fd, "Error getting AVB ops
");
return;
}
if (set_avb_verity_enabled_state(fd, ops, enable)) {
any_changed = true;
}
...
}
이 함수에서 set_ 호출avb_verity_enabled_state()
/* Use AVB to turn verity on/off */
static bool set_avb_verity_enabled_state(int fd, AvbOps* ops, bool enable_verity) {
std::string ab_suffix = get_ab_suffix();
bool verity_enabled;
if (!avb_user_verity_get(ops, ab_suffix.c_str(), &verity_enabled)) {
WriteFdFmt(fd, "Error getting verity state
");
return false;
}
이 함수에서 "Error getting verity state"이 error 정보를 되돌려줍니다.
#adb disable-verity 이 명령은 vbmeta를 수정합니다.img 이 거울의 일부 내용은android8.1에서 보안 부팅 기능에 의해 보호됩니다. 거울이 바뀌면 vbmeta 검사로 인해 켜질 수 없습니다.
주의:android7.0 프로젝트에서 #adbdisable-verity 명령을 실행하면 set_avb_verity_enabled_state (), 그래서 이 문제는android7.0에 존재하지 않습니다.
avb(Android verify boot)에 대한 설명은 다음과 같습니다.https://android.googlesource.com/platform/external/avb/+/master/README.md