Home | History | Annotate | Download | only in config
      1 #!/bin/bash
      2 #
      3 # Copyright (C) 2017 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License");
      6 # you may not use this file except in compliance with the License.
      7 # You may obtain a copy of the License at
      8 #
      9 #      http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS,
     13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 # See the License for the specific language governing permissions and
     15 # limitations under the License.
     16 if [ "$#" -lt 2 ]; then
     17   echo "Usage $0 <input classes file> <blacklist file> [extra classes files]"
     18   exit 1
     19 fi
     20 
     21 # Write file headers first
     22 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
     23 cat "$DIR/copyright-header"
     24 echo "# Preloaded-classes filter file for phones.
     25 #
     26 # Classes in this file will be allocated into the boot image, and forcibly initialized in
     27 # the zygote during initialization. This is a trade-off, using virtual address space to share
     28 # common heap between apps.
     29 #
     30 # This file has been derived for mainline phone (and tablet) usage.
     31 #"
     32 
     33 input=$1
     34 blacklist=$2
     35 shift 2
     36 extra_classes_files=("$@")
     37 
     38 # Disable locale to enable lexicographical sorting
     39 LC_ALL=C sort "$input" "${extra_classes_files[@]}" | uniq | grep -f "$blacklist" -v -F -x
     40