Handling missing init.svc.bootanim prop when checking boot state

At some point, recent android-desktop devices stopped reporting the
"init.svc.boot" prop. This is believed to have made ~all their test
tasks have a 5min overhead since from the PoV of swarming, all their
devices are still booting.

"service.bootanim.exit" seems like a sufficient replacement prop, so
this will make swarming check that prop an additional to the old one.

This CL also changes the package-manager check to instead of calling
`pm path` without a path arg and expecting it to fail, we simply ask
for the path to the system "android" APK. This should be accomplish
the same level of system check, without running a command that we
expect to fail. See also:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/catapult/devil/devil/android/device_utils.py;drc=f1f18d8a8d1547cf7441dc4e3e30c833fccf304b;l=1242

Tested all this locally on my android-desktop DUT, and confirmed that
the 5min overhead disappears on a fully-booted DUT.

Bug: 413572031
Change-Id: Ia9ebcc40aefcf3ef3d7a8907a783f7f91a480e43
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/python-adb/+/6506964
Commit-Queue: Ben Pastene <bpastene@chromium.org>
Reviewed-by: Andrew Lamb <andrewlamb@chromium.org>
1 file changed