work备份

本文详细介绍了Ubuntu系统中Snap包的管理,包括列出已安装的Snap包、搜索和安装新包、更新和还原包以及删除Snap包的命令。此外,还列举了一些常用的Linux命令,如查看设备信息、开启开发者模式、修改文件名、adb相关操作以及系统日志分析等,内容涵盖系统维护、应用管理和调试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用命令:
连接设备机:On the end
dumpsys SurfaceFlinger

打开开发者模式: am start -n com.android.settings/.Settings
开发者向->境界表示
DOP 进入ACC OFF履历:设定项:左右中
启动DebugMode时:右左右左中,如果Navi起不来时,输入密码未成功会退出:
过滤掉activity:解决办法:ps | grep navi
pm disable jp.pioneer.car.navi jp.pioneer.ceam.naviproxy
debug Mode 密码:
19AJ:ON DEVDEBUG
DOP:TARGETLOCK ON /17DOP:ON DEVDEBUG
Cyber:INNOVATI ON
解锁SD卡命令:mmc passwd -e 1(插空卡 格式化)
设置不锁卡:TestMode 55项Mode Change,按menu,显示Result[OK]Please turn off the power off,不关闭电源拔卡.
模拟键盘:input keyevent 237Mode(keycode)
模拟输入text:input text password
图标路径:
19AJ/Source/device/pioneer/packages/jupiter_ui/JCommonlib-res/res/drawable-mdpi
资源文件目录:Cyber/device/pioneer/add_on/overlay_jupiterui/frameworks/base/core/res/res/values
grep -nr “关键字” 文件 or grep -nr “关键字” 查找当前目录下的所有文件包含"关键字"
墓碑文件:data/o…
TestMode打开bsp开关:\wind\pset\CarAudio\After Caraudio\2018\18.5DOP\05_Release\IMX\BootLoader_Release
修改文件名"BOOTLOADER_1"为"BOOTLOADER" TestMode设定项:9.write Program Forcedly->2.Write BootLoader

git push 远程主机名 本地分支名 远程分支名:
git push origin master :refs/for/master
git push origin tamago/master:refs/for/tamago/master

查看机型:getprop | grep pro
getprop | grep des 查看机种
getprop | grep mode:查看启动方式
查看机型:getprop | grep -E sysdconf.0.parse.model
grep -rn “过滤”
grep -rn “过滤” 路径

列出已经安装的snap包

sudo snap list

搜索要安装的snap包

sudo snap find

安装一个snap包

sudo snap install

更新一个snap包,如果你后面不加包的名字的话那就是更新所有的snap包

sudo snap refresh

把一个包还原到以前安装的版本

sudo snap revert

删除一个snap包

sudo snap remove

车种选择密码:79314862
终端修改文件名:mv Av.apk mAv.apk

截取车载机画面:screencap /(udisk/extdata)/1.png,bmp,jpg

ViewID.SYS_VIEW_ID_MENU_SYSTEM_DEALERMENUTTOP :进入ACC OFF履历,车种选択设定画面ID
am broadcast -a “Action”:终端发送广播
高速启动设置:TestMode->Set Boot SubMode
启动显示地图更新,机器启动不起来时:rm /mnt/backup_flash/.version
打开串口:Consol Setting
JD616 16DOP
JD673 17DOP
JD676 18DOP

从USB中运行APK:
(1):DOP:从USB中安装Av.apk
step1 挂载: mount -o remount /system
step2 拷贝: cp udisk1/aap/Av.apk system/app
step3 修改权限: chmod 777 system/app/Av.apk
(2):19AJ:更新Apk(使用脚本): . udisk/ runRCApkOdex.sh Av.apk
(3):Cyber:替换APK

mount -o rw,remount /system
cp udisk1/aap/Av.apk system/priv-app/Av/
(4):ADB替换APK:
adb remount
adb push SystemView.apk /system/app
adb shell
sync

adb install [-r] [-s] file
-r:表示重新安装该apk包
-s:将apk包安装到sd卡上,默认安装到内部存储器上。
adb unistall [-k] test.apk
-k:表示只删除该应用程序,但保留该程序所用的数据和缓存目录。
am start -n jp.pioneer.ceam.diag/.screens.screen.MM_13_01_01_01

更新整个项目代码全编命令:
repo sync
repo forall -c git pull

AJ全编代码:
source build/envsetup.sh
lunch 4
make clean
make update-api
make -j4

DOP全编代码//编译Release DOP:lunch 4(eng) lunch 5(user)
source build/envsetup.sh
lunch 4
make clean
make update-api
make -j4

编译add_on:
(4) 生成add-on压缩文件,/out/host/linux-x86/sdk_addon,简单使用的话,直接使用压缩包里的jar包即可,完整编译执行第5步;
make -j4 PRODUCT-nx410_addon-sdk_addon
(5) 生成repository.xml
development/build/tools/mk_sdk_repo_xml.sh out/host/linux-x86

Cyber机器:全编命令
. build/envsetup.sh
lunch 3
make clean
make update-api -j8
make -j8
make updatefile

Cyber替换Av.apk 或者在Cyber/device/pioneer/packages/jupiter_ui/Av:mm
make clean-Av -j8
make Av -j8
Cyber高速替换apk.
Cyber odex文件存放目录:system/priv-app/Av/ont/

819B全编代码命令:
repo forall -c git checkout出tamago/daily
repo forall -c checkout -b tamago/release/0.010010
make clean
. build/envsetup.sh
lunch 9
make update-appi
mak

1.本地全编译一次,并确认可以生成文件:out/target/product/cyber_1T/system/priv-app/Av.apk
2.修改Av工程代码,方便前后对比确认替换成功
3.进入全编译目录(代码根目录):如:Code/19CyberCode,执行命令:sync
4.执行命令:cd device/pioneer/packages/jupiter_ui/Av, 完成后执行命令: mm
5.以上4步执行完成,确认有以下信息输出:Install: out/target/product/cyber_1T/system/priv-app/Av/Av.apk,此时Av.apk已更新
6.取out/target/product/cyber_1T/system/priv-app/Av/Av.apk提换,进入确认

抓取snatshop高速镜像:删除.version文件
cd /mnt/backup_flash/
ls -a
rm -rf .
sync

