OTA差分包制作命令 适用于MT2601:最有用的研究是去研究那些与你的工作相关的事情,尤其是一些类似的工作。无论你正在干什么,你其实都会找到这样的机会,那就是总有什么人在什么地方干过与你相似的事情,从别人的成功和教训当中去研究,学习别人的经验而规避别人的教训,这对于你未来的工作是非常有帮助的。
——摘自《麦肯锡思维与工作法》第二章 分析准确,问题就解决了一半
./build/tools/releasetools/ota_from_target_files --block -k build/target/product/security/testkey -i ../release-HS_KR_HV10_SV02_171030/mota.zip ../release-HS_KR_HV10_SV03_171106/mota.zip update.zip md5sum -b update.zip echo md5数值 > md5sum zip package.zip md5sum update.zip
适用于MT6735:
./build/tools/releasetools/ota_from_target_files -v --block -k build/target/product/security/testkey -s device/mediatek/build/releasetools/mt_ota_from_target_files -i old new update.zip 例如: ./build/tools/releasetools/ota_from_target_files -v --block -k build/target/product/security/testkey -s device/mediatek/build/releasetools/mt_ota_from_target_files -i /home/wzh/bak/bak_data/bins/V118/SV52_0929/full_V118_35_66_m0-target_files-1506699026.zip release-v118_ABR_CN_HV30_SV56_171201/mota.zip update.zip
适用于MT6739:
./build/tools/releasetools/ota_from_target_files -s vendor/mediatek/proprietary/scripts/releasetools/mt_ota_from_target_files.py -i old new update.zip 例如: ./build/tools/releasetools/ota_from_target_files -s vendor/mediatek/proprietary/scripts/releasetools/mt_ota_from_target_files.py -i release-M30_ABR_CN_HV33_SV62_191214/full_abr6739_T3_64_go-target_files-1576296825.zip release-M30_ABR_CN_HV33_SV62_191218/full_abr6739_T3_64_go-target_files-1576641931.zip update.zip手动验证OTA升级的命令:
adb push update.zip /data/data/com.mediatek.systemupdate/system_update/update.zip adb shell "mkdir /cache/recovery" adb shell "echo --update_package=/data/data/com.mediatek.systemupdate/system_update/update.zip > /cache/recovery/command" adb shell "reboot recovery"A33板卡测试软件编译命令: cd lichee ./build.sh config //这一步的时候选择 DragonBoard 就好了。 打包的话: ./build.sh pack V10编译命令: 在lichee目录下: ./build.sh -p sun6i_venus 在android4.4目录下: source build/envsetup.sh lunch 17 extract-bsp make -j8 pack V10 PMU gpio控制位置: cd /sys/devices/platform/sun6i-i2c.1/i2c-1/1-0034/axp22-gpio.20 在a10-android4.0/lichee目录下: ./build.sh -p sun4i_crane -k 3.0 source build/envsetup.sh lunch 7 extract-bsp make -j8 pack ./build.sh -p a13_nuclear -k 3.0 source build/envsetup.sh lunch 7 extract-bsp make -j8 pack 查看系统中prink打印信息:
adb shell cat /proc/kmsg将打印信息保存为txt文档
adb shell cat /proc/kmsg > e:123.txtgetevent 将手机卡中的某个文本文件复制到电脑D盘
adb pull /sdcard/**.txt D:临时设置环境变量
export PATH=$PATH:/home/extend/wff/a13_sdk4.0/lichee/buildroot/output/external-toolchain/bin export PATH=$PATH:/home/wff/wff_extend/a10_sdk4.0/lichee/buildroot/output/external-toolchain/binlogcat查看含有相关内容的打印信息:
logcat|grep "gps_oem" 或者 adb shell root@android:/ # logcat | busybox grep "gps_oem"
查看系统进程占用内存信息:
adb shell top -m 5在当前目录及子目录下查找包含字符串 gpio_write_one_pin_value 的所有.h文件,并用颜色标明
find ./ -name *.h |xargs grep -n2 "gpio_write_one_pin_value" --color解压文件到指定目录下:
tar -xzvf drivers/misc/dm201.tar.gz -C drivers/misc/3G模块查看调试信息命令
adb logcat -b radio -v time停止ril库
stop ril-daemon启动ril库
start ril-daemon启动gsmmux脚本
gsmmux -p /dev/ttyS5 -b 115200 -s /dev/mux -w /dev/ptmx /dev/ptmx根据名字kill进程:
busybox killall -15 gsmmux串口命令查看硬件模块是否连接正常的方法:
# echo -e "AT+CSQr" > /dev/ttyS2 # echo -e "ATS24=0r" > /dev/mux1查看是否能通过2G上网的方法:
adb shell root@wing-cdr:/ # ping 8.8.8.8TF卡启动软件编译命令: ./build.sh -p sun4i_dragonboard -k 3.0 ./build.sh pack ./build.sh -p a13_dragonboard -k 3.0 //卸载apk命令 adb uninstall com.daxun.bluetooth.activity PMU的GPIO口控制位置 cd /sys/class/i2c-dev/i2c-0/device/0-0034/axp20-gpio.29 查看服务或进程占用内存情况: adb shell procrank 查看触摸屏分辨率:
root@android:/ # getevent -p /dev/input/event2 getevent -p /dev/input/event2 add device 1: /dev/input/event2 name: "ft5x_ts" events: KEY (0001): 014a ABS (0003): 0030 : value 0, min 0, max 255, fuzz 0, flat 0, resolution 0 0032 : value 0, min 0, max 200, fuzz 0, flat 0, resolution 0 0035 : value 0, min 0, max 800, fuzz 0, flat 0, resolution 0 0036 : value 0, min 0, max 480, fuzz 0, flat 0, resolution 0 0039 : value 0, min 0, max 4, fuzz 0, flat 0, resolution 0 input props:获取已安装的应用的包名
adb shell pm list packages 结果(节选): package:com.dx.launcher.activity package:com.dx.radardetection获取包名对应的APK 路径
adb shell pm path com.dx.launcher.activity package:/system/app/DX_LauncherX5E.apk adb shell pm path com.dx.radardetection package:/data/app/com.dx.radardetection-2.apk把APK pull到本地
adb pull /data/app/com.dx.radardetection-2.apk f:使用aapt 来解析包的信息
aapt d badging X:8801_android4.0android4.0outtargetproductcrane-cvrsystemappDX_LauncherX5E.apk 解析结果(节选): package: name='com.dx.launcher.activity' versionCode='1' versionName='1.0' application-label:'DX_Launcher02' (命令启动apk的关键信息) launchable-activity: name='com.dx.launcher.activity.MainActivity' label='DX_Launcher02' locales: '--_--' 'zh_CN' densities: '160'安装apk的命令:
adb install F:com.dx.radardetection-2.apk启动apk的命令:
adb shell am start -n com.dx.launcher.activity/.MainActivity am start -n com.dx.radardetection/.DetectionActivity卸载apk命令:
adb uninstall com.dx.radardetectionzip压缩命令 -q:不显示指令执行过程; -r:递归处理,将指定目录下的所有文件和子目录一并处理; 例子: 将/home/Blinux/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/htmltar 分包压缩与合并 要将目录logs打包压缩并分割成多个1024M的文件,可以用下面的命令:
tar cjf - logs/ |split -b 1024m - logs.tar.bz2.完成后会产生下列文件: logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac 例子: tar cjf - 源码文件夹名称/ |split -b 1001m - 源码文件夹名称.tar.bz2. 要解压的时候只要执行下面的解压命令就可以了:
cat logs.tar.bz2.a* | tar xj e.g. cat ${customer_project}_INHOUSE.tar.gz* | tar zxf -
压缩命令:
将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一 个gzip压缩过的包,命名为jpg.tar.gz tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 tar –cjf jpg.tar.bz2 *.jpg解压命令:
tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2 //解压 tar.bz2 1、解压到当前文件夹 输入:tar zxvf 文件名.tgz -C ./ 比如我的是:tar zxvf simple-examples.tgz -C ./ 2、解压到指定文件夹下 输入:tar zxvf 文件名.tgz -C /指定路径 比如我想解压到Home下:则变成tar zxvf simple-examples.tgz -C /Home
ADB server didn't ACK 解决方法:
adb nodaemon server 显示:cannot bind 'tcp:5037' netstat -ano | findstr "5037" 显示:TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 6284 tasklist /fi "pid eq 6284 显示: 图像名 PID 会话名 会话# 内存使用 ========================= ====== ================ ======== ============ sjk_daemon.exe 6284 Console 0 4,536 K批量修改某个目录为指定用户所有(用户组权限修改):
chown -R xxx:ddd dir 例如: sudo chown -R user_1:user_1 user_1/修改用户名
vim /etc/passwd vim /etc/shadow修改组名
groupmod -n new_username old_username groupmod命令用来修改组相关信息,-n用来指定新的组名,用原来的组名作为参数。这里修改的是与用户默认同名的组。修改用户名
usermod -l new_username -d /home/new_username -m old_username 用usermod命令来修改用户帐户相关信息,-l指定新的登录名称,-d指定新的主目录,如果同时指定-m选项则移动原来用户主目录的内容到新的用户住目录,最后指定原来的登录用户名。更改用户的全称
chfn -f new_fullname new_username chfn命令来修改真实的用户名称和其他相关信息,-f指定新的用户全称,需要修改全称的用户名作为参数终端方法:以下用newuser代替想要删除的用户账户 在root用户下:userdel -r newuser 在普通用户下:sudo userdel -r newuser 因为需要彻底删除用户,所以加上-r的选项,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。 单独编译和烧录boot.img的方法: cd lichee ./build.sh -p sun7i_android cd android4.4 . ./build/envsetup.sh lunch 5 extract-bsp make bootimage 在cmd窗口中: adb remount adb push boot.img /data adb shell dd if=/data/boot.img of=/dev/block/nandc sync reboot [self] data = 254 服务器重启网卡及网络的方法:
sudo ifconfig eth0 down sudo ifconfig eth0 up sudo /etc/init.d/networking restart打补丁
patch -bp1 < xxx.patch 参数-b是为了生成一个.orig后缀的备份文件撤销打的补丁
patch -Rp1 < xxx.patch 需要在打完xxx.patch补丁的基础上执行在CMD窗口中运行如下命令可以打开当前运行的路径
C:UsersAdministrator> start .1. 编译方法 #cd lichee/brandy/u-boot-2011.09 #make distclean && make sun7i_config && make -j8 2. 生成文件存放地址 位置:licheetoolspackchipssun7ibinu-boot-sun7i.bin 查看硬盘UUID的方法:
ls -l /dev/disk/by-uuid添加用户(新增用户):
sudo useradd -m -d /home/user001 -s /bin/bash user001设置用户密码:
sudo passwd user001设置samba用户密码:
sudo smbpasswd -a user001修改windows访问samba的权限:
sudo vim /etc/samba/smb.confsamba重启命令:
sudo service smbd restart脱离端口、后台运行命令:
nohup 你的shell命令 & 例子: nohup make -j24 &后台执行编译命令的方法:
该命令的一般形式为:nohup command & 使用nohup命令提交作业 如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件: nohup command > myout.file 2>&1 & 在上面的例子中,输出被重定向到myout.file文件中。 使用 jobs 查看任务。 使用 fg %n 关闭。 例如: nohup ./test-pack_add_userdebug.sh > myout.file 2>&1 & jobs //只能在当前窗口未关闭的状态下有效 [1]+ 运行中 nohup ./test-pack_add_userdebug.sh > myout.file 2>&1 & fg %1 //将1号任务调到前台运行,想关闭可以接着运行Ctrl+c ps -ef | grep make //当窗口关闭后,可以执行此命令查看nohup的编译任务 UID PID PPID C STIME TTY TIME CMD root 18887 18828 0 08:09 pts/0 00:00:00 grep ApacheJetspeed 然后kill -9 +对应的PID服务器定时关机:
nohup sudo shutdown -h 23:00使用scp跨服务器传输大文件
拷贝远程服务器的代码到本地: 以拷贝192.168.3.175服务器上的/home/wff_1/A20_linux目录为例: scp -P22 -r wff_1@192.168.3.175:/home/wff_1/A20_linux /home/extend/wff_2/ 如果需要在后台运行则使用下面的方法: 注意末尾不用加& [mars@gms03 build]$ nohup scp MARS_2.2_1268.tar.gz 10.96.251.72:/data nohup: appending output to `nohup.out' Password: 输入密码后按:ctrl+z [1]+ Stopped nohup scp MARS_2.2_1268.tar.gz 10.96.251.72:/data 然后紧接着输入: [mars@gms03 build]$ bg 上述命令便又能在后台恢复运行了 [1]+ nohup scp MARS_2.2_1268.tar.gz 10.96.251.72:/data #以拷贝192.168.3.175服务器上的/home/wff_1/A20_linux目录为例: 使用scp传输大文件 注意末尾不用加& [mars@gms03 build]$ nohup scp -P22 -r wff_1@192.168.3.175:/home/wff_1/A20_linux /home/extend/wff_2/ nohup: appending output to `nohup.out' Password: 输入密码后按:ctrl+z [1]+ Stopped nohup scp -P22 -r wff_1@192.168.3.175:/home/wff_1/A20_linux /home/extend/wff_2/ 然后紧接着输入: [mars@gms03 build]$ bg 上述命令便又能在后台恢复运行了 [1]+ nohup scp -P22 -r wff_1@192.168.3.175:/home/wff_1/A20_linux /home/extend/wff_2/建立软连接:(相当于windows的快捷方式)
ln -s a b //其中a是源文件名,b是连接文件名删除软连接
rm -rf b //注意不是 rm -rf b/建立硬连接:
ln a b修改system内容后单独编译打包刷机固件的命令:
make systemimage-nodepsLinux-vim替换命令 写代码时,难免需要替换一些字符串,vim的替换命令如下:
#替换每一行的第一个a :%s/a/b/ #全部替换 :%s/a/b/g #替换/时需要转义"/"编译时边显示边存储编译信息
make –j24 2>&1 |tee build.logFind应用实例(查找最近修改的文件)
返回最近24小时内修改过的文件: find ./ -mtime 0 查找最近30分钟修改的当前目录下的.php文件 find . -name '*.php' -mmin -30 查找最近24小时修改的当前目录下的.php文件 find . -name '*.php' -mtime 0 查找最近24小时修改的当前目录下的.php文件,并列出详细信息 find . -name '*.inc' -mtime 0 -ls 查找当前目录下,最近24-48小时修改过的常规文件。 find . -type f -mtime 1 查找当前目录下,最近1天前修改过的常规文件。 find . -type f -mtime +1Linux查看命令行历史命令记录(默认1000条命令历史 *** 作记录)
history history -w history.txt拷贝的时候,自动创建参数中源文件的路径:
cp --parents parentdir1/parentdir2/sourcefile destdir/ 这样拷贝的时候,会在目标路径中创建源文件参数中的所有父目录层级(不止是一层父目录),然后将源文件拷贝进去。查找指定时间段创建的文件(搜索指定时间段内创建的所有文件)
#!/bin/bash begintime=`date -d -1hour +%T` echo $begintime endtime=`date +%T` echo $endtime find -name '*.jpg' -newermt $begintime ! -newermt $endtime 例子: find -name '*' -newermt 01:28:49 ! -newermt 03:28:49windows下查看局域网内所有主机的IP和mac地址:
arp -aLinux下拷贝文件夹并过滤不想要的文件或目录( cp 指定不拷贝内容 )
rsync -a --exclude=.git --exclude=.repo /extend01/ssd/MT8735_repo_extend01 ./ "--exclude"排除规则 使用"--exclude"选项指定排除规则,排除那些不需要传输的文件。 [root@xuexi tmp]# rsync -r -v --exclude="anaconda/*.log" /var/log/anaconda /var/log/audit /tmp sending incremental file list anaconda/ anaconda/syslog audit/ audit/audit.log sent 3365629 bytes received 58 bytes 6731374.00 bytes/sec total size is 3365016 speedup is 1.00 上例中只排除了anaconda目录中的log文件,但是audit目录中的log文件是正常传输的。 注意,一个"--exclude"只能指定一条规则,要指定多条排除规则,需要使用多个"--exclude"选项,或者将排除规则写入到文件中,然后使用"--exclude-from"选项读取该规则文件。 另外,除了"--exclude"排除规则,还有"--include"包含规则,顾名思义,它就是筛选出要进行传输的文件,所以include规则也称为传输规则。它的使用方法和"--exclude"一样。如果一个文件即能匹配排除规则,又能匹配包含规则,则先匹配到的立即生效,生效后就不再进行任何匹配。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)