Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

110.6. adb 命令

默认情况执行 adb 会提示找不到命令

			
neo@MacBook-Pro-M2 ~ % adb
zsh: command not found: adb			
			
	
[提示]提示

这里我使用的是 zsh shell

			
neo@MacBook-Pro-M2 ~ % open -e .zprofile
			
export PATH=${PATH}:~/Library/Android/sdk/platform-tools
			
		

现在可以正常使用了

		
neo@MacBook-Pro-M2 ~ % adb version                                             
Android Debug Bridge version 1.0.41
Version 34.0.4-10411341
Installed as /Users/neo/Library/Android/sdk/platform-tools/adb
Running on Darwin 23.0.0 (arm64)		
		
	

110.6.1. 获得 root 权限

		
neo@MacBook-Pro-M2 ~ % adb push public.libraries.txt /system/etc/public.libraries.txt   
public.libraries.txt: 1 file pushed, 0 skipped. 1.0 MB/s (485 bytes in 0.000s)
adb: error: failed to copy 'public.libraries.txt' to '/system/etc/public.libraries.txt': remote couldn't create file: Read-only file system	
		
		
		
neo@MacBook-Pro-M2 ~ % adb root
neo@MacBook-Pro-M2 ~ % adb push public.libraries.txt /system/etc/public.libraries.txt  
public.libraries.txt: 1 file pushed, 0 skipped. 1.4 MB/s (485 bytes in 0.000s)
adb: error: failed to copy 'public.libraries.txt' to '/system/etc/public.libraries.txt': remote couldn't create file: Read-only file system
	
		
		
		

neo@MacBook-Pro-M2 ~ % adb remount
Using overlayfs for /system
Using overlayfs for /vendor
Using overlayfs for /odm
Using overlayfs for /product
Using overlayfs for /system_ext
Now reboot your device for settings to take effect
remount succeeded
		
		
		
neo@MacBook-Pro-M2 ~ % adb push public.libraries.txt /system/etc/public.libraries.txt  
public.libraries.txt: 1 file pushed, 0 skipped. 1.5 MB/s (485 bytes in 0.000s)				
		
		

110.6.2. 设备管理

			
neo@MacBook-Pro-M2 ~ % adb devices
List of devices attached
0123456789ABCDEF        device
CFE6R21625003544        device
			
		

查看详细信息

			
neo@MacBook-Pro-M2 ~ % adb devices -l
List of devices attached
0123456789ABCDEF       device usb:1310720X product:full_aiv8167sm3_bsp model:aiv8167sm3_bsp device:aiv8167sm3_bsp transport_id:2
CFE6R21625003544       device usb:1114112X product:MRR-W29 model:MRR_W29 device:HWMRR-Q transport_id:1
			
		

110.6.3. Shell

			
neo@MacBook-Pro-M2 ~ % adb -s CFE6R21625003544 shell
HWMRR-Q:/ $ 			
			
		

110.6.3.1. 网络相关

查看 IP 地址
			
neo@MacBook-Pro-M2 ~> adb shell ifconfig
wlan0     Link encap:Ethernet  HWaddr c0:84:7d:2b:3c:24
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:340 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:340 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:27313 TX bytes:27313 

eth0      Link encap:Ethernet  HWaddr 86:7a:05:cc:ae:72
          inet6 addr: fe80::847a:5ff:fecc:ae72/64 Scope: Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:508 
          Interrupt:42 			
			
				
无线 IP 地址

只查看无线 IP 地址

			
adb shell ifconfig wlan0
			
				
Mac 地址
				
rk3568_r:/ $ cat /sys/class/net/wlan0/address
30:7b:c9:0f:12:b9				
				
				

查看 MAC 地址

			
neo@MacBook-Pro-M2 ~> adb shell cat /sys/class/net/wlan0/address
c0:84:7d:2b:3c:24			
			
				

