1#!/bin/bash -e 2 3# Copyright 2020 Google Inc. All rights reserved. 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 17# Generates NDK API txt file used by Mainline modules. NDK APIs would have value 18# "UND" in Ndx column and have suffix "@LIB_NAME" in Name column. 19# For example, current line llvm-readelf output is: 20# 1: 00000000 0 FUNC GLOBAL DEFAULT UND dlopen@LIBC 21# After the parse function below "dlopen" would be write to the output file. 22printHelp() { 23 echo "**************************** Usage Instructions ****************************" 24 echo "This script is used to generate the native libraries backed by Mainline modules." 25 echo "" 26 echo "To run this script use: ./gen_ndk_backed_by_apex.sh \$OUTPUT_FILE_PATH \$MODULE_LIB1 \$MODULE_LIB2..." 27 echo "For example: If output write to /backedby.txt then the command would be:" 28 echo "./gen_ndk_backed_by_apex.sh /backedby.txt lib1.so lib2.so" 29 echo "If the module1 is backing lib1 then the backedby.txt would contains: " 30 echo "lib1.so lib2.so" 31} 32 33genAllBackedByList() { 34 out="$1" 35 shift 36 rm -f "$out" 37 touch "$out" 38 echo "$@" >> "$out" 39} 40 41if [[ "$1" == "help" ]] 42then 43 printHelp 44elif [[ "$#" -lt 1 ]] 45then 46 echo "Wrong argument length. Expecting at least 1 argument representing output path, followed by a list of libraries in the Mainline module." 47else 48 genAllBackedByList "$@" 49fi 50