Fix adb_chrome_public_command_line for Android M & refactor into a helper .sh

BUG=493878

Review URL: https://codereview.chromium.org/1165753002

Cr-Original-Commit-Position: refs/heads/master@{#332263}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c481d6771df7cfd731ab174b561388fca8596ce1
This commit is contained in:
agrieve 2015-06-01 13:52:43 -07:00 коммит произвёл Commit bot
Родитель 2555782682
Коммит 26436d4b0d
5 изменённых файлов: 52 добавлений и 81 удалений

Просмотреть файл

@ -13,25 +13,8 @@
# To remove all content shell flags, pass an empty string for the flags:
# adb_android_webview_command_line ""
. $(dirname $0)/adb_command_line_functions.sh
CMD_LINE_FILE=/data/local/tmp/android-webview-command-line
if [ $# -eq 0 ] ; then
# If nothing specified, print the command line (stripping off "content_shell")
tempfile=$(tempfile)
adb pull $CMD_LINE_FILE $tempfile 2>/dev/null
if [ $? -eq 0 ] ; then
rm $tempfile
adb shell cat $CMD_LINE_FILE | cut -d " " -f "2-" 2>/dev/null
fi
elif [ $# -eq 1 ] && [ "$1" = '' ] ; then
# If given an empty string, delete the command line.
set -x
adb shell rm $CMD_LINE_FILE >/dev/null
else
# Else set it.
set -x
adb shell "echo 'android_webview $*' > $CMD_LINE_FILE"
# Prevent other apps from modifying flags -- this can create security issues.
adb shell chmod 0664 $CMD_LINE_FILE
fi
REQUIRES_SU=0
set_command_line "$@"

Просмотреть файл

@ -13,25 +13,7 @@
# To remove all Chrome flags, pass an empty string for the flags:
# adb_chrome_public_command_line ""
. $(dirname $0)/adb_command_line_functions.sh
CMD_LINE_FILE=/data/local/chrome-command-line
if [ $# -eq 0 ] ; then
# If nothing specified, print the command line (stripping off "chrome")
tempfile=$(tempfile)
adb pull $CMD_LINE_FILE $tempfile 2>/dev/null
if [ $? -eq 0 ] ; then
rm $tempfile
adb shell cat $CMD_LINE_FILE | cut -d " " -f "2-" 2>/dev/null
fi
elif [ $# -eq 1 ] && [ "$1" = '' ] ; then
# If given an empty string, delete the command line.
set -x
adb shell su -c rm $CMD_LINE_FILE >/dev/null
else
# Else set it.
set -x
adb shell "echo 'chrome $*' | su -c dd of=$CMD_LINE_FILE"
# Prevent other apps from modifying flags -- this can create security issues.
adb shell su -c chmod 0664 $CMD_LINE_FILE
fi
REQUIRES_SU=1
set_command_line "$@"

Просмотреть файл

@ -13,25 +13,8 @@
# To remove all chrome shell flags, pass an empty string for the flags:
# adb_chrome_shell_command_line ""
. $(dirname $0)/adb_command_line_functions.sh
CMD_LINE_FILE=/data/local/tmp/chrome-shell-command-line
if [ $# -eq 0 ] ; then
# If nothing specified, print the command line (stripping off "chrome_shell")
tempfile=$(tempfile)
adb pull $CMD_LINE_FILE $tempfile 2>/dev/null
if [ $? -eq 0 ] ; then
rm $tempfile
adb shell cat $CMD_LINE_FILE | cut -d " " -f "2-" 2>/dev/null
fi
elif [ $# -eq 1 ] && [ "$1" = '' ] ; then
# If given an empty string, delete the command line.
set -x
adb shell rm $CMD_LINE_FILE >/dev/null
else
# Else set it.
set -x
adb shell "echo 'chrome_shell $*' > $CMD_LINE_FILE"
# Prevent other apps from modifying flags -- this can create security issues.
adb shell chmod 0664 $CMD_LINE_FILE
fi
REQUIRES_SU=0
set_command_line "$@"

Просмотреть файл

@ -0,0 +1,40 @@
#!/bin/bash
#
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Variables must be set before calling:
# CMD_LINE_FILE - Path on device to flags file.
# REQUIRES_SU - Set to 1 if path requires root.
function set_command_line() {
SU_CMD=""
if [[ "$REQUIRES_SU" = 1 ]]; then
# Older androids accept "su -c", while newer use "su uid".
SDK_LEVEL=$(adb shell getprop ro.build.version.sdk | tr -d '\r')
# E.g. if no device connected.
if [[ -z "$SDK_LEVEL" ]]; then
exit 1
fi
SU_CMD="su -c"
if (( $SDK_LEVEL >= 21 )); then
SU_CMD="su 0"
fi
fi
if [ $# -eq 0 ] ; then
# If nothing specified, print the command line (stripping off "chrome ")
adb shell "cat $CMD_LINE_FILE 2>/dev/null | cut -d ' ' -s -f2-"
elif [ $# -eq 1 ] && [ "$1" = '' ] ; then
# If given an empty string, delete the command line.
set -x
adb shell $SU_CMD rm $CMD_LINE_FILE >/dev/null
else
# Else set it.
set -x
adb shell "echo 'chrome $*' | $SU_CMD dd of=$CMD_LINE_FILE"
# Prevent other apps from modifying flags (this can create security issues).
adb shell $SU_CMD chmod 0664 $CMD_LINE_FILE
fi
}

Просмотреть файл

@ -13,25 +13,8 @@
# To remove all content shell flags, pass an empty string for the flags:
# adb_content_shell_command_line ""
. $(dirname $0)/adb_command_line_functions.sh
CMD_LINE_FILE=/data/local/tmp/content-shell-command-line
if [ $# -eq 0 ] ; then
# If nothing specified, print the command line (stripping off "content_shell")
tempfile=$(tempfile)
adb pull $CMD_LINE_FILE $tempfile 2>/dev/null
if [ $? -eq 0 ] ; then
rm $tempfile
adb shell cat $CMD_LINE_FILE | cut -d " " -f "2-" 2>/dev/null
fi
elif [ $# -eq 1 ] && [ "$1" = '' ] ; then
# If given an empty string, delete the command line.
set -x
adb shell rm $CMD_LINE_FILE >/dev/null
else
# Else set it.
set -x
adb shell "echo 'content_shell $*' > $CMD_LINE_FILE"
# Prevent other apps from modifying flags -- this can create security issues.
adb shell chmod 0664 $CMD_LINE_FILE
fi
REQUIRES_SU=0
set_command_line "$@"