110.6.3.2. 内存信息

			
neo@MacBook-Pro-M2 ~> adb shell cat /proc/meminfo
MemTotal:        2043916 kB
MemFree:          844392 kB
MemAvailable:    1334032 kB
Buffers:            6376 kB
Cached:           609984 kB
SwapCached:            0 kB
Active:           562872 kB
Inactive:         346688 kB
Active(anon):     297196 kB
Inactive(anon):   116108 kB
Active(file):     265676 kB
Inactive(file):   230580 kB
Unevictable:         256 kB
Mlocked:             256 kB
HighTotal:       1564672 kB
HighFree:         661800 kB
LowTotal:         479244 kB
LowFree:          182592 kB
SwapTotal:        520908 kB
SwapFree:         520908 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        293468 kB
Mapped:           348972 kB
Shmem:            120132 kB
Slab:             194608 kB
SReclaimable:     172360 kB
SUnreclaim:        22248 kB
KernelStack:        5376 kB
PageTables:        12448 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     1542864 kB
Committed_AS:   25076844 kB
VmallocTotal:     499712 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:          16384 kB
CmaFree:           14540 kB
			
			
			

110.6.3.3. 查看硬件与系统属性

			
neo@MacBook-Pro-M2 ~> adb shell cat /system/build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=NHG47K
ro.build.display.id=rk3288-userdebug 7.1.2 NHG47K eng.server22.20230423.034518 test-keys
ro.build.version.incremental=eng.server22.20230423.034518
ro.build.version.sdk=25
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=7.1.2
ro.build.version.security_patch=2017-04-05
ro.build.version.base_os=
ro.build.date=Sun Apr 23 03:45:18 UTC 2023
ro.build.date.utc=1682221518
ro.build.type=userdebug
ro.build.user=server22
ro.build.host=server-zysj-03
ro.build.tags=test-keys
ro.build.flavor=rk3288-userdebug
ro.product.model=rk3288
ro.product.brand=Android
ro.product.name=rk3288
ro.product.device=rk3288
ro.product.board=rk30sdk
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.manufacturer=rockchip
ro.product.locale.language=zh
ro.product.locale.region=CN
persist.sys.timezone=Asia/Shanghai
ro.wifi.channels=
ro.board.platform=rk3288
# ro.build.product is obsolete; use ro.product.device
ro.build.product=rk3288
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=rk3288-userdebug 7.1.2 NHG47K eng.server22.20230423.034518 test-keys
ro.build.fingerprint=Android/rk3288/rk3288:7.1.2/NHG47K/server04230345:userdebug/test-keys
ro.build.characteristics=tablet
# end build properties
#
# from device/rockchip/rk3288/system.prop
#
#
# system.prop
#

# modify by alvin, support for 4G patch.
rild.libpath=/system/lib/libreference-ril.so
rild.libargs=-d /dev/ttyUSB3
# Default ecclist
ro.ril.ecclist=112,911
ro.opengles.version=196610
wifi.interface=wlan0
# modify by alvin, support for 4G patch.
#rild.libpath=/system/lib/libril-rk29-dataonly.so
#rild.libargs=-d /dev/ttyACM0
persist.tegra.nvmmlite = 1
ro.audio.monitorOrientation=true

#NFC
debug.nfc.fw_download=false
debug.nfc.se=false

#add Rockchip properties here
ro.rk.screenoff_time=2147483647
ro.rk.screenshot_enable=true
ro.rk.def_brightness=200
ro.rk.homepage_base=http://m.baidu.com/?from=844&vit=fps
ro.rk.install_non_market_apps=false
sys.hwc.compose_policy=0
sys.wallpaper.rgb565=0
sf.power.control=2073600
sys.rkadb.root=0
ro.sf.fakerotation=false
ro.sf.hwrotation=0
ro.rk.MassStorage=false
ro.rk.systembar.voiceicon=true
ro.rk.systembar.tabletUI=false
ro.rk.LowBatteryBrightness=false
ro.tether.denied=false
#repair by alvin, surport change system density value.
sys.resolution.changed=true
ro.default.size=100
#persist.sys.timezone=
ro.product.usbfactory=rockchip_usb
wifi.supplicant_scan_interval=15
ro.factory.tool=0
ro.kernel.android.checkjni=0
#set default lcd density to Rockchip tablet
ro.sf.lcd_density=240
ro.adb.secure=0
ro.rk.displayd.enable=false

#/*add by yfc for show vendor id*/
ro.source.code.version = 220

#add by alvin for hdmi rotation
ro.same.orientation=true
ro.orientation.einit=0
ro.rotation.external=true

