工作杂记
调高CPU频率 QCOM
Open:
adb root
adb shell setenforce 0
adb remount
adb shell stop MPDecision
adb shell stop thermal-engine
adb shell stop thermald
adb shell "echo 1 > /sys/devices/system/cpu/cpu0/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu1/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu2/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu3/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu4/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu5/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu6/online"
adb shell "echo 1 > /sys/devices/system/cpu/cpu7/online"
adb shell "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor"
adb shell "echo performance > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor"
adb shell "echo 1000000 > /sys/class/kgsl/kgsl-3d0/idle_timer"
adb shell "echo 624000000 > /sys/class/kgsl/kgsl-3d0/devfreq/min_freq"
adb shell "echo 624000000 > /sys/class/kgsl/kgsl-3d0/devfreq/max_freq"Check:
adb shell cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
adb shell cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq
adb shell cat /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq
adb shell cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freqgit 设置和取消代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global --unset http.proxy
git config --global --unset https.proxy远程mount black服务器
android@NSGWD180021:$ sudo mount -t cifs -o username="android",password="password#5" //10.1.6.32/android /mnt/10.1.6.32
android@NSGWD180021:$ cd /mnt/10.1.6.32/shell命令查看内存压力
usage=`adb shell cat /dev/memcg/memory.usage_in_bytes` && memsw=`adb shell cat /dev/memcg/memory.memsw.usage_in_bytes` && let resu=$usage*100 && let res=$resu/$memsw && echo $res退出FFBM模式
echo 'normal' > /dev/block/platform/soc/7824900.sdhci/by-name/misc打印函数调用堆栈
Slog.w(TAG,android.util.Log.getStackTraceString(new Throwable()));
android.util.Log.w(TAG,android.util.Log.getStackTraceString(new Throwable()));
android.util.Log.w("jackywei","jackywei log");adb shell发送广播
// Some code
adb shell am broadcast -a "com.han.enable.collapsed"scp命令使用
把本地文件夹上传到服务器上面
scp -r /home/android/fotaNodeRespon/fotaservice [email protected]:/home/android/weibiao/调用display命令
cmd display脚本获取,所有App的secret_code,包括第三方的
for i in `adb shell pm -l |sed 's/package://g'`; do echo $i && adb shell pm dump $i | grep -i 'Authority: \"[0123456789]\{2,\}\"';donePerformance APP 启动时间测试教本
for i in `seq 1 100` ;\
do \
adb shell am force-stop com.google.android.dialer && \
sleep 1 && \
adb shell am start-activity -W -n com.google.android.dialer/.extensions.GoogleDialtactsActivity | grep "TotalTime" | cut -d ' ' -f 2 ;\
done重新给文件打selinux标签
restorecon针对提交输出patch
git format-patch -1 2f02ad58b5ce65223ed0e025127959ac7f233c78查看网络情况
adb logcat -v threadtime ConnectivityService:* *:s跳过开机向导
adb shell settings put secure user_setup_complete 1
adb shell settings put global device_provisioned 1
adb shell settings put global setup_wizard_has_run 1Android关机命令
// 下面的命令任选一个
adb shell setprop sys.powerctl shutdown
adb shell am start -a com.android.internal.intent.action.REQUEST_SHUTDOWN
adb shell reboot -pAndroid关闭日志过滤功能
adb shell setprop ro.logd.filter disable
adb shell setprop persist.logd.filter disable打印C++/C调用堆栈日志
#include <utils/Log.h>
#ifdef LOG_TAG
#undef LOG_TAG
#define LOG_TAG "jackywei"
#else
#define LOG_TAG "jackywei"
#endif
//jacky.wei
ALOGW("NativeLoad: path=%s start", path.c_str());
ATRACE_NAME(base::StringPrintf("LoadApkAssets(%s)", path.c_str()).c_str());
GMS包转中文被杀
03-26 10:18:36.429 3364 4572 I BaseAppContext: Killing process after language change (en -> zh)
03-26 10:18:36.429 3364 4572 I Process : Sending signal. PID: 3364 SIG: 9优化app
adb shell cmd package compile -m everything com.google.android.apps.nbu.files启动指定 Activity,并同时进行采样跟踪
adb shell am start -n com.zhihu.android/com.zhihu.android.app.ui.activity.MainActivity --start-profiler /data/local/tmp/zhihu-startup.trace --sampling 1000测试Fash读能力
echo 1 > /proc/sys/vm/drop_caches
dd if=/data/local/tmp/test.db of=/dev/null bs=10M
dd if=/data/local/tmp/test.db of=/dev/null bs=512k
echo 1 > /proc/sys/vm/drop_caches
dd if=/data/local/tmp/test.db of=/dev/null bs=4k
echo 1 > /proc/sys/vm/drop_caches
dd if=/data/local/tmp/test.db of=/dev/zero bs=10M iflag=count_bytes
dd if=/data/local/tmp/test.db of=/dev/null bs=512k测试Fash测试写能力
dd if=/dev/zero of=/data/local/tmp/test256.db bs=4k count=65536 conv=fsync
dd if=/dev/zero of=/data/local/tmp/test256_10m.db bs=10M count=25 conv=fsync同时读写Fash
echo 1 > /proc/sys/vm/drop_caches
dd if=/data/local/tmp/test.db of=/data/local/tmp/testtest.db bs=4k conv=fsync
dd if=/data/local/tmp/test.db of=/data/local/tmp/testtest.db bs=10M conv=fsync显示所有APP的版本号
for p in `adb shell pm list package | awk -F"package:" '{print $2}'`; do echo -n "$p: "; adb shell dumpsys package $p | grep -i versionName | awk -F"=" '{print $2}'; done
adb shell dumpsys package | awk '/^[ ]*Package \[.*\] (.*)/ { i = index($0, "[") + 1; pkg = substr($0, i, index($0, "]") - i); } /[ ]*versionName=/ { { print pkg "\t" substr($0, index($0, "=") + 1); pkg = ""; } }'列出所有服务
adb shell service list列出所有features
adb shell pm list featuresMonkey 测试命令
adb shell monkey -p com.android.browser --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v --throttle 100 30000Google账号清除
adb reboot bootloader
fastboot erase frp
fastboot erase metadata
fastboot erase userdata关闭DM-verity方法
step1: 输入"adb reboot bootloader" (或power + volume up 进入开机menu 选择fastboot)
step2: fastboot oem unlock //解锁bootloader flash lock
step3: fastboot --disable-verification flash vbmeta vbmeta.img //随意下载一个vbmeta.img 去disable verity功能adb reboot bootloader
fastboot reboot fastboot
fastboot --disable-verification flash vbmeta vbmeta.img
fastboot erase system
fastboot flash system system.img
fastboot flash boot boot-5.4.img
fastboot flash vendor_boot vendor_boot-debug.img
fastboot -w
fastboot rebootadb shell 拨打电话
// Some code
adb shell am start -a android.intent.action.CALL tel:1234Github 测试
adb shell pm -l权限安全级别要求查询
android 基本权限在 frameworks/base/core/res/AndroidManifest.xml 文件里面,其他的在各自app里面的AndroidManifest.xml定义.
<permission android:name="android.permission.MODIFY_PHONE_STATE"
android:protectionLevel="signature|privileged|role" />“normal”
默认值。具有较低风险的权限,此类权限允许请求授权的应用访问隔离的应用级功能,对其他应用、系统或用户的风险非常小。 系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可(但用户始终可以选择在安装之前查看这些权限)。
“dangerous”
具有较高风险的权限,此类权限允许请求授权的应用访问用户私人数据或获取可对用户造成不利影响的设备控制权。由于此类权限会带来潜在风险,因此系统可能不会自动向请求授权的应用授予此类权限。例如,应用请求的任何危险权限都可能会向用户显示并且获得确认才会继续执行操作,或者系统会采取一些其他方法来避免用户自动允许使用此类功能。
“signature”
只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,则系统会在不通知用户或征得用户明确许可的情况下自动授予权限。
“signatureOrSystem”
"signature|privileged" 的旧同义词。在 API 级别 23 中已弃用。
系统仅向位于 Android 系统映像的专用文件夹中的应用或使用与声明权限的应用相同的证书进行签名的应用授予的权限。不要使用此选项,因为 signature 保护级别应足以满足大多数需求,无论应用安装在何处,该保护级别都能正常发挥作用。“signatureOrSystem”权限适用于以下特殊情况:多个供应商将应用内置到一个系统映像中,并且需要明确共享特定功能,因为这些功能是一起构建的。
add 手机内存信息
for i in `seq 1 5`;do date && adb shell dumpsys procstats && sleep 10; done | tee procstats_5_times.log
for i in `seq 1 5`;do date && adb shell procrank && sleep 10; done | tee procrank_5_times.log
for i in `seq 1 5`;do date && adb shell dumpsys meminfo && sleep 10; done | tee meminfo_5_times.logadb shell 获取Settings 存储的配置信息
adb shell settings list secure
adb shell settings list system
adb shell settings list globalPerformance 测试脚本
for i in `seq 1 100` ;\
do \
adb shell am force-stop com.google.android.dialer && \
sleep 1 && \
adb shell am start-activity -W -n com.google.android.dialer/.extensions.GoogleDialtactsActivity | grep "TotalTime" | cut -d ' ' -f 2 ;\
done
for i in `seq 1 100` ;do adb shell am force-stop com.google.android.dialer && sleep 1 && adb shell am start-activity -W -n com.google.android.dialer/.extensions.GoogleDialtactsActivity | grep "TotalTime" | cut -d ' ' -f 2 ;done
批量替换代码中的字符串
下面command 的意思是: 找出所有含有xxx.字符串的文件,并且把xxx换成han
grep -r 'xxx\.' . |awk -F':' '{print $1}' | xargs sed -i 's/xxx\./han\./'Mac 地址查询厂商信息
system server start log as below: 从日志中看发现android系统级别的重启
// 可以用脚本grep
has been created
Exit zygote because system server列出包的入口app
adb shell "cmd package resolve-activity --brief com.google.android.calculator | tail -n 1"列出所有可以在launcher里面启动的应用
adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER"
adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --brief"
adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --brief" | grep -v '^\s*Activity \#\|^\s*priority=\|activities found'#启动所有launcher 上面有icon的图标
for i in `adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --brief" | grep -v '^\s*Activity \#\|^\s*priority=\|activities found'` ;\
do \
package=`echo $i | awk -F'/' '{print $1}' ` && \
adb shell am force-stop $package && \
sleep 2 && \
adb shell am start-activity -W -n $i | grep "TotalTime" | cut -d ' ' -f 2 ;\
done
qidong
for i in `adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --brief" | grep -v '^\s*Activity \#\|^\s*priority=\|activities found'` ;do newcmd=`echo $i | sed 's/.app.honeycomb.Shell$HomeActivity/com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity/g'` && package=`echo $i | awk -F'/' '{print $1}' ` && echo $i && adb shell am start-activity -S -W -n $newcmd | grep "WaitTime" | cut -d ' ' -f 2 ;done启动所有的有icon的app,并显示时间
// Some code
for i in `adb shell "pm query-activities -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --brief" | grep -v '^\s*Activity \#\|^\s*priority=\|activities found'` ;do newcmd=`echo $i | sed 's/.app.honeycomb.Shell$HomeActivity/com.google.android.apps.youtube.app.watchwhile.WatchWhileActivity/g'` && package=`echo $i | awk -F'/' '{print $1}' ` && echo $i && adb shell am start-activity -S -W -n $newcmd | grep "WaitTime" | cut -d ' ' -f 2 ;done
Last updated