初始化bsp:bsp init
设置启动模式:bsp set -s 0/1/2 0:Normal 1:catch_snapshot 2:warp_boot
设置查看log:bsp set -d 1
设置机型:bsp set -lcd 0/1/2
bsp 完整用法(进入bsp, 输入 help bsp set)
bsp get 查看当前值

修复Hooks:/home/wangni/work/Cyber/19avh-scripts执行sudo ./fix-commit-id.sh

在minicom串口的根目录下用以下命令
1.挂载: mount -o remount /system
2.拷贝: cp udisk/Av.apk system/app
3.修改权限: chmod 777 sysytem/app/Av.apk
执行完3之后,重启车载机后在执行4.
4.启动apk: am start -n com.example.test/com.example.test.mainActivity
手动替换apk
1.高速版Release需要用“bsp set -s 0”切换至低速版;
1.高速版Release需要用“bsp set -s 0”切换至低速版;
2.mount -o remount /system 挂载系统,获取权限;
3.删除 /system/app 目录下同名apk,user版Release还需要删除同名的odex文件;
4.将编译好的新apk放到/system/app目录下,用chmod更改对应apk文件的权限为777,chmod 777 xxx.apk;
5.用sync命令同步,然后重启车载机。

SD卡烧写:
Daily_Release:没有高速启动,Weekly方法类似参照开发手册
进入Release下找到.sh脚本
1.cd DL_v0.000604/
1.sudo ./km500_mksdcard_no_snapshot.sh -w /dev/(sdb或sdc)
加-w:不烧地图.会烧的快,不加-w会烧地图 最好加-w,不要烧地图
2.sudo ./km500_mksdcard_no_snapshot.sh /dev/sd

输入密码 进行烧写 中间提示插拔操作
Daily下只有一个脚本,Weekly会有两个
特殊机型切换启动模式(高,低速)最好不要执行bsp init(初始化操作)
如误操作后 则执行 1.bsp init 2.mmc passwd -e 1(插空卡 格式化)
后SD烧卡
19AJ:TestMode升级:进入TestMode,或者cp TestMode.key
Mode短压,长按Mode,vol+3,vol-3,放开Mode,长按back,vol-3,vol+3,放开back,按下Home
1、[MODE]キー短押し(押し⇒離す)
2、[MODE]キー押したまま
  -[Vol+]キーを 3 回押す
  -[Vol-]キーを 3 回押す
3、[MODE]キーを離す
4、[BACK]キー押したまま、
  -[Vol-]キーを 3 回押す
  -[Vol+]キーを 3 回押す
5、[BACK]キーを離す
6、[HOME]キー押し
DOP:TestMode:短按NAVI,长按NAVI,左4右2左3右1
Cyber:TestMode:短按NAVI,长按NAVI,左2右3左1右4

查看:getprop | grep pro
查看SOC版本:getprop | grep ucom
sudo apt-get install nautilus-open-terminal
安装ubuntu 终端 快捷方式
sudo apt-get install minicom
安装minicom
minicom串口命令相关:
logcat -m 0xffffffff -l 15 -e 1 打开车载机Log
logcat *:e 显示error级别的错误

bsp 完整用法(进入bsp, 输入 help bsp set)
bsp get 查看当前值

bsp命令(车载机刚上电启动时连按回车会进入bsp)
bsp init 初始化
bsp set -s 0 低速
bsp set -s 2 高速
bsp set -d 1 — logcat 打开串口输

目前对应策略是一套代码,一次编译通过设定不同的启动参数达到适配不同种类的LCD,现展开切换方法如下,
1.bsp命令(车载机刚上电启动时连按回车会进入bsp,(连上minicom之后)),开机按任意键进入bootloader命令行模式;
2.输入以下命令更改相应的LCD参数.修改机型:bsp set -lcd 机型编号
1.更改分辨率为800480 尺寸为175.2105.12或者175.1098.5: bsp set -lcd 0
2更改分辨率为840
480 尺寸为156.24 81.6 :bsp set -lcd 1
3.更改分辨率为800
480 尺寸为 224*126 : bsp set -lcd 2
3.重启
另外使用命令”bsp get”中的”LCD Type” 项目可以查看当前设定值,如发现设定值与当前自己使用的LCD不相符合,可以通过以上命令更改.
bsp init 初始化
bsp set -s 0 低速 1 高速启动
bsp set -s 2 高速
bsp set -d 1 — logcat 打开串口输入

18d5dop/WL_v1.010120

liunx命令 :
ls -a --all 查看所有
ls -X 根据扩展名排序
ls test.*
ls *.txt 可以利用ls在某目录下查找文件
ls -a:查看隐藏文件

获取16AVH+N代码流程:

  1. 安装repo
    git clone ssh://gerrit/15mid/tools/repo.git
    cd repo
    sudo cp repo /usr/bin
    git checkout stable
    chmod a+x /usr/bin/repo
    rm -rf …/repo

2.拉取16AVH+N代码
repo init -u ssh://gerrit/16avh+n/platform/manifest.git -b 16AVH+N
(获取url目录下的manifest文件,文件的内容即为所有被git管理的仓库列表)

repo sync
(代码更新,第一次运行相当于git clone)
repo start 16AVH+N --all
(创建新的branch分支。)
16AVH+N的服务器:smb://172.26.10.2/pset/CarAudio/After Caraudio/2016/16AVH+N
3.修复hooks
cd Cyber or 19AJ or DOP/14avh-scripts
sudo ./fix-commit-id.sh

4.导包
工程项目上右键进入 Build Path 选项,再进入 Configure Build Path选项
进入 Java Build Path 选项,接着进入 Libraries 选项,点击 Add External JARs
当所配的工程文件为 Av 或 SystemView 时,导入 data/layoutlib.jar 和 jcommonres.jar 两个包;
其他的工程文件则只需导入 jcommonres.jar
提示:当导完包后还有报错,则需进入顶部标题栏的 Window 下的 Preferences ,再点击 Android ,将SDK Location
修改为工程的SDk的路径

拷代码:
新建文件夹,在文件夹内打开终端.
跑1. repo init –u ssh://**
2. repo sync –c
3. repo start ** --all
4. 重新拷贝SDK,和addon
5. 打开eclipse,添加代码路径,添加SDK:windowspreferencesAndroid, eg:/home/wangni/work/SDK.bulid pathConfigur bulid pathjava bulid pathLibrariesAdd External JARs

更换SDK

  1. 拷贝新的SDK,解压,将文件copy到自己的SDK路径,
  2. 拷贝sdk_addon,将sdk_addon提取到SDK下的add-ons,继续解压sdk_addon,进入libs文件夹,将layoutlib.jar和platform_library.jar拷贝到add-ons下,
  3. 之后可以删除sdk_addon其他文件夹.

19Cyber SD卡烧地图:
mount -o rw,remount /system
sh sdcard1/transfer_all.sh

DOP烧地图 cd work/MAP/
sudo chmod -R 777 DOP/*
sudo cp -R DOP/* media/wangni/EXDATA/

19AJ更新地图:
AVIC机器更新内藏地图:更新手顺:
1) 找到相应机型的压缩文件,拷贝到本地,解压缩。
\2019\19AJ\99_iGO
密码:19AVN
2)将UpdateFolder文件夹copy到 U盘根目录下。
3)将Copy_Script.sh拷贝U盘U盘根目录下,并将U盘插到USB1口。
4)通过串口执行sh Copy_Script.sh脚本。cd udisk
需要等待一段时间,等到光标再次出现说明执行完毕。。。
5) 将Licence文件拷贝到U盘根目录下,并将U盘插到USB1口。
\2019\19AJ\99_iGO\18Q2 Demo license
6)通过串口执行将所有licence文件拷贝到车载机以下目录。
cp -r 源目录/* 指定目录
源目录:udisk/18Q2 Demo license
指定目录: /extdata/iGO/license
7)修改licence文件权限。
chmod -R 777 /extdata/iGO/license
8)重启车载机
请把使用的AVN机器更新一次,确 保igo可以使用。
查看空间:df -h extdata/

Linux系统查看JDK路径
[root@localhost ~]# java -version
java version “1.7.0_51”
OpenJDK Runtime Environment (rhel-2.4.5.5.el7-x86_64 u51-b31)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
[root@localhost ~]# which java
/usr/bin/java
[root@localhost ~]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 9月 6 22:51 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 72 9月 6
22:51 /etc/alternatives/java -> /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre/bin/java
查看文件test.log的编码格式:file -i /opt/test.log
test.log的字符编码转化为UTF-8编码,并且重新输出到test1.log:
iconv test.log -f iso-8859-1 -t UTF-8 -o test1.log --verbose
mount -o remount rw /udisk 挂载
cal 查看日期
date 查看日期
history -10 查看10个历史命令
find -name “文件名” 查找文件
whereis “文件名” 根据文件名搜索二进制文件、手册页文件或者源代码文件
more 和 less 查看文件的内容。nautilus out/target/product/m2n/system
head 和 tail加行数从头或者尾显示文件内容。
vim 中的复制和粘贴 :qw!
复制 先进入试图模式 数字 + yy 表示从光标开始到数字行结束
粘贴 先进入试图模式 p 表示从光标开始向下粘贴
grep
ls -l | grep ^d 表示查找d开头的文件或目录
man -w ls 查看命令所保存的文档
diff比较两个文件的不同之处。
挂载文件
挂载文件
sudo mount 要挂载的文件 挂载路径。
ps 查看进程
kill 杀死进程
ifconfig:查看IP地址

grep -nr “关键字” 文件 or grep -nr “关键字” 查找当前目录下的所有文件包含"关键字"
find ./ -name “File” 查找某个文件名
$ sudo update-java-alternatives -s java-6-oracle
or
$ sudo update-java-alternatives -s java-7-oracle
or
$ sudo update-java-alternatives -s java-8-oracle

JDK下载版本
sudo apt-get install openjdk-7-jdk
sudo apt-get install openjdk-8-jdk
切换JDK,不添加配置文件才可以切换成功,sudo vim ~/.bashrc
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
再次查看 java jkd 版本
java -version
javac -version
javadoc -J-version
java version “1.6.0_45”
Java™ SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot™ 64-Bit Server VM (build 20.45-b01, mixed mode)

注:之前通过解压配置环境变量的方式安装jdk8,切换jdk时不能使用 sudo update-java-alternatives -s 命令,
使用sudo update-alternatives --config java命令选择java版本时候,
java版本虽然改变了,但是javac、javah、jar等文件的路径还是openjdk7的,
如果希望一直,得将文件一一映射,经实践,那种方法不可靠。
用上述方法,安装的多个jdk,不需要配置环境变量,通过切换命令,即可达到目的。

另外ubuntu安装openjdk7的命令:
sudo apt-get install openjdk-7-jdk
查看openjdk的安装路径:
dpkg -L openjdk-7-jdk
decu2是T系 CDU 一个自动升级的安装文件,如果你要升级,可以直接将文件拷到里面。
meum2w是 meu通用的一个自动。。。。。
dcum2n是L系 DCU 一个自动升级的安装文件,如果你要升级,可以直接将文件拷到里面。
cpkp -i TDHome.apk

windows下安装的jdk,不能使用javac:
很有可能是因为环境变量PATH没有设置。
解决方法:
在cmd下用:
set path=%path%;%JAVA_HOME%\bin
javac xxx.java
这样就可以编译了。

关联:
指的是模型元素之间的一种语义联系,是类之间的一种很弱的联系。
关联可以有方向,可以是单向关联,也可以是双向关联get。可以给关联加上关联名来描述关联的作用。
关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。
可以通过关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接。
对于关联可以加上一些约束,以加强关联的含义。
关联在C++中呈现为:

class A{…}
class B{ …}
A::Function1(B &b) //或A::Function1(B b) //或A::Function1(B *b)

即一个类作为另一个类方法的参数。

在C++语言中,从实现的角度讲,聚合可以表示为:

class A {…}
 class B { A* a; …}

即类B包含类A的指针;

而组合可表示为:

class A{…}
 class B{ A a; …}

即类B包含类A的对象。

填票模板 14-620-1-11456
http://172.26.186.14/ap/

挂起的系统ons 1325/1324 1098(gbook wifi)
meu的bandons  1276/1277
timer的modeinons 191
短信系统ons MSG_17_01_02_23 483
reading disk带ons 69

\ibigbear\17Cy\KWG_Repro
smb://ibigtom/group/VR_ReleaseData

log打时间
logcat -s TDHome:D -v time

1、make -j8 后面跟makefile文件中的LOCAL_MODULE:****
2、如果是.os文件cp到U盘
3、将生成的.os 文件推到 /usr/lib文件下
4、便可以打log查看了

release 路径
smb://ibigbear.storm/release/17Cy/Suntec_Release/MileStone/17CY_T1T2_Stable/RELEASE/DL_170727

(echo “SystemUI openONS 18”
echo “SystemUI openONS 2”
echo “SystemUI closeONS 2”)| ngtool

repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17Cy/MileStone/17CY_T_Stable
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17Cy/Demo/T1T2_11876
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17Cy/MileStone/17CY_T0_Stable_010B
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17cyplus/master/l1l1.5plus
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17cyplus/master/l2plus
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17cyplus/master/temvplus
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17cyplus/master/t0plus
repo init -u ssh://igerrit.storm:29418/Src/17Model/17Cy/manifest -b 17Cy/MileStone/L1L1.5_Stable
推.os文件
1.mount -o remount rw /system
2.cp libQmlFramework.so /usr/lib/
3.sync

ngtool

SystemUI getONSStatus 10

logcfg -c NGONSStatus:D
logcat -s NGONSStatus:D -v time

release 路径
smb://ibigbear.storm/release/17Cy/Suntec_Release/MileStone/17CY_T1T2_Stable/RELEASE/DL_170727

进入u盘 /media/lisiwei/敲击tab键

make -j8 TDHome 2>errorLog.txt //将error错误输入到errorLog.txt文档当中。

estHome.application.entry1

apptool start -entry *** ***

进入igerrit

http://igerrit/#/c/324976/1
http://172.25.24.102/anyplace/server.pat3
抓取snatshop(高速)

把别人的提交的代码拉取到本地,不用切分支直接进入到那个提交文件下面,check pick 就可以了。

自己全编译升级 建立Dcu2文件,放入 system.img uramdisk.img userdata.img ,然后在服务器上copy对应的updakey文件。

装载TSL
1.到smb://ibigtom.storm/model/17Model/17Cy/90_TSL/UIE里面找装载文件。

装载Demo
apptool start net.suntec.app.TDHome.application net.suntec.app.TDHome.application.entry1

看车参:
var/system/vehicleinfo/
vi Car.json

mount -o remount rw /udisk 挂 sta载udisk
cherr pick 从一个分支提交到另一个分支,在cherry pick下直接搜索要提交的分支
wldebug 截图命令
选择 顺序
power_reset 重启DCU
gnome-screenshot -a 截图命令
SystemUI openInterrupt 打开中断
krdc 打开远端控制

(17时55分53秒) ruanxing: provider_tool content://system/info -u -kv 1 vehicle/microphone -s valid 连接蓝牙
(17时57分40秒) ruanxing: provider_tool content://system/info -u -kv 1 vehicle/videorestrict -s on
(17时59分32秒) ruanxing: provider_tool content://system/info -u -kv 1 vehicle/operestrict -s on    走行

中负荷
sh -c “while : ; do : ; done”
高负荷
sh -c “while : ; do : ; done” & 后台跑造成高符合
grep -E ‘123|aaa’ filename grep 匹配两个关键字

//取keyTrans
testdiagservice
5
12

//遇到编译不过的lib库,可以sudo apt-get install lib库 重新装一下
ctrl + L 复制目录的快捷键
ctrl + H 查看隐藏文件
// repo start master --all
将所有的分支签到master

//直接进入到桌面目
nautilus

//修改车参
mount -o remount -rw /system
进入 /var/system/vehicleinfo
busybox vi vehicleinfo.prop

// 修改国家
mount -o remount -rw /system
进入 /system
busybox vi build.prop.

// 解决connot find -l***
locate lib**

//liunx 截图快捷键
shift + PrScrn

//切頁面的快捷鍵
shift + AIt + Tab

//meu DCU 连接不上输入命令 Navi
handler_tool NHAvcLanHandler -m 1

//截图全屏
SysRq

//进入debug模式
desp -d 1

//清除编译
make clobber

//更新API
make -j4 update-api

//删除软件命令
sudo apt-get – purge remove 软件名

//安装命令
sudo apt-get install 文件名

//安装repo 每一个新的项目都走一次 把
~$ git clone ssh://gerrit/16avh+n/tools/repo.git
~$ cd repo
~/repo$ git checkout stable

~/repo$ sudo cp repo /usr/bin #将repo放到系统目录下,方便以后使用
~/repo$ sudo chmod a+x /usr/bin/repo
~$ rm -rf repo

//切換漢字简体和繁体
shift + ctrl + f

synergy:两台电脑鼠标同步工具

//终端打开文件目录
nautilus .
//19AJ 截图
前屏:screen -d 0 /extdata/xxx.png
后屏: screen -d 1 /extdata/xxx.png
//adb
1 adb devices
2 adb shell //adb 登陆
//本地adb 推到实机
1.adb remount
2.adb xxx(文件) /system/xx(目录)/

// ecplise 查看行号:ctr + F10
Cyber代码仓库
repo init -u ssh://gerrit/16avh+n/platform/manifest -b 16AVH+N
repo sync
repo start 16AVH+N --all

Unbutu安装gcc gcc-c++环境
1:sudo lsb_release -a
2:dpkg -l | grep g++
3:sudo apt-cache depends gcc-4.9
4:gcc -v

  1. 删除apache
    在命令行中输入:
    $ sudo apt-get --purge remove apache-common
    $ sudo apt-get --purge remove apache

2.找到没有删除掉的配置文件,一并删除
代码:
$ sudo find /etc -name “apache” |xargs rm -rf
$ sudo rm -rf /var/www
$sudo rm -rf /etc/libapache2-mod-jk

3.删除关联,这样就可以再次用apt-get install apache2 重装了
#dpkg -l |grep apache2|awk ‘{print $2}’|xargs dpkg -P

命令行下使用sudo minicom命令可以打开串口工具
命令行下使用sudo minicom -s命令可以打开工具的配置选项页
串口工具状态下,可以先按组合键Ctrl+A,释放,然后x命令正常退出minicom工具
按组合键Ctrl+A,释放后,与其他常用键组合使用,具有如下功能:
S键:发送文件到目标系统中
W键:自动卷屏。当显示的内容超过一行之后,自动将后面的内容换行。这个功能在查看单行内容比较长的信息时比较有用
C键:清屏
B键:浏览minicom的历史显示
启动,配置串口时要使用root权限。
非正常关闭minicom时,会在/var/lock下创建几个lck*文件,这几个文件会阻止minicom的运行,如果无法启动minicom可以删除这几个文件。

.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

快捷键:
Unbutu系统复制路径快捷键:Ctrl+L
ctrl+H 查看ubuntu下文件夹里面的隐藏文件
Ubuntu在终端下打开文件夹图形界面:nautilus /var/www/

连接服务器:ssh ni.wang@10.1.88.30
//远程登录
ssh lisiwei@:192.168.49.112

Ubuntu切换源:点击软件和更新 选择Ubuntu软件->下载自->选择中国源

eng/user/debug版本的区别:
log方面:
原则上user 版本只能抓到有限的log,eng 可以抓到更多的log,Debug 能力更强,推崇使用eng 版本开发测试
因user/eng 版本设置ro.secure不同,导致user 版本adb 只拥有shell 权限,而eng 版本具有root 权限
MTK System LOG 在ICS 以后,在user 版本默认关闭全部LOG, 在eng 版本中默认打开,以便抓到完整的资讯
在eng 版本上,LOG 量 >= user 版本的log 量,一些地方会直接check eng/user 版本来确认是否打印LOG
在eng 版本上,开启ANR 的predump, 会抓取ftrace,可以得到更多ANR的资讯
user 版本默认关闭uart, eng 版本默认开启uart
性能方面:
原则上进行性能测试请使用user 版本测试
user 版本为提高第一次开机速度,使用了DVM 的预优化,将dex 文件分解成可直接load 运行的odex 文件,ENG 版本不会开启这项优化
更少的LOG 打印,uart 的关闭,原则上user 版本的性能要优于eng 版本
aidl通信:
1.新建aidl接口文件;
IApplicationService.aidl{
int callSafePay(string name,int money);
}
2.创建服务类:
ApplicationService extends Service{
private class MyBinder extends IApplicationService.Stub{
实现aidl接口
@Override
public int callSafePay(String username, float money) throws RemoteException {
syso(name);
if(money>0){
return 500;
}else {
return 200;
}
}
}
3.创建客户端类:
MainActivity{
private IApplicationservive mIService;
private class MyApplication implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
System.out.println(“成功绑定到远程alipay服务上”);
mIService = IAlipayService.Stub.asInterface(service);
}

		@Override
		public void onServiceDisconnected(ComponentName name) {
 
		}
	}
	客户端调用接口:
	int reslut=mIService.callSafePay("张三",20);
}

GIT常用命令:
sudo apt-get install nautilus-open-terminal
安装ubuntu 终端 快捷方式
sudo apt-get install minicom
安装minicom
DUMP
dumpsys mediamanager.sourcemanagerservice

git相关:
git提交:remotes/16D5DOP/17D5DOP_MP
1:git status.
2:git checkout –b fenzhi1
git checkout -b 本地分之 远程分支
3:git add
4:git checkout master(本地分支);
5:git merge fenzhi1
7:git branch –D fenzhi1:强制删除
8: git branch --set-upstream-to origin/
:建立本地dev分支与远程与远程origin/dev分支连接
gitk 代码路径,代码树
配置别名:git config --global slias.st status

  1. 创建仓库
    git init:在一个文件目录执行该指令,会把该目录快速设置成git的代码仓库
    gir clone:从远程服务器clone工程,也会创建一个代码仓库

  2. 提交修改
    git status:查看当前仓库状态,会提示哪些文件发生修改,哪些内容需要add&commit
    git add 文件名,添加文件到仓库
    git commit –m “XXX”:将Add的文件添加注释并且提交到代码仓库
    git log:能查看到刚才提交的信息
    git log –pretty=oneline:git Id
    git reflog:查看reset回去的git log commit id
    git shortlog:将开发者操作按照姓名分组
    git commit –amend –m “XXX”:第二次提交代码.会覆盖第一次提交的

  3. diff比较不同
    git diff 文件名:显示指定内容的前后变化
    git diff HEAD:显示上次提交节点的差别
    git还支持第三方更强大的diff工具:Meld、beyond compare
    gitk:图形化的log记录,查看图形化的修改提交记录,后面可以追加文件名查看指定文件的修改提交记录

  4. 别名设置,简化log
    git config –global alias.lg “log –color –graph –pretty=
    format:’%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)

  5. Git回退
    git checkout XXX文件名:将未add提交的修改内容全部还原,如果执行add后修改的内容,执行该指令会修改到执行好add后
    git checkout –XXX文件名:能将Add提交的内容都回退掉
    git reset HEAD XXX文件名:文件从暂存区回退到工作区

  6. 回退版本
    git reset --hard log:HEAD~1:回退一个版本
    git reset –hard HEAD~5:回退5个版本
    hard参数:不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本
    也可以通过commit ID回退到对应版本
    git reflog:可以查看所有操作历史
    git rm Text.txt文件名:删除文件

  7. 文件暂存
    git stash:将当前本地代码缓存
    git stash lish:查看当前暂存内容
    git stash apply/pop:内容恢复,后者会删除记录,前者可以通过git stash drop stash{0}删除暂存记录 或者 git stash clear,清空所有内容.

  8. 查看本地分支:
    git branch -> 查看本地分支,显示颜色不同且带星号的是当前所在分支。-r显示所有远程分支,-a显示所有本地分支和远程分支
    查看分支:git branch
    创建分支:git branch
    切换分支:git checkout
    创建+切换分支:git checkout -b
    合并某分支到当前分支:git merge
    删除分支:git branch -d
    git branch -vv -> 查看本地分支及其对应的远程分支,显示颜色不同且带星号
    的是当前
    所在分支。
    git checkout file name
    git checkout remote branch

  9. 远程仓库
    git本地仓库和git远程仓库通信,需要SSH进行身份认证

git remote add:将本地代码库提交到远程仓库
git remote :查看远程仓库的信息;
git remote –v:显示更详细的信息
git clone git 地址:从远程仓库clone下来,新建一个本地仓库
10.其他
git reset 哈希 值 -> 回退到指定的版本,只保留源码,回退commit和add状态
git reset --soft 哈希值 ->回退到指定的版本,只回退commit状态,保留源码和add状态
git reset --hard 哈希值 ->回退到指定的版本,源码,commit,add状态全部回退, 本地修改会丢失, 慎用
哈 希值就是每次commit的标签,git log就可以看到,如果不想用哈希值,也可以用HEAD
HEAD ->最近一次commit;HEAD^1 ->上一次commit;HEAD^2 ->上二次commit

以上所有操作都是本地的。
git remote -v:查看提交的远程分支地址。
如果要提交到远程服务器,需要Push
git push XXX HEAD:refs/for/当前分支名
XXX 为每个项目特有的名称,每个项目不同,可按Tab填充,
当前分支名 为代码git仓库当前的分支名,可用git branch查看
-> push到一个临时分支,代码都需要Review的,Review完了以后,才会真正提交 上 去。
在http://172.26.10.56:8080/查看Review的状态。
在cgit(git 仓库)网址查看是否真正提交到服务器。

Git 冲突的解决:
在执行git pull命令时,如果和其他开发者在同一位置做了修改,可能会引起冲突,
如果修改已经commit,再git pull 出现同一位置冲突,在冲突时,产生冲突的文件会被标记,用git status命令可以看到;
没有出现同一位置冲突,但本地版本不是服务器最新版本,会出现本地commit记录与服务器不符而影响push。
发生这些情况都需要利用git reset将本地版本回退到与服务器一致的位置,解决冲突;再进行git pull,更新至最新;
然后重新依次进行git add、git commit、git push重新提交。

Git代码产生冲突时,推荐先将本地自己的修改备份,然后利用文件比较工具(例如Meld),将自己的修改和服务器最新版本进行比较,手动合并完成merge。

同一位置冲突,文件被标记的手动解决方法:
1.找到并打开产生冲突的文件
2.<<<<<<<(7个小于号)和=======(7个等于号)之间内容是当前开 发者的代码
=======(7个等于号)和>>>>>>>(7个大于号)之间内容是其他开 发者的代码
3.手动选择删除特殊符号及不需要的代码,完成merge工作
4.执行git add –u命 令把解决好冲突的文件添加到暂存区
5.执行git commit -m "log"命令进行merge提交
在整个项目全代码根目录下
repo forall -c + git命令 ->轮流进入项目的所有git仓库中执行这条git命令
Git是目前世界上最先进的分布式版本控制系统,git与svn的五个基本区别。它有以下特点:
分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上;
Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;
Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(作者, 日期, GPG等);
Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中, Git可以在同一个目录中切换不同的分支;
分支即时性 : 创建和切换分支几乎是同时进行的, 用户可以上传一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上传到GitHub中去;
分支灵活性 : 用户可以随时 创建 合并 删除分支, 多人实现不同的功能, 可以创建多个分支进行开发, 之后进行分支合并, 这种方式使开发变得快速, 简单, 安全。

git 的使用
git init 在当前路径下初始一个git仓库
git add 文件名 将该文件添加到暂存区里面去
git commit -m ‘文件名提交’ 将文件提交到git上去。这里的提交是注释,可以使用命令 git log 来查看你提交文件时带的注释。
git commit -m 一次性提交暂存区的所有文件
git status 来查看是否还有文件未提交
git diff 文件名 查看文件被改的内容。
git log 查看提交记录
git log --pretty=oneline 也是查看提交记录显示的内容少一点。
git reset --hard HARD^ 可以退回到上一次的提交版本。
git reset --hard HARD^^ 退回到上上一次的提交版本。
git reset --hard HARD ~ 55 退回到第55次的提交版本
git refolg 可以通过git reflog 查看我们退回后的版本号然后通过命令来恢复,
git reset --hard 版本号 恢复HEAD^后的文件。
git reset HEAD -filename 撤销git add操作的文件
git reset commit_id 撤销git commit 操作
git reset --soft HEAD^ 回滚一个commit
git rm --cached 撤销git add
git checkout 文件名 去除该文件上次的修改。
git checkout . 去除一个文件夹下的所有文件
git reset --soft commit_id 回退提交
如下
git reset --soft 051d0a640c47a8980ff6a18a5b3a87dd4b2d012d

git branch 查看分支:

git branch name 创建分支:

git checkout name 切换分支:

git checkout –b name 创建+切换分支:

git merge name 合并某分支到当前分支:

git branch –d name 删除分支:

git remote -v 查看远程信息,fetch抓取,push推送

git reset HEAD 加文件 取消掉不提交的文件
git reset --HEAD 返回上一次提交
git pull 更新代码
git reset HEAD . 废弃git add 的文件
git difftool
T系之间的代码可以通过 git fetch ssh:***** ***代指内容,进行更新提交。

git push aosp Leepi_MTK_E2:refs/for/Leepi_MTK_E2 android 提交代码
git push origin master:refs/for/17Cy/MileStone/17CY_T0_Stable 提交代码
git push origin master:refs/for/master 提交资料
git push 远程主机名 本地分支名 远程分支名:git push origin master :refs/for/master
切换到远端分支对应的本地分支
git checkout -b A remotes/origin/A
remote/origin/A 代表远端分支
A为本地分支。
如果要删除版本库中的文件
1.
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

如何提交代码
git branch t1t2plus origin/17cyplus/master/t1t2plus 建一个分支指向远端的分支
比如远端分支为 origin/17Cy/Demo/L2_Stable_Lexus_Touchpanel
本地分支是不能和远端分支同名的‘任意名’.
1.现在本地创建一个分支,不能和远端的分支名重复。
2.然后进入自己建的分支“git pull”,将自己的代码与远端分支的代码同步。
3.修改完代码,然后“git add -all”
4.“git status”,查看是否add成功。
5.然后,git commit-m “” 记得双引号
[票号] 英文的说明
Redmine/Any:票号  
Redmine/Any:
"
6.然后,git push origin 本地分支名:refs/for/远端分支名 不要"remotes/origin"

//查看文件的不同
git difftool 文件
git config -l
// 起模拟机
runemu
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git checkout -b 新的分支名 远程分支:git checkout -b 17D5DOP_MP 16D5DOP/17D5DOP_MP
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。

git reset --hard c5bde0f6f6661a7a5770df7d8a5fa823d14f7a59 不保留源码
git reset --soft c5bde0f6f6661a7a5770df7d8a5fa823d14f7a59 保留源码,回退到add.
Qt 快捷键
F4 在头文件和代码之间切换
F2 在声明和实现之间切换
Ctrl + k 打开定位器(locator)
Ctrl + Shift + f 打开全局搜索框
Ctrl + f 打开当前页面搜索框
Ctrl + 鼠标滚轮 缩放代码
Ctrl + 空格 | 视频]
Ctrl + / 注释或取消注释
Alt + 回车 快速修复,如为头文件中的方法添加实现,或为实现添加头文件中声明,为字符串增加多语言支持等,试一下。
Ctrl + Shift +r 右键菜单’Refactor -> Rename‘,查找替换当前工程的 特定字符,可以使类名或方法名,方便重构操作。
选中几行代码点Tab 几行代码同时缩进。

Alt+左箭头:后退
Alt+右箭头:前进
Shift+左箭头:逐个选中代码
Ctrl+上下箭头:上下翻动页面
Ctrl+Shift+上下箭头:按照方法名移动光标

Eclipse常用快捷键

  1. Ctrl+O:显示当前类的所有属性和方法
  2. Shift+Alt+W:当前类的位置,或点击Link with Editor
  3. Shift+Alt+→:选中一个方法名或参数,也可以选中if中的所有语句.相当于双击.
  4. Ctrl+T:找JAVA类
  5. Ctrl+Shift+G:找出调用某个方法的所有类.
  6. Ctrl+K/Ctrl+Shift+K:查找文件的下一个/上一个内容
  7. Ctrl+3:可以搜索Eclipse的常用功能
  8. Alt+Shift+N:在当前文件所在的包中创建一个任意类型的新类/Ctrl+N:想在任意目录下创建一个新类
  9. Ctrl+Shift+P:根据左大括号找到右大括号
  10. Ctrl+L:输入行数.跳转到特定行
  11. Ctrl+2+l:自动生成返回值
  12. Ctrl+Shift+l:Eclipse会在右下角弹出快捷键列表
  13. Ctrl+H 显示隐藏文件
  14. 生成getter和setter快捷键,eclipse:Shift+Alt+s Android studio:Alt+insert Mac系统:command+N

vim退出
:wq 或 ZZ 或 :x 保存文件并退出 vi
:q! 不保存文件,退出 vi

全编时会执行Cyber/build/core/MakeUpdate.py
grep MakeUpdate.py Makefile -n 显示所在行数
vi +1806 Makefile

删除.ssh/id_rsa和id_ras.pub
生成ssh:ssh-keygen -t rsa -C “wangni@iauto.com”
cat ~/.ssh/id_rsa.pub
重新设置完git user.name和user.email后需要执行:
重置用户信息:git commit --amend --reset-author
修改commit信息.

git代码提交步骤:
提交代码之前,先更新代码
git remote -v:查看origin
git checkout -b WL_v1.010120(分支别名) 16D5DOP/18d5dop/WL_v1.010120(来自于主分支)
git branch -a 查看主分支下所有分支
git branch -a | grep 1.010000 查找分支

  1. git status(先看跟本地代码有没有冲突)
  2. git stash (将本地代码缓存)
    git stash list(查看当前暂存的内容)
  3. git pull (提交代码先更新,远程连接好,只需要pull更新)
  4. git stash apply/pop 内容恢复,(后者会删除记录,前者可以通过git stash drop删除缓存的记录)
  5. git gui 变更描述,提交[19AJ][wangni][string]文言更新1.02
    git add 文件名
    git commit -m “”
    ****git commit --amend -m “番号名,变更描述” 追加提交,修改最后一次提交
  6. git push (项目名)develop HEAD:refs/forrefs/for/NX450(分支名)
    //查看文件的不同
    git difftool 文件 (meld)工具比较修改
    重新提交代码:
    git init :进入到项目目录下,输入 git init,完成创建代码仓库.执行后续的代码提交
  7. gitk 查看提交状态
  8. git log 能查看刚才提交的信息
  9. git status
  10. git reset HEAD (代码路径) 取消添加(已经add的代码,之后才能checkout)
    注意:HEAD代表当前版本,上一个版本用:HEAD,在上一个版本:HEAD^.
    *****:git reflog: 回退后,你突然后悔了,想回退回新的那个版本, 可是遗憾的是,你键入git log却发现没有了最新的那个版本号,
    git commit –amend修复最后一次更改
    键入:git reset –hard 版本号.
    git reset --hard c5bde0f6f6661a7a5770df7d8a5fa823d14f7a59 不保留源码
    git reset --soft c5bde0f6f6661a7a5770df7d8a5fa823d14f7a59 保留源码,回退到add.
  11. git branch
    git branch -vv:查看本地分支及其对应的远程分支,显示颜色不同且带星号*的是当前
  12. git stash list, git stash show stash@{0}
    git stash drop stash@{0}:删除缓存

13.如果本地修改的代码没有commit到服务器,可以使用下面命令:
repo forall -c “git reset --hard(重置commit) && git clean -fd(删除文件和目录) && git pull”
14.git commit --amend -m “番号名,变更描述”
15.删除远程文件的命令
git rm –r –cached dirname
git commit –m “delete file”
git push origin master
查看以前的代码:最近一次修改人和时间:git blame –L 2340,+100 文件路径
(Mode/src/jp/pioneer/ceam/mode/modescreen/AAM/SCR_AAM_Base.java)

//解决冲突
git stash //保留自己本地的代码
git pull // 拉取新的代码
git stash pop //返回自己的代码
git配置用户名
git config --global user.name “wangni”
git配置邮箱
git config --global user.email “wangni@163.com”
// 看一个文件的修改历史记录
gitk SystemView/res/layout/vehicle_notice_popup.xml
//查看git用户:user.name 邮箱
git config --global user.email
//更新远程分支的个数
git remote update

git stash save -a “messeag” 加保留信息
git stash list 查看
git stash apply stash@{id} 恢复
git stash drop stash@{id]  移除stash

git log   //用git log查看,提交记录
git reset 6367fc939d0d5e0826828e8b147fda0511b75b23 --soft //用reset回退到我上一版

追加提交

  1. git add “修改的文件”
  2. git commit --amend
  3. git push origin touchpanel:refs/for/17Cy/Demo/L2_Stable_Lexus_Touchpanel

强制回退:
git clean -df
git checkout .

ssh-keygen -t rsa -C yourname@example.com:创建SSH私钥和公钥,id_ras私钥用验证自己身份.id_ras.pub公钥用于向服务器表明自己的身份.

git stash /git pull /git stash pop
手动解决冲突后,git add 冲突文件,在git commit

git pull --rebase:更新代码并且修复本地与远端同一分支提交历史不一致/相当于执行git pull和git rebase

将本地feature分支的代码合并到主分支:当前分支切换到主分支,git merge feature,然后git status查看是否有冲突,需不需要手动解决

git reset --hard head^:将版本回退到合并前,也就是回退一个版本.

可以先将分支切到feature分支上,在feature分支上执行git rebase master:意思是以master为基础,将feature分支上的修改增加到master上,并生成新的版本.
如果失败,产生冲突,手动修改冲突,然后执行git add,git rebase --continue继续完成之前的rebase操作

https://www.jianshu.com/p/f7ed3dd0d2d8:git rebase的使用

(合并远程库和你本地的代码)执行命令:
git fetch 更新远程仓库文件,相当于是从远程获取最新版本到本地,不会自动merge
git rebase origin/tamago/master
git diff master origin/master 本地文件和远程仓库文件进行对比
git merge origin/master 自动合并
根据需求手动删除不必要的代码,修改完成git push到远程仓库

git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
git rebase --abort 来终止rebase的行动

git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

New:
adb shell settings put system user_rotation 3
更新玩完版本之后,需要过滤掉网络获取画面:
adb shell pm disable com.living.activate
串口用pm disable com.living.activate
需要先su一下,给一个root权限
打开开发者模式: am start -n com.android.settings/.Settings
设置屏幕亮度:settings put system screen_brightness 255
查看当前车机所有进程:ps -A
pm disable com.living.activate
settings put system user_rotation 3
settings put system screen_brightness 255

-2 车机中 snoop + brlinkd 路径 :adb pull data/brlink /home/wangni/workspace/log/
LVLog路径:adb pull /sdcard/lvlog /home/wangni/workspace/log/
墓碑文件:/data/tombstones/

ASE-2:adb pull data/brlink E:\log
ASE-2:adb pull /sdcard/lvlog E:\log
ASE-1:adb pull /data/misc/bluedroid/ .

命令启动MainActivity:adb shell am start com.liang.btmanagertest/com.liang.btmanagertest.MainActivity
am start -n jp.pioneer.ceam.diag/.screens.screen.MM_13_01_01_01

echo 0x12d1 > ~/.android/adb_usb.ini 写入0x12d1到abd_usb.ini文件
创建文件 touch /etc/udev/rules.d/70-android.rules
打开文件:gedit 文件
重启之后如果微信没有了,执行:
sudo dpkg -i /home/wangni/workspace/tools/deepin.com.wechat_2.6.8.65deepin0_i386.deb
安装deb文件:sudo gdebi teamviewer_amd64.deb
卸载deb文件:sudo dpkg -r ×××
卸载adb,adbd:sudo apt autoremove

安装和卸载VM的方法:https://www.cnblogs.com/yulongzhou/p/6798963.html

ASE-1/ASE-3机器:crash文件存放路径:adb pull /system/dropbox E:\log\

ASE-2升级:
Recovery 方式烧录:
1.将下载得到的 update.zip 拷贝到 U 盘根目录,将 U 盘接入到车机 USB
通过串口或使用 adb 执行命令:reboot recovery
2.
省略:1.车机通过串口连接到电脑,在电脑串口下按住键盘上的‘c’键,然后车机上
电。
省略:2.在 cmd 模式输入“fasbtoot 0”,然后回车,车机将进入 fastboot 模式;
需要安装fastboot:sudo apt-get install android-tools-fastboot

用串口/adb执行:reboot fastboot
连接之后在 PC 端使用sudo fastboot devices 命令可以确认当前是否存在 fastboot 设备;
执行:
sudo chmod +x fastboot.sh && sudo ./fastboot.sh

Windows 环境:
双击 fastboot.bat 文件

重启车机:reboot/shutdown

Ubuntu下adb devices出现??? no permissions:
adb kill-server,sudo adb start-server,

Ubuntu解决资源占用不可用
方法一:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
方法二:
ps -e | grep apt
sudo kill 进程号
安装vm:sudo ./VMware-Player-15.5.1-15018445.x86_64.bundle
删除vm
sudo vmware-installer --uninstall-product vmware-workstation
sudo vmware-installer --uninstall-product vmware-player
VM破解码:AU558-D0G0Q-M84HZ-UEM5E-Q3RXA

HFP协议通话 (Audio切换车机端和手机端)
A2DP:媒体音频协议
PBAP:蓝牙连接时,通话记录,通讯录导入
(Contact:所有通讯录SIM和Phone/SIM中的通讯录/phone中的通讯录/Calllog通话记录)

拷贝服务器上别人目录到自己目录:cp -R /data/ang.li/work/ work/

通讯录数据库目录:/data/data/com.android.providers.contacts/databases

车机声音录入
2.sse.dump
a.手动创建/data/sse_dump目录,并设置777权限
b.执行命令:setprop sse.dump 1,开始录制
c.执行命令:setprop sse.dump 0,结束录制
d.文件说明:
mic.pcm 原始2CH Mic
vcom.pcm 处理后的2CH Mic(pading关闭的情况下,数据为原始Mic)
vrec.pcm 原始2CH Mic + 4CH Ref
vdl.pcm 处理后的2CH BtIn(pading关闭的情况下,数据为原始BtIn)

正常手机:企业微信与微信:蓝牙音乐播放与不播放:手机端和车机端都可以录入声音
打开sco,手机播的音频应该是通过sco通道并不是a2dp经耳机播出的,并不会走手机的。
android原生带的gtalk可以实现你要求的功能,通话的时候使用sco(类似打电话),播放音乐的时候使用A2DP。但是我看还没有人把gtalk的源码研究出来是如何实现的,但是这也是一个方向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值