#add by alvin, support for config camera rotation.
ro.camera.param.degree=0
ro.camera.back=0
ro.camera.place=0
# add by alvin for system 4k ui
# default main framebuffer resolution
persist.sys.framebuffer.main=1536x2048
sys.hwc.device.primary=HDMI-A

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.target.product=tablet
dalvik.vm.heapstartsize=16m
dalvik.vm.heapgrowthlimit=480m
dalvik.vm.heapsize=520m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
ro.config.ringtone=Ring_Synth_04.ogg
ro.config.notification_sound=pixiedust.ogg
ro.carrier=unknown
ro.config.alarm_alert=Alarm_Classic.ogg
ro.rksdk.version=RK30_ANDROID7.1.2-SDK-v1.00.00
camera2.portability.force_api=1
persist.sys.strictmode.visual=false
ro.rk.bt_enable=true
ro.rk.flash_enable=true
ro.rk.hdmi_enable=true
ro.factory.hasUMS=false
persist.sys.usb.config=mtp,adb
testing.mediascanner.skiplist=/mnt/shell/emulated/Android/
ro.factory.hasGPS=false
ro.factory.storage_suppntfs=true
ro.factory.without_battery=false
ro.rk.screenoff_time=2147483647
ro.com.widevine.cachesize=16777216
ro.enable.optee=true
ro.product.first_api_level=23
ro.boot.noril=true
keyguard.no_require_sim=true
ro.com.android.dataroaming=true
ril.function.dataonly=1
ro.config.enable.remotecontrol=false
ro.udisk.visible=true
ro.safemode.disabled=true
ro.wallpaper.fixsize=true
ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
ro.hwui.r_buffer_cache_size=8
ro.hwui.path_cache_size=32
ro.hwui.gradient_cache_size=1
ro.hwui.drop_shadow_cache_size=6
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.text_small_cache_width=1024
ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=1024
ro.hwui.disable_scissor_opt=true
ro.rk.screenshot_enable=true
sys.status.hidebar_enable=false
persist.sys.ui.hw=true
ro.product.version=1.0.0
ro.product.ota.host=www.rockchip.com:2300
ro.sys.sdcardfs=true
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.arm.variant=cortex-a15
dalvik.vm.isa.arm.features=default
dalvik.vm.lockprof.threshold=500
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.expect.recovery_id=0x182fbd9a6eea8693a3aeac4bfab86ba6271f55d1000000000000000000000000
			
			

获取指定的属性 adb shell getprop net.bt.name

			
neo@MacBook-Pro-M2 ~> adb shell getprop net.bt.name
Android
			
			

110.6.4. 设备 ID

110.6.4.1. 获取变量

			
neo@MacBook-Pro-M2 ~> adb shell settings get secure android_id
95c27630f4559e58			
			
			

110.6.4.2. 设置变量

		
RK3566:/ # settings put global policy_control immersive.full=*
RK3566:/ # settings put global policy_control immersive.status=*
RK3566:/ # settings put global policy_control immersive.navigation=*
		
			
显示/关闭虚拟键

设置属性值为0表示一直打开虚拟按键,属性值为1 表示隐藏虚拟按键

			
adb root
adb remount
adb shell
$ getprop qemu.hw.mainkeys
$ setprop qemu.hw.mainkeys 0 
$ stop
$ start
			
				

			
setprop persist.qemu.hw.mainkeys 0
			
				

110.6.5. 查看安卓版本

			
neo@MacBook-Pro-M2 ~> adb shell getprop ro.build.version.release
7.1.2
			
		

110.6.5.1. 产品型号

			
neo@MacBook-Pro-M2 ~> adb shell getprop ro.product.model
rk3288			
			
			

110.6.6. Logcat

			
neo@MacBook-Pro-M2 ~> adb logcat
neo@MacBook-Pro-M2 ~> adb -s CFE6R21625003544 logcat			
			
		

110.6.7. 上传文件

			
adb push libtinyalsa.so /system/lib/
			
		
			
neo@MacBook-Pro-M2 ~> adb push netkiller.wav /sdcard/
			
		

110.6.8. 下载文件

			
neo@MacBook-Pro-M2 tmp % adb pull /sdcard/file.wav
/sdcard/file.wav: 1 file pulled, 0 skipped. 0.0 MB/s (44 bytes in 0.002s)			
			
		

