# Copyright (C) 2021 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.
readme() { echo'''
Install apps in an app bundle release directory to the device via adb, e.g.
./batch_install_app.sh /path/to/app_bundle /path/to/report
Note: aapt is needed to get the metadata from APKs. '''
}
SECONDS=0
MY_NAME=$0
SCRIPT_NAME="${MY_NAME##*/}"
SCRIPT_DIR="${MY_NAME%/$SCRIPT_NAME}" echo Running from $SCRIPT_DIR
if [[ -z $OUT_DIR ]]; then
OUT_DIR="${HOME}/Downloads" fi
INPUT_DIR=$1 if [[ ! -d ${INPUT_DIR} ]]; then echo"Error: ${INPUT_DIR} is not a directory."
readme
exit fi
echo"LOG=${LOG}"
log() { if [[ -n ${LOG} ]]; then echo $1 fi
}
# check an app/package version via adb, e.g. # checkAppVersion package_name
checkAppVersion() {
pkg=$1
cmd="adb shell dumpsys package ${pkg}"
dump=$(${cmd})
log "$dump" echo"${dump}" | grep versionName
}
echo"Process all APKs in ${INPUT_DIR}" # apkDic[apk_name]=apk_path
declare -A apkDic="$(${SCRIPT_DIR}/get_file_dir.sh ${INPUT_DIR} apk)" echo"Found: ${#apkDic[@]} apks"
screenshotDir="/data/local/tmp/screenshots" echo"Removig the following screenshots from the device"
adb shell ls -l ${screenshotDir}
adb shell rm -r ${screenshotDir}
adb shell mkdir -p ${screenshotDir}
# apkBadgingDic[apk_name]=aapt_badging_output_string
declare -A apkBadgingDic # manifestDic[apk_name]=AndroidManifest_xml_content_string
declare -A manifestDic
i=1 for apk in "${!apkDic[@]}"; do
path="${apkDic[${apk}]}"
badging=$(aapt dump badging ${path})
apkBadgingDic[${apk}]="\"${badging}\""
log "${apkBadgingDic[${apk}]}"
# Get package name from the aapt badging output string # ... package: name='com.google.android.gsf' versionCode...
pkg0=${badging#package: name=\'}
pkg=${pkg0%\' versionCode*}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.