<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post/9296/</link>
<title><![CDATA[[实践OK]win10安装/卸载Tortoise Git软件都是出现2502/2503终极解决大法 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[前端技术]]></category>
<pubDate>Tue, 27 Jun 2017 14:29:59 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/9296/</guid> 
<description>
<![CDATA[ 
	安装没有遇到问题，TortoiseGit更新需要卸载时出现的问题，网上说把Exporer给停止掉再重启，发现不行。<br/>再就是有人说那个文件夹C:&#92;Windows&#92;TEMP的权限不对引起，经过一阵折腾，发现的的确是那个问题引起的：<br/>在目录上-&gt;右键-&gt;属性-&gt;安全-&gt;组或用户名-&gt;TrustedInstaller 权限全给勾上即可。<br/><br/>http://www.win7china.com/html/24965.html<br/>http://www.win7china.com/html/24965.html<br/>方法/步骤<br/>把鼠标放到Win8屏幕的最左下角，等待Win8 Metro界面的缩略图出现后点击鼠标右键，在弹出的菜单中选择“命令提示符（管理员）”<br/>打开的“命令提示符（管理员）”<br/>找到自己将要安装的程序路径，比如：我要安装的这个程序在D盘的Others文件夹下<br/>点击路径那一栏，把路径复制出来，然后再复制程序名称<br/>在“命令提示符（管理员）”中输入 msiexec /package 你将要安装的程序的完整路径及程序名 （注意空格），比如：我是要安装D盘Others文件夹下的msxml<br/>然后按回车键，安装程序就会自动启动，此时，你在安装的过程中就不会碰到2502、2503的错误了<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post/6357/</link>
<title><![CDATA[[实践OK]Android手机通过电脑adb配合tcpdump进行应用的http接口访问抓包，通过tcpdump抓包,反编译工具,用adb解决这个拷贝问题，tcpdump: Read-only file system问题。Eclipse下配置LogCat步骤，最好是有root权限能抓单个apk进程的包，及eclipse代理于android sdk代理设置，及用ddm进行抓取物理手机usb连接后的程序日志。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[前端技术]]></category>
<pubDate>Wed, 15 May 2013 03:57:36 +0000</pubDate> 
<guid>http://www.jackxiang.com/post/6357/</guid> 
<description>
<![CDATA[ 
	背景：手机抓apk产生的日志包，及用adb对包进行更新、安装操作及adb里进行tcpdump是非常有用的操作，分两个大步骤去讲。<br/><br/>==========第一大步骤：试图在eclipse里用logcat抓手机里的包=============<br/>Eclipse下配置LogCat步骤及可能出现的问题解决：<br/>一）挂载android的sdk，logcat和那个ddms都在里面：<br/>&nbsp;&nbsp;&nbsp;&nbsp; eclipse下的菜单：windows下有一个；preferences里有一个Android，里有一个：<br/>sdk location：选：D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;sdk。<br/>（在eclipse里windows -&gt;preference 找不到android这个选项，是啥原图？没装eclipse的android插件，后面会讲。）<br/>（D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;sdk&#92;tools&#92;ddms.bat）<br/><br/>二）打开DDMS 会自动调出logcat：<br/>Eclipse 用DDMS 调试Android 程序,抓android手机连接电脑里的包，<br/>单击window-&gt;open Pespective 里面应该有，没有就到other里找到ddms，这个前提是要安装eclipse的安卓插件。<br/>logcat在：windows-&gt;show view-&gt;ohter-&gt;logcat(没有就在输入框里输入就能找到，前提是要安装了eclipse的android插件。)<br/><br/>来自：http://zhidao.baidu.com/link?url=IjJjp4Y3An_C25G3BDfQvj66WRsUlAAHvubwmM-DYOhRv8WEIpqWToykpNElwfO_rf8sxvBsrQPXyBYtA2myqa<br/>关于，加入写代码如何调试？<br/>Log.v(String tag, String msg);<br/>Log.d(String tag, String msg);<br/>Log.i(String tag, String msg);<br/>Log.w(String tag, String msg);<br/>Log.e(String tag, String msg);<br/>这 5种方法的首字母分别对应VERBOSE、DEBUG、INFO、WARN、ERROR。当利用DDMS进行调试时，它们的区别并不大，只是显示的颜色不 同，我们可以控制要显示的某一类错误，一般我们如果使用&#039;断点&#039;方式来调试程序，则使用Log.e比较合适。但是根据规范建议Log.v，Log.d信息 应当只存在于开发过程中，最终版本只可以包含Log.i, Log.w，Log.e这三种日志信息。<br/>http://blog.sina.com.cn/s/blog_53a99cf30100tha3.html<br/><br/>eclipse的DDMS中找不到安卓模拟设备?怎么办：<br/>其一：<br/>1. 打开cmd命令行，切换到adb命令目录，如果你已经加入了环境变量，切换目录就省了。<br/>2. 输入命令：adb kill-server，adb被杀死了。<br/>3. 接着输入命令：adb start-server，重新启动adb。<br/>4. 再用adb devices命令，是不是看到设备了。<br/><br/>主要原因是可能某个程序占用了adb端口，操作一下下面方法：<br/>5037为adb默认端口 查看该端口情况如下：<br/>&nbsp;&nbsp;&nbsp;&nbsp; netstat -aon&#124;findstr &quot;5037&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp; TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6540<br/>找到那个程序，kill掉。在cmd命令行下输入taskkill /pid 7024 /f<br/>实践如下：<br/>C:&#92;Users&#92;admin&gt;netstat -ano&#124;findstr 5037<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LISTENING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4296<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36183&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36186&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36188&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/><br/>C:&#92;Users&#92;admin&gt;taskkill /pid 4296 /f<br/>成功: 已终止 PID 为 4296 的进程。<br/><br/>C:&#92;Users&#92;admin&gt;netstat -ano&#124;findstr 5037 //还有，是tcp协议上的事情一会就没了。<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36859&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36860&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36861&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/>&nbsp;&nbsp;TCP&nbsp;&nbsp;&nbsp;&nbsp;127.0.0.1:5037&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1:36862&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIME_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br/><br/>TIME_WAIT里这儿有说明，里面的图：<br/>http://blog.csdn.net/mhfh611/article/details/8769617<br/><br/>三）在ddms里的logcat对包过滤：<br/>&nbsp;&nbsp;&nbsp;&nbsp; 在左下可以选：save filters，加一个PID，就是进程Id进行过滤，这样就好弄多了，<br/>可以对某个进程进行过滤了。（在Logcat选项卡中就能看到Saved Filters处点击那个绿色的加号+，然后看改成如下截图：（把下图中的包名换成你app的包名即可）<br/>）<br/><br/>==========直接ddms.bat不使用eclipse===============<br/>D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;sdk&#92;tools&#92;ddms.bat<br/>adb start-server<br/>——————————————————————————————————————————————————————<br/>在eclipse里windows -&gt;preference 找不到android这个选项，是啥原图：<br/>因为 （http://jingyan.baidu.com/article/7908e85c6b4a52af481ad2ee.html）<br/>里的google插件被屏蔽了，在eclipse里的update里的插件地址给国内国家防火墙屏蔽了（https://dl-ssl.google.com/android/eclipse/(如果出错，请将https改成http)）打不开了，于是否，<br/>直接用ddms，eclipse其实就是集成这个ddms到里面了，位置如下：D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;sdk&#92;tools&#92;ddms.bat&nbsp;&nbsp;双击即可。<br/><br/>如果，非要从国外下载下来得设置代理：<br/>Eclipse Update时代理设置,androidSDK 和 eclipse 的下载安装和代理设置:更新或安装插件前最好看一下代理，打开 windows/preference 看到这个配置：general network connection.....<br/>这里可以设置你的代理，设置好代理的IP和端口就可以了。eclipse很智能，能检测你正在打开的代理，然后自动帮你配置好，但以防万一还是打开看看是否配置正确了。<br/><br/>然后安装插件即可 就是 help/install new software ，地址：http://dl-ssl.google.com/android/eclipse<br/>来自：http://my.oschina.net/tdONEmadao/blog/281873?p=&#123;&#123;currentPage-1&#125;&#125;<br/><br/>http://dl-ssl.google.com/android/eclipse/ 无法访问的解决办法：<br/>很明显，国内网络和谐掉了google这个服务器，可以强制指向下Host ，以下是添加内容：<br/>74.125.237.1 dl-ssl.google.com <br/><br/>具体操作方式：http://blog.163.com/angel_boa/blog/static/1906800912014015105249315/<br/>点击桌面左下角开始菜单中的搜索，把以下路径，复制到搜索窗口中，c:&#92;windows&#92;system32&#92;drivers&#92;etc，点击立即搜索 ，就找到该文件，其实是一个纯文本的文件，<br/>1、用记事本打开<br/>2、将：203.208.46.146 dl-ssl.google.com&nbsp;&nbsp;添加至最后一行<br/>3、保存关闭Host<br/><br/>android sdk代理设置:<br/>D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;SDK Manager.exe 打开后：tools-&gt;option -&gt;http proxy(others force to https...)<br/>——————————————————————————————————————————————————————————————<br/>摘自：<br/>http://bbs.51cto.com/thread-947038-1.html<br/><br/>=============第二大步骤：Adb控制手机里的应用应用程序及抓包=============<br/>1.如何用adb获得手机里面某个apk的应用信息、版本信息<br/>adb shell dumpsys package com.examle.xx<br/>adb shell dumpsys 列出所有<br/>2 如何用adb启动apk<br/>adb shell am start -n breakan.test/breakan.test.TestActivity<br/>卸载一个apk包方法：<br/>adb uninstall SpareParts.apk&nbsp;&nbsp;<br/><br/>3.获取进程列表好删掉这些安装包：<br/>删除程序方法一：<br/>C:&#92;Users&#92;admin&gt;adb shell pm list packages<br/>package:com.baidu.searchbox<br/>...<br/>...<br/>adb uninstall com.baidu.searchbox<br/><br/>http://mytiankong.com/?p=11755<br/>删除程序之方法二：<br/>需要安卓设备已ROOT，电脑已安装adb工具,直接删除程序包，<br/>adb shell ls /system/app/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//查看系统apk列表<br/>adb remount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //挂载读写权限<br/>adb shell rm /system/app/browser.apk //删除程序 <br/>adb shell rm /system/app/browser.apk回车，这个程序就被删除了，删除其它的程序把browser.apk改成需要删除的程序名即可，有些设备系统程序还有odex文件，也需要同时删除。<br/>http://sspai.com/23641<br/><br/>会提示失败<br/>原因在于安装后的包名已将改变，变为AndroidMainifest.xml文件中&lt;manifest&gt;节点下，package元素所指定的名字<br/>正确方法是(后面这个；com.andorid什么的运行后通过logcat能够看到apk的日志)：<br/>adb uninstall com.android.spare_parts&nbsp;&nbsp;<br/>完成！<br/>摘自：http://blog.csdn.net/ydt_lwj/article/details/7766742<br/><br/><br/>1. 手机要有root权限<br/><br/>2. 下载tcpdump&nbsp;&nbsp; http://www.strazzere.com/android/tcpdump<br/><br/>3. adb push c:&#92;wherever_you_put&#92;tcpdump /data/local/tcpdump<br/><br/>4. adb shell chmod 6755 /data/local/tcpdump<br/>adb shell introduce:<br/>http://wenku.baidu.com/view/288243976bec0975f465e2c6.html<br/><br/>5, adb shell,&nbsp;&nbsp; su获得root权限<br/><br/>6， cd /data/local<br/><br/>7， ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap<br/><br/>命令参数：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# &quot;-i any&quot;: listen on any network interface<br/><br/>　　# &quot;-p&quot;: disable promiscuous mode (doesn&#039;t work anyway)<br/><br/>　　# &quot;-s 0&quot;: capture the entire packet<br/><br/>　　# &quot;-w&quot;: write packets to a file (rather than printing to stdout)<br/><br/>　　... do whatever you want to capture, then ^C to stop it ...<br/><br/>8,&nbsp;&nbsp;adb pull /sdcard/capture.pcap d:/<br/><br/>9,&nbsp;&nbsp;在电脑上用wireshark打开capture.pcap即可分析log<br/><br/> <br/><br/>Execute the following if you would like to watch packets go by rather than capturing them to a file (-n skips DNS lookups. -s 0 captures the entire packet rather than just the header):&nbsp;&nbsp;<br/><br/> <br/>adb shell tcpdump -n -s 0&nbsp;&nbsp; <br/><br/> <br/><br/>Typical tcpdump options apply. For example, if you want to see HTTP traffic:&nbsp;&nbsp;<br/>只监听http&nbsp;&nbsp;<br/><br/>adb shell tcpdump -X -n -s 0 port 80<br/><textarea name="code" class="C" rows="15" cols="100">[/codes]
 

根据以上的信息，写一个bat去执行（tcpdump文件必须在当前目录里）。
root权限小记：
windows通过adb连接上后如果权限不够，我后来换为Andorid4.4.2后，adb权限不够：
一）设置-&gt;超级用户-&gt;设置（右上角）-&gt;超级用户访问权限-&gt;选应用程序和ADB。
二）在windows下的cmd下adb连接上手机后：
[codes=php]
shell@GT-I9000:/sdcard $ su
su
Permission denied
1&#124;shell@GT-I9000:/sdcard $ su
su
root@GT-I9000:/ # id
id
uid=0(root) gid=0(root) context=u:r:init_shell:s0
</textarea><br/><br/>三）移动tcpdump到指定目录并赋予权限：<br/><textarea name="code" class="php" rows="15" cols="100">
尽管adb是root后，执行：
root@GT-I9000:/sdcard # cp -Rf /sdcard/tcpdump /system/xbin/
果然提示：cp: /system/xbin/tcpdump: Read-only file system
以下实践无果：
提示Read-only filesystem，那么就要重新挂载一下/system，把只读挂载成可读写，只有手机root了才能运行：
mount -o remount,rw /dev/block/mtdblock0 /system /
root@GT-I9000:/sdcard # mount -o remount,rw /dev/block/mtdblock0 /system /
mount -o remount,rw /dev/block/mtdblock0 /system /
Usage: mount [-r] [-w] [-o options] [-t type] device directory

方法一：
最后，用文件管理器（设置-》常规设置-》访问模式-》超级用户访问模式）root后：
对/sdcard/tcpdump 操作复制到/system/xbin没有任何问题，后再对该文件提权OK。
</textarea><br/><br/>方法二，经过没有文件管理器的命令行操作成功，如下实践Ok：<br/>经过手机抓包工具的app的提示并实践OK，直接进入adb后su root后执行，还是出现如下：<br/>shell@android:/sdcard # cp -Rf tcpdump /system/xbin/tcpdump<br/>cp -Rf tcpdump /system/xbin/tcpdump<br/>cp: /system/xbin/tcpdump: Read-only file system<br/><br/>—————***—————最后，如下步骤操作就Ok了————***—————<br/>E:&#92;download&#92;三星一键进入挖煤ADB&#92;三星ADB命令挖煤器&#92;adb&#92;adb.exe root<br/>restarting adbd as root<br/>E:&#92;download&#92;三星一键进入挖煤ADB&#92;三星ADB命令挖煤器&#92;adb&#92;adb.exe remount<br/>remount succeeded<br/>E:&#92;download&#92;三星一键进入挖煤ADB&#92;三星ADB命令挖煤器&#92;adb&#92;adb.exe pull /sdcard/tcpdump c:&#92;<br/>594 KB/s (1801155 bytes in 2.960s)<br/>E:&#92;download&#92;三星一键进入挖煤ADB&#92;三星ADB命令挖煤器&#92;adb&#92;adb.exe push c:&#92;tcpdump /system/xbin/<br/>3369 KB/s (1801155 bytes in 0.522s)<br/><br/>E:&#92;download&#92;三星一键进入挖煤ADB&#92;三星ADB命令挖煤器&#92;adb&#92;adb.exe&nbsp;&nbsp;shell chmod 755 /system/xbin/tcpdump<br/><br/><br/>当天，刷了小米QingS_For_I9000_MIUIv5_Version1.zip，<br/>里面没有像cygen系统自己带的文件管理器可获取root（没法root出来），只得找了下命令行，成功拷贝，如下：<br/><textarea name="code" class="php" rows="15" cols="100">
1&#124;shell@android:/ # mount -o remount rw /system
mount -o remount rw /system
shell@android:/ # cp -Rf /sdcard/tcpdump /system/xbin/
cp -Rf /sdcard/tcpdump /system/xbin/
shell@android:/ # chmod 777&nbsp;&nbsp;/system/xbin/tcpdump
chmod 777&nbsp;&nbsp;/system/xbin/tcpdump
</textarea><br/>上述方法摘自：http://wojiushiwolxw.spaces.eepw.com.cn/articles/article/item/97054<br/>四）我的操作：<br/><textarea name="code" class="php" rows="15" cols="100">
D:&#92;Program Files&#92;adb&gt;adb devices
Coolpad_D530&nbsp;&nbsp;device
3431466FD41F00EC&nbsp;&nbsp;device
用adb –s 来指定用某一个设备来执行命令:
-s &lt;serial number&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- directs command to the USB device or emulator with
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the given serial number. Overrides ANDROID_SERIAL
多个devices的示例如下：
D:&#92;Program Files&#92;PowerCmd&gt;&quot;E:&#92;mUI&#92;I9000_new_tools&#92;I9000_new_tools&#92;ADB&#92;adb.exe&quot; -s&nbsp;&nbsp;3431466FD41F00EC shell
shell@android:/ $ 
D:&#92;Program Files&#92;adb&gt; adb shell
#&nbsp;&nbsp;cd /data/local
# su
su
# id
id
uid=0(root) gid=0(root)
# ls
tcpdump
# /system/xbin/tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
tcpdump: socket: Operation not permitted
# chown&nbsp;&nbsp;root tcpdump
chown&nbsp;&nbsp;root tcpdump
# chmod 777&nbsp;&nbsp;tcpdump
chmod 777&nbsp;&nbsp;tcpdump
#&nbsp;&nbsp;./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
 ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
D:&#92;Program Files&#92;adb&gt;adb pull /sdcard/capture.pcap d:/
2926 KB/s (6348480 bytes in 2.118s)
</textarea><br/><br/>开始tcpdump <br/>adb push tcpdump /data/local/tcpdump<br/>adb shell chmod 6755 /data/local/tcpdump<br/>adb shell rm -r /sdcard/capture.pcap<br/>adb shell&nbsp;&nbsp;/data/local/tcpdump -i any -p -s 0 -w /sdcard/capture.pcap<br/>pause<br/><br/>五、下载tcpdump文件到电脑 <br/> adb pull /sdcard/capture.pcap capture.pcap <br/><textarea name="code" class="php" rows="15" cols="100">
&quot;E:&#92;mUI&#92;I9000_new_tools&#92;I9000_new_tools&#92;ADB&#92;adb.exe&quot; -s&nbsp;&nbsp;3431466FD41F00EC pull /sdcard/shark_dump_1402568277.pcap
</textarea><br/> <br/>六、出现设备找不到的问题：<br/><textarea name="code" class="php" rows="15" cols="100">
root@GT-I9000:/sdcard # /system/xbin/tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
tcpdump: any: No such device exists
root@GT-I9000:/ # netcfg
netcfg
lo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 127.0.0.1/8&nbsp;&nbsp; 0x00000049 00:00:00:00:00:00
svnet0&nbsp;&nbsp; UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0/0&nbsp;&nbsp; 0x000000d1 a0:00:00:00:00:00
ifb0&nbsp;&nbsp;&nbsp;&nbsp; DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0/0&nbsp;&nbsp; 0x00000082 32:12:75:55:68:6a
ifb1&nbsp;&nbsp;&nbsp;&nbsp; DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0/0&nbsp;&nbsp; 0x00000082 82:76:4e:0e:12:2d
sit0&nbsp;&nbsp;&nbsp;&nbsp; DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0/0&nbsp;&nbsp; 0x00000080 00:00:00:00:00:00
ip6tnl0&nbsp;&nbsp;DOWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0/0&nbsp;&nbsp; 0x00000080 00:00:00:00:00:00
wlan0&nbsp;&nbsp;&nbsp;&nbsp;UP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;172.21.68.76/22&nbsp;&nbsp;0x00001043 b4:07:f9:cf:b4:a4
</textarea><br/>一看就知道是wlan0是wifi的ip就它了:<br/><textarea name="code" class="php" rows="15" cols="100">
 /system/xbin/tcpdump -i wlan0&nbsp;&nbsp; -t -s 0&nbsp;&nbsp;and&nbsp;&nbsp;port 80 -w /sdcard/capture.pcap
</textarea><br/> 果然：<br/>shell@android:/ # /system/xbin/tcpdump -i wlan0&nbsp;&nbsp; -t -s 0&nbsp;&nbsp; -w /sdcard/capture.pcap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;<br/>tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes以上tcpdump的参数主要是想从手机上pull下来后用电脑<br/><textarea name="code" class="php" rows="15" cols="100">
&quot;E:&#92;mUI&#92;I9000_new_tools&#92;I9000_new_tools&#92;ADB&#92;adb.exe&quot; -s&nbsp;&nbsp;3431466FD41F00EC pull /sdcard/capture.pcap 
</textarea><br/>通过cmd下载这个包到windows上，用wireshark进行查看http请求，wireshark进行分析http接口请求情况：https://jackxiang.com/post/4070/<br/>D:&#92;&gt;&quot;D:&#92;Program Files&#92;adt-bundle-windows-x86-20130219&#92;sdk&#92;platform-tools&#92;adb.exe&quot;&nbsp;&nbsp; -s&nbsp;&nbsp;3431466FD41F00EC pull /sdcard/capture.pcap<br/>1196 KB/s (57344 bytes in 0.046s)<br/><br/><br/> 问题：有些机器root后通过adb shell 后，默认不是root用户，需要输入 su才能切换到root，这样在执行批处理会有问题，解决方法如下<br/>adb shell &quot;su -c &#039;sleep 1&#039;&quot;<br/>adb start-server<br/><br/>adb push tcpdump /data/local/tcpdump <br/><br/>来自：http://www.cnblogs.com/likwo/archive/2012/09/06/2673944.html<br/>反编译方法：http://blog.csdn.net/sunboy_2050/article/details/6727581<br/>下载反编译工具：http://ishare.iask.sina.com.cn/download/explain.php?fileid=35377828<br/><br/><br/>adb实现拨打电话和发送短信：<br/>一）实践拨打电话（要没有锁手机的屏幕时才行）：<br/>adb shell service call phone 2 s16 &quot;10086&quot;<br/>service call phone 2 s16 &quot;10086&quot;<br/>Result: Parcel(00000000&nbsp;&nbsp;&nbsp;&nbsp;&#039;....&#039;)<br/><br/><br/>第二种方法实践打电话Ok：<br/>root@raspberrypi:~/dev_Codes_All/i9000# adb shell<br/># service call phone 2 s16 &quot;1861081**08&quot;<br/>Result: Parcel(00000000&nbsp;&nbsp;&nbsp;&nbsp;&#039;....&#039;)<br/><br/>二）实践发送短信：<br/>adb shell am start -a android.intent.action.SENDTO -d sms:1881076*108 --es sms_body &quot;hello&quot; --ez exit_on_sent true <br/>Starting: Intent &#123; act=android.intent.action.SENDTO dat=sms:1881076*108 (has extras) &#125;<br/><br/>//这鼐是换行，不是发送，实践发现<br/>adb shell input keyevent 66&nbsp;&nbsp; <br/>input keyevent 66<br/>最后实践ok为：<br/>//发短信<br/>adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body cxye<br/>adb shell input keyevent 22//焦点去到发送键<br/>adb shell input keyevent 66//回车按下<br/><br/>实践Ok：<br/>adb shell am start -a android.intent.action.SENDTO -d sms:1861*8157*8 --es sms_body cxye<br/>adb shell input keyevent 22<br/>adb shell input keyevent 66<br/><br/><br/><br/>
]]>
</description>
</item>
</channel>
</rss>