110.6.9. 安卓 .apk bk

		
        -l :锁定应用程序
        -t :允许测试包
        -d :允许降级覆盖安装
        -p :部分应用安装
        -g :为应用程序授予所有运行时的权限		
		
		
		
neo@MacBook-Pro-M2 ~> adb install netkiller.apk
		
		

110.6.10. 屏幕尺寸

			
neo@MacBook-Pro-M2 ~> adb shell wm size
Physical size: 1536x2048			

neo@MacBook-Pro-M2 ~> adb shell wm density
Physical density: 240
			
		

			
neo@MacBook-Pro-M2 ~> adb shell dumpsys window displays
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
  Display: mDisplayId=0
    init=1536x2048 240dpi cur=1536x2048 app=1536x1964 rng=1536x1416-2048x1928
    deferred=false layoutNeeded=false

  Application tokens in top down Z order:
    mStackId=1
    mDeferDetach=false
    mFullscreen=true
    mBounds=[0,0][1536,2048]
      taskId=56
        mFullscreen=true
        mBounds=[0,0][1536,2048]
        mdr=false
        appTokens=[AppWindowToken{1c392c token=Token{ff4ab7e ActivityRecord{379f939 u0 com.wc.holoos/.player.PlayClockActivity t56}}}]
        mTempInsetBounds=[0,0][0,0]
          Activity #0 AppWindowToken{1c392c token=Token{ff4ab7e ActivityRecord{379f939 u0 com.wc.holoos/.player.PlayClockActivity t56}}}
          windows=[Window{73ec1eb u0 com.wc.holoos/com.wc.holoos.player.PlayClockActivity}]
          windowType=2 hidden=false hasVisible=true
          app=true voiceInteraction=false
          allAppWindows=[Window{73ec1eb u0 com.wc.holoos/com.wc.holoos.player.PlayClockActivity}]
          task={taskId=56 appTokens=[AppWindowToken{1c392c token=Token{ff4ab7e ActivityRecord{379f939 u0 com.wc.holoos/.player.PlayClockActivity t56}}}] mdr=false}
           appFullscreen=true requestedOrientation=1
          hiddenRequested=false clientHidden=false reportedDrawn=true reportedVisible=true
          numInterestingWindows=1 numDrawnWindows=1 inPendingTransaction=false allDrawn=true (animator=true)
          startingData=null removed=false firstWindowDrawn=true mIsExiting=false
    mStackId=0
    mDeferDetach=false
    mFullscreen=true
    mBounds=[0,0][1536,2048]
      taskId=55
        mFullscreen=true
        mBounds=[0,0][1536,2048]
        mdr=false
        appTokens=[AppWindowToken{56cdf68 token=Token{362805a ActivityRecord{b30e805 u0 com.wc.holoos/.MainActivity t55}}}]
        mTempInsetBounds=[0,0][0,0]
          Activity #0 AppWindowToken{56cdf68 token=Token{362805a ActivityRecord{b30e805 u0 com.wc.holoos/.MainActivity t55}}}
          windows=[Window{90133ba u0 com.wc.holoos/com.wc.holoos.MainActivity}]
          windowType=2 hidden=true hasVisible=true
          app=true voiceInteraction=false
          allAppWindows=[Window{90133ba u0 com.wc.holoos/com.wc.holoos.MainActivity}]
          task={taskId=55 appTokens=[AppWindowToken{56cdf68 token=Token{362805a ActivityRecord{b30e805 u0 com.wc.holoos/.MainActivity t55}}}] mdr=false}
           appFullscreen=true requestedOrientation=1
          hiddenRequested=true clientHidden=true reportedDrawn=false reportedVisible=false
          mAppStopped=true
          numInterestingWindows=1 numDrawnWindows=1 inPendingTransaction=false allDrawn=true (animator=true)
          startingData=null removed=false firstWindowDrawn=true mIsExiting=false


    DimLayerController
      Task=55
        dimLayer=shared, animator=null, continueDimming=false
        mDimSurface=Surface(name=DimLayerController/Stack=0) mLayer=110999 mAlpha=0.0
        mLastBounds=[-384,-512][1920,2560] mBounds=[-384,-512][1920,2560]
        Last animation:  mDuration=200 mStartTime=7877723 curTime=9020147
         mStartAlpha=0.6 mTargetAlpha=0.0
      Task=56
        dimLayer=shared, animator=null, continueDimming=false
        mDimSurface=Surface(name=DimLayerController/Stack=0) mLayer=110999 mAlpha=0.0
        mLastBounds=[-384,-512][1920,2560] mBounds=[-384,-512][1920,2560]
        Last animation:  mDuration=200 mStartTime=7877723 curTime=9020147
         mStartAlpha=0.6 mTargetAlpha=0.0
      Stack=1
        dimLayer=shared, animator=null, continueDimming=false
        mDimSurface=Surface(name=DimLayerController/Stack=0) mLayer=110999 mAlpha=0.0
        mLastBounds=[-384,-512][1920,2560] mBounds=[-384,-512][1920,2560]
        Last animation:  mDuration=200 mStartTime=7877723 curTime=9020147
         mStartAlpha=0.6 mTargetAlpha=0.0
      Stack=0
        dimLayer=shared, animator=null, continueDimming=false
        mDimSurface=Surface(name=DimLayerController/Stack=0) mLayer=110999 mAlpha=0.0
        mLastBounds=[-384,-512][1920,2560] mBounds=[-384,-512][1920,2560]
        Last animation:  mDuration=200 mStartTime=7877723 curTime=9020147
         mStartAlpha=0.6 mTargetAlpha=0.0

    DockedStackDividerController
      mLastVisibility=false
      mMinimizedDock=false
      mAdjustedForIme=false
      mAdjustedForDivider=false
			
			
		

