使用Android源码自带的工具进行OTA升级,报错如下:
sun@sun-pc:~/nvme0/AOSP$ python system/update_engine/scripts/update_device.py out/dist/ota_package.zip Traceback (most recent call last): File "system/update_engine/scripts/update_device.py", line 34, inimport update_payload.payload File "/home/sun/nvme0/AOSP/system/update_engine/scripts/update_payload/__init__.py", line 20, in from update_payload.checker import CHECKS_TO_DISABLE File "/home/sun/nvme0/AOSP/system/update_engine/scripts/update_payload/checker.py", line 37, in from update_payload import common File "/home/sun/nvme0/AOSP/system/update_engine/scripts/update_payload/common.py", line 21, in from update_payload import update_metadata_pb2 File "/home/sun/nvme0/AOSP/system/update_engine/scripts/update_payload/update_metadata_pb2.py", line 7, in from google.protobuf import descriptor as _descriptor ImportError: No module named google.protobuf
解决方法:
当前使用的python版本是2.7,安装对应的版本的protobuf模块即可解决问题。
sun@sun-pc:~/nvme0/AOSP$ python -m pip install protobuf==3.17.3 #如果是python3有问题,就把这里的python改为python3
Collecting protobuf==3.17.3
Downloading https://files.pythonhosted.org/packages/e9/06/5606088c9fbfb924d0f228350e7ec8707fe8f8a6f3a024ace4f0da81d9ce/protobuf-3.17.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0MB)
100% |████████████████████████████████| 1.0MB 22kB/s
Collecting six>=1.9 (from protobuf==3.17.3)
Downloading https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
Installing collected packages: six, protobuf
Successfully installed protobuf-3.17.3 six-1.16.0



