// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


package {
    // http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // the below license kinds from "system_sepolicy_license":
    //   legacy_unencumbered
    default_applicable_licenses: ["system_sepolicy_license"],
}

// TODO(b/236681553): Remove com.android.bluetooth-file_contexts

filegroup {
  name: "apex_file_contexts_files",
  srcs: ["*-file_contexts"],
}

filegroup {
  name: "apex.test-file_contexts",
  srcs: [
    "apex.test-file_contexts",
  ],
}

filegroup {
  name: "com.android.adbd-file_contexts",
  srcs: [
    "com.android.adbd-file_contexts",
  ],
}

filegroup {
  name: "com.android.sdkext-file_contexts",
  srcs: [
    "com.android.sdkext-file_contexts",
  ],
}

filegroup {
  name: "com.android.art-file_contexts",
  srcs: [
    "com.android.art-file_contexts",
  ],
}

filegroup {
  name: "com.android.art.debug-file_contexts",
  srcs: [
    "com.android.art.debug-file_contexts",
  ],
}

filegroup {
  name: "com.android.bootanimation-file_contexts",
  srcs: [
    "com.android.bootanimation-file_contexts",
  ],
}

filegroup {
  name: "com.android.cellbroadcast-file_contexts",
  srcs: [
    "com.android.cellbroadcast-file_contexts",
  ],
}

filegroup {
  name: "com.android.compos-file_contexts",
  srcs: [
    "com.android.compos-file_contexts",
  ],
}

filegroup {
  name: "com.android.conscrypt-file_contexts",
  srcs: [
    "com.android.conscrypt-file_contexts",
  ],
}

filegroup {
  name: "com.android.federatedcompute-file_contexts",
  srcs: [
    "com.android.federatedcompute-file_contexts",
  ],
}

filegroup {
  name: "com.android.geotz-file_contexts",
  srcs: [
    "com.android.geotz-file_contexts",
  ],
}

filegroup {
  name: "com.android.gki-file_contexts",
  srcs: [
    "com.android.gki-file_contexts",
  ],
}

filegroup {
  name: "com.android.ipsec-file_contexts",
  srcs: [
    "com.android.ipsec-file_contexts",
  ],
}

filegroup {
  name: "com.android.i18n-file_contexts",
  srcs: [
    "com.android.i18n-file_contexts",
  ],
}

filegroup {
  name: "com.android.media-file_contexts",
  srcs: [
    "com.android.media-file_contexts",
  ],
}

filegroup {
  name: "com.android.mediaprovider-file_contexts",
  srcs: [
    "com.android.mediaprovider-file_contexts",
  ],
}

filegroup {
  name: "com.android.media.swcodec-file_contexts",
  srcs: [
    "com.android.media.swcodec-file_contexts",
  ],
}

filegroup {
  name: "com.android.neuralnetworks-file_contexts",
  srcs: [
    "com.android.neuralnetworks-file_contexts",
  ],
}

filegroup {
  name: "com.android.os.statsd-file_contexts",
  srcs: [
    "com.android.os.statsd-file_contexts",
  ],
}

filegroup {
  name: "com.android.permission-file_contexts",
  srcs: [
    "com.android.permission-file_contexts",
  ],
}

filegroup {
  name: "com.android.resolv-file_contexts",
  srcs: [
    "com.android.resolv-file_contexts",
  ],
}

filegroup {
  name: "com.android.runtime-file_contexts",
  srcs: [
    "com.android.runtime-file_contexts",
  ],
}

filegroup {
  name: "com.android.scheduling-file_contexts",
  srcs: [
    "com.android.scheduling-file_contexts",
  ],
}

filegroup {
  name: "com.android.sepolicy-file_contexts",
  srcs: [
    "com.android.sepolicy-file_contexts",
  ],
}

filegroup {
  name: "com.android.tzdata-file_contexts",
  srcs: [
    "com.android.tzdata-file_contexts",
  ],
}

filegroup {
  name: "com.android.uwb-file_contexts",
  srcs: [
    "com.android.uwb-file_contexts",
  ],
}

filegroup {
  name: "com.android.virt-file_contexts",
  srcs: [
    "com.android.virt-file_contexts",
  ],
}

filegroup {
  name: "com.android.vndk-file_contexts",
  srcs: [
    "com.android.vndk-file_contexts",
  ],
}

filegroup {
  name: "com.android.wifi-file_contexts",
  srcs: [
    "com.android.wifi-file_contexts",
  ],
}

filegroup {
  name: "com.android.tethering-file_contexts",
  srcs: [
    "com.android.tethering-file_contexts",
  ],
}

filegroup {
  name: "com.android.extservices-file_contexts",
  srcs: [
    "com.android.extservices-file_contexts",
  ],
}

filegroup {
  name: "com.android.adservices-file_contexts",
  srcs: [
    "com.android.adservices-file_contexts",
  ],
}

filegroup {
  name: "com.android.car.framework-file_contexts",
  srcs: [
    "com.android.car.framework-file_contexts",
  ],
}

filegroup {
  name: "com.android.ondevicepersonalization-file_contexts",
  srcs: [
    "com.android.ondevicepersonalization-file_contexts",
  ],
}

filegroup {
  name: "com.android.healthfitness-file_contexts",
  srcs: [
    "com.android.healthfitness-file_contexts",
  ],
}

filegroup {
  name: "com.android.rkpd-file_contexts",
  srcs: [
    "com.android.rkpd-file_contexts",
  ],
}

filegroup {
  name: "com.android.devicelock-file_contexts",
  srcs: [
    "com.android.devicelock-file_contexts",
  ],
}

filegroup {
  name: "com.android.telephonymodules-file_contexts",
  srcs: [
    "com.android.telephonymodules-file_contexts"
  ],
}