110.6.10.1. 查看 dpi

dpi

		
rk3568_r:/ $ wm size                                                                                                                                                                                                           
Physical size: 1536x2048

rk3568_r:/ $ wm density
Physical density: 240


rk3566_rgo:/ # wm size
Physical size: 1536x2048

rk3566_rgo:/ # wm density                                                                                                                                                                                                          
Physical density: 680	
		
			

110.6.10.2. 设置 dpi

			
RK3566:/ $ wm density 480
RK3566:/ $ wm density 320			
			
			

110.6.11. dump 系统信息

			
neo@MacBook-Pro-M2 ~> adb shell dumpsys			
			
		

110.6.11.1. 电池信息

			
neo@MacBook-Pro-M2 ~> adb shell dumpsys battery
Current Battery Service state:
  AC powered: true
  USB powered: false
  Wireless powered: false
  Max charging current: 0
  Max charging voltage: 0
  Charge counter: 0
  status: 2
  health: 2
  present: true
  level: 100
  scale: 100
  voltage: 0
  temperature: 424
  technology: 			
			
			

110.6.12. 解锁

		
neo@MacBook-Pro-M2 ~ % adb root
neo@MacBook-Pro-M2 ~ % adb reboot bootloader
neo@MacBook-Pro-M2 ~ % fastboot flashing unlock
neo@MacBook-Pro-M2 ~ % fastboot getvar unlocked
neo@MacBook-Pro-M2 ~ % adb disable-verity
neo@MacBook-Pro-M2 ~ % adb reboot
neo@MacBook-Pro-M2 ~ % adb root
neo@MacBook-Pro-M2 ~ % adb remount
		
		

110.6.13. 蓝牙管理

蓝牙相关adb命令

查看蓝牙信息

		
neo@MacBook-Pro-M2 ~ % adb shell dumpsys bluetooth_manager
Bluetooth Status
  enabled: true
  state: ON
  address: 22:22:9D:4D:03:00
  name: Bluetooth
  time since enabled: 00:12:52.801		
		
		

获取蓝牙开关状态

		
adb shell settings get global bluetooth_on
		
		

返回1表示开启,0表示关闭

		
neo@MacBook-Pro-M2 ~ % adb shell settings get global bluetooth_on
1		
		
		

打开蓝牙

		
adb shell service call bluetooth_manager 6
		
		

关闭蓝牙

		
adb shell service call bluetooth_manager 8
		
		

允许被发现,此时屏幕会弹出,需要按键确认

		
adb shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
		
		

获取蓝牙MAC地址

		
adb shell settings get secure bluetooth_address