Android 命令笔记

Android 笔记

获取root

adb root
adb shell

$ 表示未进入root #表示进入 root环境

whyred:/ $
whyred:/ #

查询apn信息

content query --uri content://telephony/carriers/preferapn

列出所有程序包名,列出目标设备中已安装的应用程序包

255|whyred:/ # pm list packages
package:com.miui.screenrecorder
package:com.android.cts.priv.ctsshim
package:com.qualcomm.qti.perfdump
package:com.miui.contentextension
package:com.android.internal.display.cutout.emulation.corner
package:com.android.gpstest.osmdroid
package:com.android.internal.display.cutout.emulation.double
package:com.android.providers.telephony
package:com.miui.powerkeeper
package:com.goodix.fingerprint
package:com.xiaomi.miplay_client
package:com.miui.fm
...

列出程序具体位置,列出目标设备中已安装的应用程序包的具体位置

127|whyred:/ # pm list packages -f
package:/data/app/MiuiScreenRecorder/MiuiScreenRecorder.apk=com.miui.screenrecorder
package:/system/priv-app/CtsShimPrivPrebuilt/CtsShimPrivPrebuilt.apk=com.android.cts.priv.ctsshim
package:/system/app/Perfdump/Perfdump.apk=com.qualcomm.qti.perfdump
package:/system/priv-app/ContentExtension/ContentExtension.apk=com.miui.contentextension
package:/vendor/overlay/DisplayCutoutEmulationCorner/DisplayCutoutEmulationCornerOverlay.apk=com.android.internal.display.cutout.emulation.corner
package:/data/app/com.android.gpstest.osmdroid-_5BeZgq2hr50CRg3LYjDqw==/base.apk=com.android.gpstest.osmdroid
package:/vendor/overlay/DisplayCutoutEmulationDouble/DisplayCutoutEmulationDoubleOverlay.apk=com.android.internal.display.cutout.emulation.double

查看正在运行的 activity dumpsys activity [] 该package需要在运行状态

包名是必须的、不需要写完整的包名、支持模糊匹配

whyred:/ # dumpsys activity com.android.camera

