from tools import helpers
import tools.config
import logging

# Call me with rootfs mounted!
def set_aidl_version(args):
    cfg = tools.config.load(args)
    android_api = 0
    try:
        android_api = int(helpers.props.file_get(args,
                tools.config.defaults["rootfs"] + "/system/build.prop",
                "ro.build.version.sdk"))
    except Exception as e:
        logging.error("Failed to parse android version from system.img: %s", e)

    if android_api < 28:
        binder_protocol = "aidl"
        sm_protocol =     "aidl"
    elif android_api < 30:
        binder_protocol = "aidl2"
        sm_protocol =     "aidl2"
    elif android_api < 31:
        binder_protocol = "aidl3"
        sm_protocol =     "aidl3"
    elif android_api < 33:
        binder_protocol = "aidl4"
        sm_protocol =     "aidl3"
    elif android_api < 35:
        binder_protocol = "aidl3"
        sm_protocol =     "aidl3"
    elif android_api < 36:
        binder_protocol = "aidl3"
        sm_protocol =     "aidl5"
    else:
        binder_protocol = "aidl3"
        sm_protocol =     "aidl6"

    cfg["waydroid"]["binder_protocol"] = binder_protocol
    cfg["waydroid"]["service_manager_protocol"] = sm_protocol
    tools.config.save(args, cfg)
