;; 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
    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
    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
    sysfs_fs_ext4_features
    system_boot_reason_prop
    system_bootstrap_lib_file
    system_lmk_prop
    system_net_netd_hwservice
    system_update_service
    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_metadata_file
    vold_prepare_subdirs
    vold_prepare_subdirs_exec
    vold_service
    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))
