[Android] SonLeHung:
OTA Generation for Android x86-64

Hello All,

Currently I'm doing OTA update for Android-x86-64, I could successfully done dist build but I got below errors when do OTA generation.

Based on the log I see that the generation is failed since recovery.fstab is not available.

I'm quite doubtful whether Android-x86 support OTA generation or not, I will very much appreciated on your help!

This is the command that I used: ./build/tools/releasetools/ota_from_target_files -v -k ~/.android-certs/releasekey /home/android/fresh_android_8/out/dist/target_files.zip /home/android/fresh_android_8/out/dist/full-ota-update.zip

./build/tools/releasetools/ota_from_target_files -v -k ~/.android-certs/releasekey /home/android/fresh_android_8/out/dist/target_files.zip /home/android/fresh_android_8/out/dist/full-ota-update.zip
Warning: could not find RECOVERY/RAMDISK/etc/recovery.fstab
running: openssl pkcs8 -in /home/android/.android-certs/releasekey.pk8 -infor m DER -nocrypt
unzipping target target-files...
running: unzip -o -q /home/android/fresh_android_8/out/dist/target_files.zip -d /tmp/targetfiles-6HgR1y IMAGES/* META/*
Warning: could not find RECOVERY/RAMDISK/etc/recovery.fstab
--- target info ---
blockimgdiff_versions = (str) 3,4
blocksize = (int) 512
build.prop = (dict) {'ro.ril.gprsclass': '10', 'dalvik.vm.heapsize': '512m', 'ro.build.display.id': 'android_x86_64-userdebug 8.1.0 OPM8.190605.005 eng.androi.20200203.140824 test-keys', 'ro.wifi.channels': '', 'ro.enable.native.bridge.exec64': '1', 'media.sf.hwaccel': '1', 'ro.treble.enabled': 'false', 'ro.vendor.product.model': 'Generic Android-x86_64', 'ro.build.id': 'OPM8.190605.005', 'ro.product.cpu.abilist': 'x86_64,x86,armeabi-v7a,armeabi', 'dalvik.vm.heaptargetutilization': '0.75', 'ro.build.product': 'x86_64', 'dalvik.vm.heapstartsize': '16m', 'dalvik.vm.isa.x86.features': 'default', 'ro.build.host': 'android-Precision-WorkStation-T5500', 'ro.product.name': 'android_x86_64', 'ro.com.android.dataroaming': 'true', 'ro.build.version.security_patch': '2019-06-05', 'keyguard.no_require_sim': 'true', 'ro.com.android.dateformat': 'MM-dd-yyyy', 'media.sf.extractor-plugin': 'libffmpeg_extractor.so', 'ro.product.cpu.abilist32': 'x86,armeabi-v7a,armeabi', 'ro.build.version.incremental': 'eng.androi.20200203.140824', 'ro.product.board': '', 'ro.build.version.preview_sdk': '0', 'ro.carrier': 'unknown', 'ro.build.tags': 'test-keys', 'ro.vendor.product.brand': 'Android-x86', 'dalvik.vm.heapminfree': '512k', 'ro.build.version.sdk': '27', 'dalvik.vm.isa.x86.variant': 'x86_64', 'ro.build.date': 'Th\xe1\xbb\xa9 hai, 03 Th\xc3\xa1ng 2 n\xc4\x83m 2020 14:08:24 +07', 'ro.vendor.product.manufacturer': 'unknown', 'dalvik.vm.isa.x86_64.features': 'default', 'ro.ril.hsxpa': '1', 'dalvik.vm.heapmaxfree': '8m', 'ro.product.locale': 'en-US', 'ro.build.fingerprint': 'Android-x86/android_x86_64/x86_64:8.1.0/OPM8.190605.005/androi02031408:userdebug/test-keys', 'ro.build.date.utc': '1580713704', 'ro.build.characteristics': 'tablet', 'ro.product.cpu.abilist64': 'x86_64', 'ro.build.user': 'android', 'ro.hardware.vulkan.version': '4194307', 'ro.vendor.product.name': 'android_x86_64', 'ro.product.device': 'x86_64', 'ro.build.version.all_codenames': 'REL', 'dalvik.vm.stack-trace-dir': '/data/anr', 'ro.hardware.vulkan.level': '1', 'ro.build.description': 'android_x86_64-userdebug 8.1.0 OPM8.190605.005 eng.androi.20200203.140824 test-keys', 'dalvik.vm.lockprof.threshold': '500', 'dalvik.vm.isa.x86_64.variant': 'x86_64', 'ro.build.flavor': 'android_x86_64-userdebug', 'ro.product.cpu.abi': 'x86_64', 'ro.bionic.ld.warning': '1', 'ro.vendor.product.device': 'x86_64', 'ro.dalvik.vm.isa.arm64': 'x86_64', 'ro.product.brand': 'Android-x86', 'ro.board.platform': 'android-x86', 'ro.build.version.release': '8.1.0', 'ro.build.version.codename': 'REL', 'net.bt.name': 'Android', 'ro.enable.native.bridge.exec': '1', 'ro.build.type': 'userdebug', 'dalvik.vm.heapgrowthlimit': '192m', 'ro.config.alarm_alert': 'Alarm_Classic.ogg', 'ro.build.version.base_os': '', 'ro.opengles.version': '196608', 'ro.config.notification_sound': 'OnTheHunt.ogg', 'ro.dalvik.vm.isa.arm': 'x86', 'media.sf.omx-plugin': 'libffmpeg_omx.so', 'ro.expect.recovery_id': '0x991e535af0c12f2bff9209cb10e8e1756d9f93fd000000000000000000000000', 'persist.sys.dalvik.vm.lib.2': 'libart.so'}
cache_fs_type = (str) ext4
cache_size = (int) 69206016
default_system_dev_certificate = (str) build/target/product/security/testkey
ext_mkuserimg = (str) mkuserimg.sh
fs_type = (str) ext4
fstab = (dict) {}
fstab_version = (int) 2
mkbootimg_args = (str)
mkbootimg_version_args = (str) --os_version 8.1.0 --os_patch_level 2019-06-05
multistage_support = (str) 1
recovery_api_version = (int) 3
recovery_as_boot = (str)
recovery_mount_options = (str) ext4=max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc
selinux_fc = (str) /tmp/targetfiles-6HgR1y/META/file_contexts.bin
squashfs_sparse_flag = (str) -s
system_size = (int) 9006632960
tool_extensions = (str) device/generic/x86_64/../common
userdata_size = (int) 576716800
unable to load device-specific module; assuming none
using prebuilt recovery.img from IMAGES...
Total of 2198885 4096-byte output blocks in 4802 input chunks.
Finding transfers...
Generating digraph...
Finding vertex sequence...
Reversing backward edges...
0/0 dependencies (0.00%) were violated; 0 source blocks stashed.
Improving vertex order...
Revising stash size...
Total 0 blocks (0 bytes) are packed as new blocks due to insufficient cache size.
Reticulating splines...
9006624768 9006624768 (100.00%) new __DATA 0-1 4-2198884
max stashed blocks: 0 (0 bytes), limit: 55364812 bytes (0.00%)

Traceback (most recent call last):
File "./build/tools/releasetools/ota_from_target_files", line 1532, in <module>
main(sys.argv[1:])
File "./build/tools/releasetools/ota_from_target_files", line 1487, in main
WriteFullOTAPackage(input_zip, output_zip)
File "./build/tools/releasetools/ota_from_target_files", line 488, in WriteFullOTAPackage
system_diff = common.BlockDifference("system", system_tgt, src=None)
File "/home/android/fresh_android_8/build/tools/releasetools/common.py", line 1407, in __init__
_, self.device = GetTypeAndDevice("/" + partition, OPTIONS.info_dict)
File "/home/android/fresh_android_8/build/tools/releasetools/common.py", line 1644, in GetTypeAndDevice
raise KeyError
KeyError

Best regards,

Son Le