TASK com.android.camera id=1314 userId=0
  ACTIVITY com.android.camera/.Camera 15d1ffa pid=9166
    Local FragmentActivity 89bc38 State:
      mCreated=truemResumed=true mStopped=false mReallyStopped=false
      mLoadersStarted=true
    Active Fragments in 944cb28:
      #0: FragmentBottomPopupTips{120e041 #0 id=0x7f0a00f2 4081}
        mFragmentId=#7f0a00f2 mContainerId=#7f0a00f2 mTag=4081
        mState=5 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0
        mAdded=true mRemoving=false mResumed=true mFromLayout=false mInLayout=false
        mHidden=false mDetached=false mMenuVisible=true mHasMenu=false
        mRetainInstance=false mRetaining=false mUserVisibleHint=true
        mFragmentManager=FragmentManager{944cb28 in HostCallbacks{29979e6}}
        mHost=android.support.v4.app.FragmentActivity$HostCallbacks@29979e6
        mContainer=android.widget.FrameLayout{6f08e14 V.E...... ........ 0,1358-1080,2160 #7f0a00f2 app:id/bottom_popup_tips}
        mView=android.widget.FrameLayout{40f3bf3 V.E...... ........ 0,0-1080,192}
        mInnerView=android.widget.FrameLayout{40f3bf3 V.E...... ........ 0,0-1080,192}
        Child FragmentManager{c612b27 in FragmentBottomPopupTips{120e041}}:
          FragmentManager misc state:
            mHost=android.support.v4.app.FragmentActivity$HostCallbacks@29979e6
            mContainer=android.support.v4.app.Fragment$1@7af71d4
            mParent=FragmentBottomPopupTips{120e041 #0 id=0x7f0a00f2 4081}
            mCurState=5 mStateSaved=false mDestroyed=false

未知包名,查看最上层activity

adb shell dumpsys activity activities | findstr mFocusedActivity # 安卓8.0以下
adb shell dumpsys activity activities | findstr mResumedActivity # 安卓8.0以上

dumpsys activity activities | grep mFocusedActivity # 安卓8.0以下
dumpsys activity activities | grep mResumedActivity # 安卓8.0以上

停止应用 am force-stop

am force-stop com.android.camera

启动 activity am start -n []/[]

whyred:/ # am start -n com.android.camera/.Camera

Starting: Intent { cmp=com.android.camera/.Camera }

启动service

am startservice com.nandhan.myservice/.MyService

查看正在运行的service

dumpsys activity services [<packagename>]

清除应用数据

pm clear com.googleplayapp.storerootsuaction

打开网站

am start -a android.intent.action.VIEW -d  http://baidu.com

设备控制

reboot			#重启

svc wifi enable    #打开wifi
svc wifi disable	#关闭wifi
settings get global wifi_on 	#查看WiFi状态

svc data enable		#打开数据
svc data disable	#关闭数据

# 打开飞行模式
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true    

#关闭飞行模式
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

#打开gps
settings put secure location_providers_allowed +gps

#关闭gps
settings put secure location_providers_allowed -gps

#查看gps状态
settings get secure location_providers_allowed

#打开蓝牙
service call bluetooth_manager 6
settings put global bluetooth_on 1

#打开蓝牙
svc bluetooth enable

#关闭蓝牙
service call bluetooth_manager 8
settings put global bluetooth_on 0

#关闭蓝牙
svc bluetooth disable

#查看蓝牙状态
settings get global bluetooth_on

#开启nfc
svc nfc enable

#关闭nfc
svc nfc disable

#设置未知来源
settings put secure install_non_market_apps 1

#恢复出厂设置
am broadcast -a android.intent.action.MASTER_CLEAR

# 切换网络制式,修改preferred_network_mode
settings put global preferred_network_mode2 7  #mode2 表示sim卡2 
		adb shell stop ril-daemon
		adb shell start ril-daemon
settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE
		sleep 5
settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE

拨打电话 service call phone 2 s16 "10086" am start -a android.intent.action.CALL tel:XXXX

挂断电话 input keyevent KEYCODE_ENDCALL 或 input keyevent 6

whyred:/ # am start -a android.intent.action.CALL tel:10000
Starting: Intent { act=android.intent.action.CALL dat=tel:xxxxxxxxxxx }
whyred:/ # input  keyevent  KEYCODE_ENDCALL
whyred:/ #

/通过shell命令设置gateWay/

route add default gw 192.168.1.1 dev eth0

/通过shell命令查看gateWay/

ip route show

返回值:

default via 192.168.1.1 dev eth0 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.109 

/通过shell命令设置IP和netmask/

ifconfig eth0 192.168.0.173 netmask 255.255.255.0   

/通过shell命令查看IP和netmask/

 ifconfig eth0

返回值:

eth0: ip 192.168.1.109 mask 255.255.255.0 flags [up broadcast running multicast]

/通过shell命令查看DNS/

getprop net.eth0.dns1
getprop net.eth0.dns2

/通过shell命令设置DNS/

setprop net.eth0.dns1 8.8.8.8
setprop net.eth0.dns2 8.8.4.4

/通过shell命令查看所有网络信息/

netcfg

返回值:

tunl0   DOWN                  0.0.0.0/0  0x00000080 00:00:00:00:00:00
gre0   DOWN                  0.0.0.0/0  0x00000080 00:00:00:00:00:00
eth0   UP                 192.168.1.74/24  0x00001043 1c:ca:e3:40:58:b1
sit0   DOWN                  0.0.0.0/0  0x00000080 00:00:00:00:00:00
lo    UP                  127.0.0.1/8  0x00000049 00:00:00:00:00:00
ip6tnl0  DOWN                  0.0.0.0/0  0x00000080 00:00:00:00:00:00

绑定port启动ViewServer

adb shell service call window 1 i32 $port

停止ViewServer

adb shell service call window 2

检查ViewServer是否正在运行

adb shell service call window 3

按home键(详见KeyEvent.java中的定义)

adb shell input keyevent 3

按back键

adb shell input keyevent 4

按menu键

adb shell input keyevent 82

viewRootImpl.java
设置系统属性“viewancestor.profile_rendering”为true能强制当前窗口以60 HZ渲染。它可用作度量潜在帧率。

显示fps

dumpsys gfxinfo activity_name

收集动作指令

getevent
sendevent
android c/c++ 编译

参考链接 https://www.jianshu.com/p/c30860804713

需要在 android studio中 安装 cmake NDK

新建目录 编写 c 文件 和 CMakeLists.txt

CMakeList.txt

# CMake最低版本号要求
cmake_minimum_required(VERSION 3.4.1)
# 项目信息
project (hello)
# 设置目标文件的名字
set(TARGET_NAME hello)
# 生成可执行文件
add_executable(${TARGET_NAME} helloworld.c)

创建 build.bat 执行 cmake

#选择编译系统环境
REM set abi=armeabi-v7a			
set abi=x86
set ndk-bundle=ndk/21.3.6528147
if not exist %abi% md %abi%
cd %abi%

%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/cmake ^
  -DANDROID_ABI=%abi% ^
  -DANDROID_NDK=%ANDROID_SDK_HOME%/%ndk-bundle% ^
  -DCMAKE_BUILD_TYPE=Debug ^
  -DCMAKE_TOOLCHAIN_FILE=%ANDROID_SDK_HOME%/%ndk-bundle%/build/cmake/android.toolchain.cmake ^
  -DANDROID_NATIVE_API_LEVEL=9 ^
  -DANDROID_TOOLCHAIN=clang -DCMAKE_GENERATOR="Ninja" ^
  -DCMAKE_MAKE_PROGRAM=%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/ninja ^
  ..

%ANDROID_SDK_HOME%/cmake/3.10.2.4988404/bin/ninja
cd ..
pause

将可执行文件push 到安卓设备中 chmod 777 file 后 运行

注意 需要将文件push 到 /data/local/tmp 目录下,其他会出现 Permission denied 错误

generic_x86:/storage/test # ./hello
/system/bin/sh: ./hello: can't execute: Permission denied
#######
generic_x86:/data/local/tmp # ./hello
Hello World!
posted @ 2020-09-16 14:22  mchzys  阅读(995)  评论(0)    收藏  举报