More moving shell functions in envsetup.sh to standalone scripts. am: 3acb308f98
Original change: https://android-review.googlesource.com/c/platform/build/+/3103321 Change-Id: Ib366837c4912edf61f13adfdda0c84667048d404 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
1c1f18c9cf
1 changed files with 17 additions and 236 deletions
253
envsetup.sh
253
envsetup.sh
|
@ -48,73 +48,6 @@ if [ ! "$T" ]; then
|
||||||
fi
|
fi
|
||||||
IMPORTING_ENVSETUP=true source $T/build/make/shell_utils.sh
|
IMPORTING_ENVSETUP=true source $T/build/make/shell_utils.sh
|
||||||
|
|
||||||
|
|
||||||
# Help
|
|
||||||
function hmm() {
|
|
||||||
cat <<EOF
|
|
||||||
|
|
||||||
Run "m help" for help with the build system itself.
|
|
||||||
|
|
||||||
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
|
|
||||||
- lunch: lunch <product_name>-<release_type>-<build_variant>
|
|
||||||
Selects <product_name> as the product to build, and <build_variant> as the variant to
|
|
||||||
build, and stores those selections in the environment to be read by subsequent
|
|
||||||
invocations of 'm' etc.
|
|
||||||
- tapas: tapas [<App1> <App2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]
|
|
||||||
Sets up the build environment for building unbundled apps (APKs).
|
|
||||||
- banchan: banchan <module1> [<module2> ...] \\
|
|
||||||
[arm|x86|arm64|riscv64|x86_64|arm64_only|x86_64only] [eng|userdebug|user]
|
|
||||||
Sets up the build environment for building unbundled modules (APEXes).
|
|
||||||
- croot: Changes directory to the top of the tree, or a subdirectory thereof.
|
|
||||||
- m: Makes from the top of the tree.
|
|
||||||
- mm: Builds and installs all of the modules in the current directory, and their
|
|
||||||
dependencies.
|
|
||||||
- mmm: Builds and installs all of the modules in the supplied directories, and their
|
|
||||||
dependencies.
|
|
||||||
To limit the modules being built use the syntax: mmm dir/:target1,target2.
|
|
||||||
- mma: Same as 'mm'
|
|
||||||
- mmma: Same as 'mmm'
|
|
||||||
- provision: Flash device with all required partitions. Options will be passed on to fastboot.
|
|
||||||
- cgrep: Greps on all local C/C++ files.
|
|
||||||
- ggrep: Greps on all local Gradle files.
|
|
||||||
- gogrep: Greps on all local Go files.
|
|
||||||
- jgrep: Greps on all local Java files.
|
|
||||||
- jsongrep: Greps on all local Json files.
|
|
||||||
- ktgrep: Greps on all local Kotlin files.
|
|
||||||
- resgrep: Greps on all local res/*.xml files.
|
|
||||||
- mangrep: Greps on all local AndroidManifest.xml files.
|
|
||||||
- mgrep: Greps on all local Makefiles and *.bp files.
|
|
||||||
- owngrep: Greps on all local OWNERS files.
|
|
||||||
- rsgrep: Greps on all local Rust files.
|
|
||||||
- sepgrep: Greps on all local sepolicy files.
|
|
||||||
- sgrep: Greps on all local source files.
|
|
||||||
- tomlgrep: Greps on all local Toml files.
|
|
||||||
- pygrep: Greps on all local Python files.
|
|
||||||
- godir: Go to the directory containing a file.
|
|
||||||
- allmod: List all modules.
|
|
||||||
- gomod: Go to the directory containing a module.
|
|
||||||
- pathmod: Get the directory containing a module.
|
|
||||||
- outmod: Gets the location of a module's installed outputs with a certain extension.
|
|
||||||
- dirmods: Gets the modules defined in a given directory.
|
|
||||||
- installmod: Adb installs a module's built APK.
|
|
||||||
- refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod.
|
|
||||||
- syswrite: Remount partitions (e.g. system.img) as writable, rebooting if necessary.
|
|
||||||
|
|
||||||
Environment options:
|
|
||||||
- SANITIZE_HOST: Set to 'address' to use ASAN for all host modules.
|
|
||||||
- ANDROID_QUIET_BUILD: set to 'true' to display only the essential messages.
|
|
||||||
|
|
||||||
Look at the source to view more functions. The complete list is:
|
|
||||||
EOF
|
|
||||||
local T=$(gettop)
|
|
||||||
local A=""
|
|
||||||
local i
|
|
||||||
for i in `cat $T/build/envsetup.sh | sed -n "/^[[:blank:]]*function /s/function \([a-z_]*\).*/\1/p" | sort | uniq`; do
|
|
||||||
A="$A $i"
|
|
||||||
done
|
|
||||||
echo $A
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get all the build variables needed by this script in a single call to the build system.
|
# Get all the build variables needed by this script in a single call to the build system.
|
||||||
function build_build_var_cache()
|
function build_build_var_cache()
|
||||||
{
|
{
|
||||||
|
@ -862,118 +795,6 @@ function run_tool_with_logging() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
# coredump_setup - enable core dumps globally for any process
|
|
||||||
# that has the core-file-size limit set correctly
|
|
||||||
#
|
|
||||||
# NOTE: You must call also coredump_enable for a specific process
|
|
||||||
# if its core-file-size limit is not set already.
|
|
||||||
# NOTE: Core dumps are written to ramdisk; they will not survive a reboot!
|
|
||||||
|
|
||||||
function coredump_setup()
|
|
||||||
{
|
|
||||||
echo "Getting root...";
|
|
||||||
adb root;
|
|
||||||
adb wait-for-device;
|
|
||||||
|
|
||||||
echo "Remounting root partition read-write...";
|
|
||||||
adb shell mount -w -o remount -t rootfs rootfs;
|
|
||||||
sleep 1;
|
|
||||||
adb wait-for-device;
|
|
||||||
adb shell mkdir -p /cores;
|
|
||||||
adb shell mount -t tmpfs tmpfs /cores;
|
|
||||||
adb shell chmod 0777 /cores;
|
|
||||||
|
|
||||||
echo "Granting SELinux permission to dump in /cores...";
|
|
||||||
adb shell restorecon -R /cores;
|
|
||||||
|
|
||||||
echo "Set core pattern.";
|
|
||||||
adb shell 'echo /cores/core.%p > /proc/sys/kernel/core_pattern';
|
|
||||||
|
|
||||||
echo "Done."
|
|
||||||
}
|
|
||||||
|
|
||||||
# coredump_enable - enable core dumps for the specified process
|
|
||||||
# $1 = PID of process (e.g., $(pid mediaserver))
|
|
||||||
#
|
|
||||||
# NOTE: coredump_setup must have been called as well for a core
|
|
||||||
# dump to actually be generated.
|
|
||||||
|
|
||||||
function coredump_enable()
|
|
||||||
{
|
|
||||||
local PID=$1;
|
|
||||||
if [ -z "$PID" ]; then
|
|
||||||
printf "Expecting a PID!\n";
|
|
||||||
return;
|
|
||||||
fi;
|
|
||||||
echo "Setting core limit for $PID to infinite...";
|
|
||||||
adb shell /system/bin/ulimit -P $PID -c unlimited
|
|
||||||
}
|
|
||||||
|
|
||||||
# core - send SIGV and pull the core for process
|
|
||||||
# $1 = PID of process (e.g., $(pid mediaserver))
|
|
||||||
#
|
|
||||||
# NOTE: coredump_setup must be called once per boot for core dumps to be
|
|
||||||
# enabled globally.
|
|
||||||
|
|
||||||
function core()
|
|
||||||
{
|
|
||||||
local PID=$1;
|
|
||||||
|
|
||||||
if [ -z "$PID" ]; then
|
|
||||||
printf "Expecting a PID!\n";
|
|
||||||
return;
|
|
||||||
fi;
|
|
||||||
|
|
||||||
local CORENAME=core.$PID;
|
|
||||||
local COREPATH=/cores/$CORENAME;
|
|
||||||
local SIG=SEGV;
|
|
||||||
|
|
||||||
coredump_enable $1;
|
|
||||||
|
|
||||||
local done=0;
|
|
||||||
while [ $(adb shell "[ -d /proc/$PID ] && echo -n yes") ]; do
|
|
||||||
printf "\tSending SIG%s to %d...\n" $SIG $PID;
|
|
||||||
adb shell kill -$SIG $PID;
|
|
||||||
sleep 1;
|
|
||||||
done;
|
|
||||||
|
|
||||||
adb shell "while [ ! -f $COREPATH ] ; do echo waiting for $COREPATH to be generated; sleep 1; done"
|
|
||||||
echo "Done: core is under $COREPATH on device.";
|
|
||||||
}
|
|
||||||
|
|
||||||
# systemstack - dump the current stack trace of all threads in the system process
|
|
||||||
# to the usual ANR traces file
|
|
||||||
function systemstack()
|
|
||||||
{
|
|
||||||
stacks system_server
|
|
||||||
}
|
|
||||||
|
|
||||||
# Read the ELF header from /proc/$PID/exe to determine if the process is
|
|
||||||
# 64-bit.
|
|
||||||
function is64bit()
|
|
||||||
{
|
|
||||||
local PID="$1"
|
|
||||||
if [ "$PID" ] ; then
|
|
||||||
if [[ "$(adb shell cat /proc/$PID/exe | xxd -l 1 -s 4 -p)" -eq "02" ]] ; then
|
|
||||||
echo "64"
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function gettargetarch
|
|
||||||
{
|
|
||||||
get_build_var TARGET_ARCH
|
|
||||||
}
|
|
||||||
|
|
||||||
function getprebuilt
|
|
||||||
{
|
|
||||||
get_abs_build_var ANDROID_PREBUILTS
|
|
||||||
}
|
|
||||||
|
|
||||||
# communicate with a running device or emulator, set up necessary state,
|
# communicate with a running device or emulator, set up necessary state,
|
||||||
# and run the hat command.
|
# and run the hat command.
|
||||||
function runhat()
|
function runhat()
|
||||||
|
@ -1044,62 +865,6 @@ function getbugreports()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function getsdcardpath()
|
|
||||||
{
|
|
||||||
adb ${adbOptions} shell echo -n \$\{EXTERNAL_STORAGE\}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getscreenshotpath()
|
|
||||||
{
|
|
||||||
echo "$(getsdcardpath)/Pictures/Screenshots"
|
|
||||||
}
|
|
||||||
|
|
||||||
function getlastscreenshot()
|
|
||||||
{
|
|
||||||
local screenshot_path=$(getscreenshotpath)
|
|
||||||
local screenshot=`adb ${adbOptions} ls ${screenshot_path} | grep Screenshot_[0-9-]*.*\.png | sort -rk 3 | cut -d " " -f 4 | head -n 1`
|
|
||||||
if [ "$screenshot" = "" ]; then
|
|
||||||
echo "No screenshots found."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
echo "${screenshot}"
|
|
||||||
adb ${adbOptions} pull ${screenshot_path}/${screenshot}
|
|
||||||
}
|
|
||||||
|
|
||||||
function startviewserver()
|
|
||||||
{
|
|
||||||
local port=4939
|
|
||||||
if [ $# -gt 0 ]; then
|
|
||||||
port=$1
|
|
||||||
fi
|
|
||||||
adb shell service call window 1 i32 $port
|
|
||||||
}
|
|
||||||
|
|
||||||
function stopviewserver()
|
|
||||||
{
|
|
||||||
adb shell service call window 2
|
|
||||||
}
|
|
||||||
|
|
||||||
function isviewserverstarted()
|
|
||||||
{
|
|
||||||
adb shell service call window 3
|
|
||||||
}
|
|
||||||
|
|
||||||
function key_home()
|
|
||||||
{
|
|
||||||
adb shell input keyevent 3
|
|
||||||
}
|
|
||||||
|
|
||||||
function key_back()
|
|
||||||
{
|
|
||||||
adb shell input keyevent 4
|
|
||||||
}
|
|
||||||
|
|
||||||
function key_menu()
|
|
||||||
{
|
|
||||||
adb shell input keyevent 82
|
|
||||||
}
|
|
||||||
|
|
||||||
function smoketest()
|
function smoketest()
|
||||||
{
|
{
|
||||||
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
|
if [ ! "$ANDROID_PRODUCT_OUT" ]; then
|
||||||
|
@ -1314,12 +1079,26 @@ function showcommands() {
|
||||||
unset allmod
|
unset allmod
|
||||||
unset aninja
|
unset aninja
|
||||||
unset cgrep
|
unset cgrep
|
||||||
|
unset core
|
||||||
|
unset coredump_enable
|
||||||
|
unset coredump_setup
|
||||||
unset dirmods
|
unset dirmods
|
||||||
|
unset getlastscreenshot
|
||||||
|
unset getprebuilt
|
||||||
|
unset getscreenshotpath
|
||||||
|
unset getsdcardpath
|
||||||
|
unset gettargetarch
|
||||||
unset ggrep
|
unset ggrep
|
||||||
unset gogrep
|
unset gogrep
|
||||||
|
unset hmm
|
||||||
unset installmod
|
unset installmod
|
||||||
|
unset is64bit
|
||||||
|
unset isviewserverstarted
|
||||||
unset jgrep
|
unset jgrep
|
||||||
unset jsongrep
|
unset jsongrep
|
||||||
|
unset key_back
|
||||||
|
unset key_home
|
||||||
|
unset key_menu
|
||||||
unset ktgrep
|
unset ktgrep
|
||||||
unset m
|
unset m
|
||||||
unset mangrep
|
unset mangrep
|
||||||
|
@ -1341,6 +1120,9 @@ unset resgrep
|
||||||
unset rsgrep
|
unset rsgrep
|
||||||
unset sepgrep
|
unset sepgrep
|
||||||
unset sgrep
|
unset sgrep
|
||||||
|
unset startviewserver
|
||||||
|
unset stopviewserver
|
||||||
|
unset systemstack
|
||||||
unset syswrite
|
unset syswrite
|
||||||
unset tomlgrep
|
unset tomlgrep
|
||||||
unset treegrep
|
unset treegrep
|
||||||
|
@ -1352,4 +1134,3 @@ source_vendorsetup
|
||||||
addcompletions
|
addcompletions
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue