adb disable-verity 실행 실패 원인

1449 단어 기술 총결산
andrid8.1 핸드폰에서 #adbdisable-verity 명령을 실행하면 다음과 같은 error 정보를 되돌려줍니다."Error getting verity state"이유: #adb disable-verity 명령을 실행하면 다음과 같은 함수가 호출됩니다.
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

좋은 웹페이지 즐겨찾기