;; new_objects - a collection of types that have been introduced that have no
;;   analogue in older policy.  Thus, we do not need to map these types to
;;   previous ones.  Add here to pass checkapi tests.
(type new_objects)
(typeattribute new_objects)
(typeattributeset new_objects
  ( new_objects
    activity_task_service
    adb_service
    adbd_exec
    app_binding_service
    apex_data_file
    apex_metadata_file
    apex_mnt_dir
    apex_service
    apexd
    apexd_exec
    apexd_prop
    apexd_tmpfs
    app_zygote
    atrace
    binder_calls_stats_service
    biometric_service
    boot_status_prop
    bootloader_boot_reason_prop
    blank_screen
    blank_screen_exec
    blank_screen_tmpfs
    bluetooth_a2dp_offload_prop
    bpfloader
    bpfloader_exec
    broadcastradio_service
    cgroup_bpf
    charger_exec
    color_display_service
    content_capture_service
    crossprofileapps_service
    ctl_apexd_prop
    ctl_interface_restart_prop
    ctl_interface_start_prop
    ctl_interface_stop_prop
    ctl_sigstop_prop
    dalvik_config_prop
    device_config_boot_count_prop
    device_config_reset_performed_prop
    device_config_netd_native_prop
    dnsresolver_service
    e2fs
    e2fs_exec
    exfat
    exported_audio_prop
    exported_bluetooth_prop
    exported_config_prop
    exported_dalvik_prop
    exported_default_prop
    exported_dumpstate_prop
    exported_ffs_prop
    exported_fingerprint_prop
    exported_overlay_prop
    exported_pm_prop
    exported_radio_prop
    exported_secure_prop
    exported_system_prop
    exported_system_radio_prop
    exported_vold_prop
    exported_wifi_prop
    exported2_config_prop
    exported2_default_prop
    exported2_radio_prop
    exported2_system_prop
    exported2_vold_prop
    exported3_default_prop
    exported3_radio_prop
    exported3_system_prop
    fastbootd
    fingerprint_vendor_data_file
    flags_health_check
    flags_health_check_exec
    fs_bpf
    fwk_stats_hwservice
    hal_atrace_hwservice
    hal_audiocontrol_hwservice
    hal_authsecret_hwservice
    hal_broadcastradio_hwservice
    hal_cas_hwservice
    hal_codec2_hwservice
    hal_confirmationui_hwservice
    hal_evs_hwservice
    hal_health_storage_hwservice
    hal_lowpan_hwservice
    hal_neuralnetworks_hwservice
    hal_secure_element_hwservice
    hal_tetheroffload_hwservice
    hal_wifi_hostapd_hwservice
    hal_usb_gadget_hwservice
    hal_vehicle_hwservice
    hal_wifi_offload_hwservice
    heapprofd
    heapprofd_exec
    heapprofd_socket
    incident_helper
    incident_helper_exec
    iorapd
    iorapd_data_file
    iorapd_exec
    iorapd_service
    iorapd_tmpfs
    kmsg_debug_device
    last_boot_reason_prop
    llkd
    llkd_exec
    llkd_prop
    llkd_tmpfs
    looper_stats_service
    lowpan_device
    lowpan_prop
    lowpan_service
    mediaswcodec
    mediaswcodec_exec
    mediaswcodec_tmpfs
    mediaextractor_update_service
    mediaprovider_tmpfs
    metadata_bootstat_file
    metadata_file
    mnt_product_file
    mnt_vendor_file
    netd_stable_secret_prop
    network_stack
    network_stack_service
    network_watchlist_data_file
    network_watchlist_service
    overlayfs_file
    package_native_service
    perfetto
    perfetto_exec
    perfetto_tmpfs
    perfetto_traces_data_file
    property_info
    recovery_socket
    role_service
    runas_app
    art_apex_dir
    runtime_service
    secure_element
    secure_element_device
    secure_element_tmpfs
    secure_element_service
    server_configurable_flags_data_file
    simpleperf_app_runner
    simpleperf_app_runner_exec
    slice_service
    socket_hook_prop
    staging_data_file
    stats
    stats_data_file
    stats_exec
    stats_service
    statsd
    statsd_exec
    statsd_tmpfs
    statsdw
    statsdw_socket
    statscompanion_service
    storaged_data_file
    super_block_device
    surfaceflinger_prop
    sysfs_fs_ext4_features
    system_boot_reason_prop
    system_bootstrap_lib_file
    system_lmk_prop
    system_net_netd_hwservice
    system_update_service
    systemsound_config_prop
    test_boot_reason_prop
    thermal_service
    thermalcallback_hwservice
    thermalserviced
    thermalserviced_exec
    thermalserviced_tmpfs
    time_prop
    timedetector_service
    timezone_service
    tombstoned_java_trace_socket
    tombstone_wifi_data_file
    trace_data_file
    traceur_app
    traceur_app_tmpfs
    traced
    traced_consumer_socket
    traced_enabled_prop
    traced_exec
    traced_probes
    traced_probes_exec
    traced_probes_tmpfs
    traced_producer_socket
    traced_tmpfs
    untrusted_app_all_devpts
    update_engine_log_data_file
    vendor_default_prop
    vendor_security_patch_level_prop
    uri_grants_service
    usbd
    usbd_exec
    usbd_tmpfs
    vendor_apex_file
    vendor_init
    vendor_shell
    vendor_socket_hook_prop
    vndk_prop
    vold_config_prop
    vold_metadata_file
    vold_prepare_subdirs
    vold_prepare_subdirs_exec
    vold_service
    vold_status_prop
    vrflinger_vsync_service
    wait_for_keymaster
    wait_for_keymaster_exec
    wait_for_keymaster_tmpfs
    watchdogd_tmpfs
    wpantund
    wpantund_exec
    wpantund_service
    wpantund_tmpfs
    wm_trace_data_file))

;; private_objects - a collection of types that were labeled differently in
;;     older policy, but that should not remain accessible to vendor policy.
;;     Thus, these types are also not mapped, but recorded for checkapi tests
(type priv_objects)
(typeattribute priv_objects)
(typeattributeset priv_objects
  ( priv_objects
    adbd_tmpfs
    untrusted_app_27_tmpfs))
