常用命令

Tcp/IP通信也是不安全的,在傳輸?shù)臅r(shí)候也可能出現(xiàn)漏洞

查看正在運(yùn)行的進(jìn)程

adb shell ps -A

|grep "messaging"

adb shell logcat -b

events |grep proc_died

(random accessmemory) RAM=運(yùn)行內(nèi)存,(Read-Only Memory) ROM=儲(chǔ)存內(nèi)存=EMMC(閃存)

手機(jī)的運(yùn)行內(nèi)存是指運(yùn)行程序時(shí)存儲(chǔ)或者暫時(shí)存儲(chǔ)的地方,而CPU是用來(lái)計(jì)算的支救。

  RAM:運(yùn)行內(nèi)存乍楚。RAM越大,手機(jī)可運(yùn)行的APP應(yīng)用程序越多,RAM越大手機(jī)運(yùn)行速度越流暢(目前基本是2GB夠用菩咨、3GB流暢捌显、4GB用的更爽)茁彭。

  ROM:儲(chǔ)存空間。ROM越大扶歪,手機(jī)儲(chǔ)存的文件數(shù)量越多理肺,ROM的大小(16GB击罪、32GB哲嘲、64GB等)不影響手機(jī)運(yùn)行速度。

  ROM一般包括:系統(tǒng)空間+用戶(hù)安裝程序空間+用戶(hù)儲(chǔ)存空間三個(gè)部分媳禁。

cpu當(dāng)前頻率節(jié)點(diǎn)

adb shell cat

proc/cpufreq/MT_CPU_DVFS_LL/cpufreq_freq

adb logcat |grep -iE"gcm|gms" --color? //過(guò)濾關(guān)鍵字眠副,并且顏色標(biāo)記顯示

——修改前[pm.dexopt.boot]: [verify] [pm.dexopt.ab-ota]:[speed-profile] [pm.dexopt.shared]: [speed] [pm.dexopt.install]:[quicken] [pm.dexopt.inactive]: [verify] [pm.dexopt.bg-dexopt]:[speed-profile] [pm.dexopt.first-boot]: [quicken] ——修改后[pm.dexopt.boot]: [speed] [pm.dexopt.ab-ota]:[speed-profile] [pm.dexopt.shared]: [speed] [pm.dexopt.install]:[speed] [pm.dexopt.inactive]: [verify] [pm.dexopt.bg-dexopt]:[speed-profile] [pm.dexopt.first-boot]: [speed]

淺談Android內(nèi)存管理https://www.cnblogs.com/lianghe01/p/6617275.html

adb shell getprop |grepdalvik.vm.heapsize當(dāng)java進(jìn)程申請(qǐng)的java空間超過(guò)閾值時(shí),就會(huì)拋出OOM異常(這個(gè)閾值可以是48M竣稽、24M囱怕、16M等,視機(jī)型而定)

應(yīng)用程序如何繞過(guò)dalvikvmheapsize的限制?

對(duì)于一些大型的應(yīng)用程序(比如游戲)毫别,內(nèi)存使用會(huì)比較多娃弓,很容易超超出vmheapsize的限制,這時(shí)怎么保證程序不會(huì)因?yàn)镺OM而崩潰呢岛宦?

(1)台丛、創(chuàng)建子進(jìn)程

創(chuàng)建一個(gè)新的進(jìn)程,那么我們就可以把一些對(duì)象分配到新進(jìn)程的heap上了,從而達(dá)到一個(gè)應(yīng)用程序使用更多的內(nèi)存的目的挽霉,當(dāng)然防嗡,創(chuàng)建子進(jìn)程會(huì)增加系統(tǒng)開(kāi)銷(xiāo),而且并不是所有應(yīng)用程序都適合這樣做侠坎,視需求而定蚁趁。創(chuàng)建子進(jìn)程的方法:使用android:process標(biāo)簽

(2)、使用jni在nativeheap上申請(qǐng)空間(推薦使用)

nativeheap的增長(zhǎng)并不受dalvikvm heapsize的限制实胸,從圖6可以看出這一點(diǎn)他嫡,它的nativeheap size已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了dalvikheap size的限制。

只要RAM有剩余空間庐完,程序員可以一直在nativeheap上申請(qǐng)空間钢属,當(dāng)然如果RAM快耗盡,memorykiller會(huì)殺進(jìn)程釋放RAM假褪。大家使用一些軟件時(shí)署咽,有時(shí)候會(huì)閃退,就可能是軟件在native層申請(qǐng)了比較多的內(nèi)存導(dǎo)致的生音。比如宁否,我就碰到過(guò)UCweb在瀏覽內(nèi)容比較多的網(wǎng)頁(yè)時(shí)閃退,原因就是其nativeheap增長(zhǎng)到比較大的值缀遍,占用了大量的RAM慕匠,被memorykiller殺掉了。

(3)域醇、使用顯存(操作系統(tǒng)預(yù)留RAM的一部分作為顯存)

使用OpenGL textures等API台谊,texture memory不受dalvik vm heapsize限制,這個(gè)我沒(méi)有實(shí)踐過(guò)譬挚。再比如Android中的GraphicBufferAllocator申請(qǐng)的內(nèi)存就是顯存锅铅。

adb shell

screenrecord /sdcard/test.mp4

提MTKcase時(shí)務(wù)必提供log,如果log太大不能在A(yíng)LM系統(tǒng)中放入减宣,需通過(guò)如下的MTK網(wǎng)址上傳log盐须,注意下面紅框的部分

https://transfer.mediatek.com/Default/ShareFile

郵件:mtkeservice@mediatek.com

adb logcat |grep"proposedRotation \| Screen"過(guò)濾多個(gè)關(guān)鍵字,要加轉(zhuǎn)義字符

adb logcat |grep -iE"gcm|gms" --color? //過(guò)濾關(guān)鍵字漆腌,并且顏色標(biāo)記顯示

SystemProperties.getBoolean("ro.config.remove.focusmode",false);如果取不到ro.config.remove.focusmode擇默認(rèn)值就為false.反之為ro.config.remove.focusmode的值

systrace抓取方法:

external/chromium-trace

python systrace.py

-l

python systrace.py

-t 10 -o chrome.taobao.html gfx input view webview wm am sm hal app

res dalvik rs hwui perf bionic power pm ss database network adb pdx

sched freq idle load memreclaim binder_driver binder_lock

參考范例:https://www.cnblogs.com/yezhennan/p/5442031.html

adb shell dumpsyswindow ->尋找focus關(guān)鍵詞贼邓,看當(dāng)前在那個(gè)進(jìn)程上面

mtk項(xiàng)目

“應(yīng)用/系統(tǒng)”crash/anr導(dǎo)log方法:

1.獲取dropbox.txt查看crash/anr

? ? adb shell

dumpsys dropbox --print > dropbox.txt

2.獲取bugreport.zip查看

? ? adb bugreport

3.pull aee_exp文件

? ? adb shell

? ? cd

/data/aee_exp

? ? ls -al

? ? check db.xx.xx

退出adb

? ? adb pull

/data/aee_exp/db.xx.xx .

通過(guò)adbshell am force-stop包名 來(lái)殺掉這個(gè)程序

測(cè)量腳本:http://developer.tclcom.com/knowledgeshare/KMS/cd_swd2/performance/common_tool_set/android_go_check_req_tool/


測(cè)試需求:http://developer.tclcom.com/knowledgeshare/KMS/cd_swd2/performance/GOOGLE_Document/android_go/GMS-Go-Requirements-draft-20171215.pdf

由于A(yíng)OSPphone在這個(gè)版本上移除了,所有MMIcode更新如下:

版本查詢(xún):*#7223#->*#*#7223#*#*

MMI測(cè)試:*#2886#->*#*#2886#*#*

disable GMS:

###666#->*#*#666#*#*

HW查詢(xún):*#28#->*#*#28#*#*

Regulatory&Saftely:*#07#->*#*#07#*#*

SVN查詢(xún)保持不變: *#06#

MTKLOG:*#*#3646633#*#*

一般來(lái)說(shuō)一個(gè)APK中的各個(gè)組件(Activity闷尿,Service塑径,Provider,Receiver)都是運(yùn)行在同一個(gè)進(jìn)程中填具,進(jìn)程名通過(guò)一下兩種方式確定:

(1)通過(guò)AndroidManifest.xml中的application標(biāo)簽中android:process指定;

(2)如果(1)中沒(méi)有指定统舀,那么進(jìn)程名就是APK的包名

另一種方式:?jiǎn)?dòng)apk,然后打logcat,在log日志中搜索"pkg="绑咱,即可定位

WindowManager: in

isMMITestTop, pkg=com.android.chrome

也可以用adbshell dumpsys window绰筛,然后搜focus,即可定位

1:給MTK提case時(shí)在summary里務(wù)必按照如下格式填寫(xiě)描融,這樣可以讓MTK更容易甄別公司名和項(xiàng)目名,模塊也更清晰衡蚂。

[Company][Porject][Test]

·? ? ? ? [TCL]A3A

VF][CTS]…

·? ? ? ? [TCL][U5A

PLUS VF][Performance]…

·? ? ? ?

[TCL][U50A PLUS TF][WIFI]…

2:提MTKcase時(shí)務(wù)必提供log窿克,如果log太大不能在A(yíng)LM系統(tǒng)中放入,需通過(guò)如下的MTK網(wǎng)址上傳log毛甲,注意下面紅框的部分

https://transfer.mediatek.com/Default/ShareFile

常用的內(nèi)存調(diào)優(yōu)分析命令:

dumpsys meminfo

procrank

cat /proc/meminfo

free

showmap

vmstat

top命令是看cpu占用率的

Proportional SetSize——實(shí)際物理內(nèi)存(PSS)

//

dumpsys meminfo--package? //輸出指定包名的進(jìn)程年叮,可能包含多個(gè)進(jìn)程

例如

要查看 com.android.systemui的內(nèi)存使用情況

adb shell dumpsys -t

20 meminfo com.android.systemui?

adb shell dumpsysprocstats --hours 3輸出最后3小時(shí)收集的內(nèi)存信息

//

? *

com.google.android.apps.magazines / u0a59:?

TOTAL:3.6% (10MB-10MB-10MB/8.7MB-9.0MB-9.0MB over 6)? ? //注釋 minPss-avgPss-maxPss/ minUss-avgUss-maxUss

? ? ? ? ? Imp Bg:

0.03%?

? ? ? ? Service:

3.6% (10MB-10MB-10MB/8.7MB-9.0MB-9.0MB over 6)?

? ? ? ? (Cached):

17% (9.9MB-10MB-10MB/8.7MB-8.9MB-9.0MB over 5)

查看手機(jī)的進(jìn)程等信息

ps -A/-a/..

-A All processes

-a Processes with

terminals that aren't session leaders

-d All processes

that aren't session leaders

-e Same as -A

-g Belonging to

GROUPs

-G Belonging to real

GROUPs (before sgid)

-p PIDs (--pid)

-P Parent PIDs

(--ppid)

-s In session IDs

-t Attached to

selected TTYs

-T Show threads

-u Owned by USERs

-U Owned by real

USERs (before suid)

[Root Cause]:產(chǎn)生該問(wèn)題的根本原因是什么

[Solution]:對(duì)所提交的方案進(jìn)行描述

[SelftestAction]:針對(duì)提交的方案,方案提交者做過(guò)哪些測(cè)試進(jìn)行驗(yàn)證玻募,驗(yàn)證結(jié)果如何

[Testsuggestion]:針對(duì)這個(gè)問(wèn)題本身只损,從開(kāi)發(fā)的角度給出測(cè)試建議,并給出所提交的修改方案可能會(huì)產(chǎn)生的影響的測(cè)試建議。

查詢(xún)手機(jī)里的屬性

adb shell getprop

|grep "api"

CTS/GTS FingerPrint信息不一致解決方案:

[DESCRIPTION]

Settings中AboutPhone的Modelnumber等信息的修改

[SOLUTION]

修改alps\build\tools\buildinfo.sh

-修改echo"ro.build.display.id=$BUILD_DISPLAY_ID",把$BUILD_DISPLAY_ID修改成其他的名稱(chēng)可改變Build Nubmer.注意此時(shí)要去除$.

-修改echo"ro.product.model=$PRODUCT_MODEL",把

$PRODUCT_MODEL修改成其他的名稱(chēng)可改變Model Nubmer.注意此時(shí)要去除$

-修改echo "ro.build.version.release=2.1" ,中的2.1,可改變顯示的Firmwareversion

-但是做上述修改時(shí)需要注意七咧,某些屬性是跟fingerprint相關(guān)的跃惫,如果修改了跟fingerprint相關(guān)的屬性,那么ro.build.fingerprint也要做出相應(yīng)修改

原始狀態(tài)下ro.product.fingerprint屬性設(shè)置如下:echo“ro.build.fingerprint=$BUILD_FINGERPRINT”

其中$BUILD_FINGERPRINT=$(PRODUCT_BRAND)/$(PRODUCT_NAME)/$( TARGET_DEVICE):$(PLATFORM_VERSION)/$(BUILD_ID)/$(BUILD_NUMBER):$(TARGET_BUILD_TYPE)/$( BUILD_VERSION_TAGS)

=>[ro.build.brand]/[ro.product.name]/[ro.product.device]:[ro.build.version.release]/[ro.build.id]/[ro.build.version.incremental]:[ro.build.type]/[ro.build.tags]

所以艾栋,如果修改了ro.build.brand爆存、ro.product.name、ro.product.device蝗砾、ro.build.version.release先较、ro.build.id、ro.build.version.incremental悼粮、ro.build.type闲勺、ro.build.tags這些屬性

那么,ro.product.fingerprint的屬性設(shè)置需要做出修改

假如貴司修改了”echoro.product.name=test_name”扣猫,那么ro.product.fingerprint的屬性設(shè)置需要修改為:

echo

"ro.build.fingerprint=${PRODUCT_BRAND}/test_name/${TARGET_DEVICE}:${PLATFORM_VERSION}/${BUILD_ID}/

${BUILD_NUMBER}:${TARGET_BUILD_TYPE}/${BUILD_VERSION_TAGS}"

grep -nri A ./

meld A路徑B路徑

(對(duì)比兩個(gè)文件)

Git鼓勵(lì)大量使用分支:

查看分支:gitbranch

創(chuàng)建分支:gitbranch

切換分支:gitcheckout

創(chuàng)建+切換分支:gitcheckout -b

合并某分支到當(dāng)前分支:gitmerge

刪除分支:gitbranch -d

也可以在命令后面跟程序的包名或進(jìn)程id來(lái)查看某個(gè)程序的內(nèi)存使用情況:

$adb shell dumpsys

meminfo $package_name or $pid

ACTIVITY MANAGERRECENT TASKS列出了最近打開(kāi)的Task的信息菜循,最上面的一行是最新打開(kāi)的Task信息,下面依次為更早時(shí)候打開(kāi)的Task的信息苞笨。

ACTIVITY MANAGERACTIVITIES列出了每個(gè)task的詳細(xì)信息债朵,即這個(gè)Task包含哪些Activity,他們的顯示順序是什么樣的等

子命令說(shuō)明命令格式

meminfo內(nèi)存adnshell dumpsys meminfo

cpuinfo CPU adn

shell dumpsys cpuinfo

gfxinfo幀率adnshell dumpsys gfxinfo

display顯示adnshell dumpsys display

power電源adnshell dumpsys power

batterystats電池狀態(tài)adnshell dumpsys batterystats

battery電池adnshell dumpsys battery

alarm鬧鐘adnshell dumpsys alarm

location位置adnshell dumpsys location

run cts -c

android.security.cts.StagefrightTest -m testStagefright_bug_21443020

--skip-preconditions

手機(jī)內(nèi)部搜索值:

adb shell getprop

|grep "Face"

編譯問(wèn)題:

Out of memory error

(version 1.2-rc4 'Carnac' (298900

f95d7bdecfceb327f9d201a1348397ed8a843843 by

android-jack-team@google.com)).

GC overhead limit

exceeded.

Try increasing heap

size with java option '-Xmx'.

1.import environment

variables

exportJACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8-XX:+TieredCompilation -Xmx4096m"? ---添加在你的.bashrc里

? 2.kill jack

server

./prebuilts/sdk/tools/jack-admin kill-server? ? ----編譯前執(zhí)行

? 3.start jack

server

./prebuilts/sdk/tools/jack-admin start-server? ---編譯前執(zhí)行

? 4.Turn off unused

programs as much as possible in order to make more memory available

參考:http://172.26.35.213/wiki/index.php/SIMBA6_CRICKET

沖突解決:

本地新開(kāi)終端:

repo init -u

git@cd.gitweb.com:MSM8909/manifests_cd.git -m

MSM8909.LA.2.0.1-cert.xml

repo sync沖突路徑

git checkout -t

origin/buzz6t4gtfumts_dint_upgrade_branch

git grep "<<<<<

HEAD"

使用vi修改瀑凝,

如遇二進(jìn)制沖突序芦,請(qǐng)郵件說(shuō)明

git commit -m "clone

coding for A502DL"

git add . &&

git commit -m "int merge code:Post-CS 0.0.036.1"

git push ssh://

name>@172.26.32.15:29418/MSM8909/

HEAD:refs/for/buzz6t4gtfumts_dint_upgrade_branch

git push

ssh://liqing.yuan@172.26.32.15:29418/mtk6763/kernel-4.4.git

HEAD:refs/for/mtk6763-o1-v1.0-dint_1A6A-5

git pull同步代碼

切換分支

NOTE :

? ? 1. Must use

command "git cherry-pick " to get modified

files firstly, you can get the commit id from every patch link.

? ? 2. If no

conflict, MUST use command "git reset HEAD^" to roll back

commit info and use patch delivery tool to submit modifications.

? ? 3. If have

conflicts, MUST use command "git reset HEAD" to roll back

commit info and use patch delivery tool to submit modifications.

查看項(xiàng)目git信息

git remote -v

01-08 13:22:23.509

2373? 2373 D stl? ? : ViewRootImpl 2373 Thread: 2373

01-08 13:22:25.929

4027? 4027 D stl? ? : ViewRootImpl 4027 Thread: 4027

01-08 13:22:26.979

4168? 4168 D stl? ? : ViewRootImpl 4168 Thread: 4168

01-08 13:22:27.949

3825? 3825 D stl? ? : ViewRootImpl 3825 Thread: 3825

01-08 13:22:28.069

3825? 3825 D stl? ? : ViewRootImpl 3825 Thread: 3825

前面一個(gè)號(hào)是進(jìn)程id,后面一個(gè)號(hào)是線(xiàn)程id

打開(kāi)當(dāng)前文件 nautilus+路徑 比如:nautilus./

打patch粤咪,談bug號(hào)框谚中,需要手動(dòng)刪除文件

/local/Projects/ELSA6_NA/.repo/repo/hooks$

rm patch-delivery-gui

repo forall -c

"pwd;git status;echo '~~~~~~~~~~~~~~~~~~~~~~~~~~~~'"

查找修改的路徑

搜索路徑的方式

find -name

*package.mk*

通過(guò)locate查找類(lèi)

lqyuan@SW2-YUANLIQI-D1:~/local/Tools/apktool$

locate ResizeableActivity

/data/home/lqyuan/local/Projects/Buzz6t-4g-tf-umts/cts/hostsidetests/services/activitymanager/app/src/android/server/app/NonResizeableActivity.java

/data/home/lqyuan/local/Projects/Buzz6t-4g-tf-umts/cts/hostsidetests/services/activitymanager/app/src/android/server/app/ResizeableActivity.java

/data/home/lqyuan/local/Projects/Buzz6t-4g-tf-umts/cts/tests/app/app/src/android/app/stubs/PipNotResizeableActivity.java

/data/home/lqyuan/local/Projects/Buzz6t-4g-tf-umts/cts/tests/app/src/android/app/cts/PipNotResizeableActivityTest.java

Android開(kāi)發(fā)--在Eclipse中使用android.support.v7

1、項(xiàng)目右鍵--> import --> Android --> ExistingAndroid Code Into workspace

-->選擇..\sdk\extras\android\support\v7\appcompat(根據(jù)自己的文件存放路徑先擇)

-->勾選copyprojects into workspace --> finish

(若出現(xiàn)unableto resolve target 'android-16',修改project.properties)

2、在項(xiàng)目中引用android.support.v7

項(xiàng)目右鍵--> properties --> Android --> Library--> Add --> OK

assertEquals([Stringmessage],Object target,Object result) target與result不相等宪塔,中斷測(cè)試方法磁奖,輸出message

獲取手機(jī)是什么版本useruserdebug daily

getprop

ro.build.type

查看三方應(yīng)用或是系統(tǒng)應(yīng)用簽名

用winrar打開(kāi)待查看的apk,將其中META-INF文件夾解壓出來(lái)某筐,得到其中的CERT.RSA文件比搭,通過(guò)keytool-printcert -file META-INF/CERT.RSA命令打印證書(shū)

信息

---------------------------------------------------------------------------------------------------------------

我們來(lái)分析Android的PackageManagerService,后面簡(jiǎn)稱(chēng)PMS南誊。PMS用來(lái)管理所有的package信息身诺,包括安裝、卸載抄囚、更新以及解析AndroidManifest.xml以組織相應(yīng)的數(shù)據(jù)結(jié)構(gòu)霉赡,這些數(shù)據(jù)結(jié)構(gòu)將會(huì)被PMS、ActivityMangerService等等service和application使用到幔托。PMS有幾個(gè)比較重要的命令可以用于我們debug中:

adb shell dumpsyspackage? (dump出系統(tǒng)中所有的application信息)

adb shell dumpsyspackage “com.android.contacts" p (dump出系統(tǒng)中特定包名的application信息)

---------------------------------------------------------------------------------------------------------------

boot log分析

adb shell cat

/proc/bootprof

從mainlog里面看一下穴亏,搜索dex2oat,會(huì)發(fā)現(xiàn),其實(shí)這個(gè)時(shí)候重挑,大部分的時(shí)間是在做編譯apk的動(dòng)作

lqyuan@SW2-YUANLIQI-D1:~/Desktop/4DB2/CTS/android-cts-6.0_r13/android-cts/tools$

adb shell cat /proc/bootprof

-------------start---------------------------

0 ? ? BOOT PROF

(unit:msec)

---------------------------------------------

? ? 13336.654571 :

BOOT_Animation:START

? ? 19606.061309 :

Zygote:Preload Start

? ? 23074.968351 :

Zygote:Preload 4158 classes in 3214ms

? ? 23522.002883 :

Zygote:Preload 114 obtain resources in 444ms

? ? 23541.512206 :

Zygote:Preload 41 resources in 18ms

? ? 23846.541843 :

Zygote:Preload End

25165.138201 :Android:PackageManagerService_Start? //此階段為pms對(duì)各種路徑下的apk包進(jìn)行掃描

? ? 26464.511174 :

Android:PMS_scan_START

? ? 35536.057816 :

Android:PMS_scan_done:/system/framework

? ? 38521.889231 :

Android:PMS_scan_done:/system/app

? ? 38640.165273 :

Android:PMS_scan_done:/system/vendor/app

? ? 38644.640377 :

Android:PMS_scan_data_start

? ? 42646.532317 :

Android:PMS_scan_data_done:/data/app

? ? 42648.217942 :

Android:PMS_scan_data_done:/data/app-private

? ? 42650.476796 :

Android:PMS_scan_data_done:/data/app-ephemeral

? ? 42721.348411 :

Android:PMS_scan_END

? ? 45559.652742 :

Android:PMS_READY

? ? 48898.794002 :

AP_Init:[service]:[com.google.android.inputmethod.latin]:[com.google.android.inputmethod.latin/com.android.inputmethod.latin.La

? ? 48952.401242 :

AP_Init:[service]:[com.android.systemui]:[com.android.systemui/.ImageWallpaper]:pid:3575:(PersistAP)

? ? 49172.442962 :

AP_Init:[]:[WebViewLoader-armeabi-v7a]:pid:3609

? ? 50618.419476 :

AP_Init:[added

application]:[com.jrdcom.jrdwfcmanager]:[com.jrdcom.jrdwfcmanager]:pid:3807:(PersistAP)

? ? 50652.964477 :

AP_Init:[added

application]:[com.tcl.dmvzwclient]:[com.tcl.dmvzwclient]:pid:3821:(PersistAP)

? ? 50697.041404 :

AP_Init:[added

application]:[com.android.phone]:[com.android.phone]:pid:3845:(PersistAP)

? ? 50770.493175 :

AP_Init:[activity]:[com.android.settings]:[com.android.settings/.FallbackHome]:pid:3866

? ? 52518.083441 :

AP_Init:[service]:[com.qualcomm.qcrilmsgtunnel]:[com.qualcomm.qcrilmsgtunnel/.QcrilMsgTunnelService]:pid:3971

? ? 52964.551046 :

AP_Init:[broadcast]:[org.codeaurora.ims]:[org.codeaurora.ims/.ImsServiceAutoboot]:pid:4062

? ? 55030.651105 :

BOOT_Animation:END

--------------end--------------------------

獲取手機(jī)項(xiàng)目名:

adb shell cat

/system/build.prop

ro.product.brand=TCL

ro.product.name=A576CC

ro.product.device=Mickey6CC

抓取更多l(xiāng)og

adb shell dumpsys

activity log a on?

adb logcat -v time

-b all > log.tx

adb shell dumpsys >

dumpsys.txt

adb shell bugreport

> bugreport.txt

python正則表達(dá)式

http://blog.csdn.net/smilelance/article/details/6529950

cat /proc/zoneinfo

編譯boot_image的命令

./makeTcl -t

Mickey6TFUMTS kernel

實(shí)踐中發(fā)現(xiàn)還有某些同學(xué)不清楚如何檢查字符串問(wèn)題.再補(bǔ)充一下:

1.處理翻譯bug嗓化,先根據(jù)測(cè)試提供的字符串找出stringid

2.根據(jù)stirngid到 wimdata_ng/wlanguage/src/string.xls 搜索,看string.xls中的內(nèi)容是否符合預(yù)期.如果符合預(yù)期就說(shuō)明

現(xiàn)在翻譯是對(duì)的攒驰,不用再轉(zhuǎn)到chengqiang處理.

3.string.xls中是對(duì)的蟆湖,有可能是測(cè)試報(bào)bug的時(shí)候string.xls是KO的,現(xiàn)在string.xls更新后已經(jīng)好了.那么在

最新版本上驗(yàn)證是否OK.如果還是有問(wèn)題則按照xinxin方法檢查模塊是否加入翻譯.

4.string.xls中沒(méi)有搜索到相應(yīng)字串或相應(yīng)字串有問(wèn)題玻粪,則說(shuō)明是翻譯有問(wèn)題隅津,根據(jù)實(shí)際情況到MSGM網(wǎng)站進(jìn)行相應(yīng)處理后將stringid加到bugcomment轉(zhuǎn)到chengqiang處理.

注:因?yàn)镸SGM網(wǎng)站是與很多項(xiàng)目共用,如某個(gè)字符串是需要更改原始英文的劲室,更改后會(huì)影響到其他項(xiàng)目.請(qǐng)加強(qiáng)注意伦仍,與測(cè)試確認(rèn)清楚是否必須更改,

把握不準(zhǔn)的郵件抄上我.

cat .git/config

查看url= ssh://git@172.26.32.15/MSM8909/platform/frameworks/base.git

ifneq

($(TARGET_BUILD_VARIANT), user)

如何將android程序的權(quán)限提升到system權(quán)限很洋?方法是這樣的:

1充蓝、在A(yíng)ndroidManifest.xml中,在manifest加入android:sharedUserId="android.uid.system"喉磁。

2谓苟、在A(yíng)ndroid.mk中,將LOCAL_CERTIFICATE:= XXX修改成LOCAL_CERTIFICATE:= platform协怒。

經(jīng)過(guò)以上兩步就可以把a(bǔ)p的權(quán)限提升到system權(quán)限了涝焙。

但是用這種方法提升權(quán)限有兩個(gè)弊端,

如下:1孕暇、程序的擁有都必須有程序的源碼仑撞;2赤兴、程序的擁有都還必須有android開(kāi)發(fā)環(huán)境,就是說(shuō)自己能make整個(gè)android系統(tǒng)隧哮。

adb logcat *:E打印出錯(cuò)log

df -h查硬盤(pán)空間

free -m查內(nèi)存桶良,按兆為單位輸出內(nèi)存的已用,未用沮翔,總共等結(jié)果

cat /proc/cpuinfo輸出各處理器的詳細(xì)信息

CLID網(wǎng)站用來(lái)查詢(xún)plf中sdmid配的perso值

http://172.26.32.35/clid/software/clid/php/main.html賬號(hào)密碼都是read

git commit -m

"Initial commit of gittutor reposistory"

Git log

查看歷史日志陨帆,包含每次的版本變化。每次版本變化對(duì)應(yīng)一個(gè)commitid鉴竭。

? ? ? Git log -1

-1的意思是只顯示一個(gè)commit歧譬,如果想顯示5個(gè),就-5搏存。不指定的話(huà),gitlog會(huì)從該commit一直往后顯示矢洲。

Git log--stat –summary(顯示每次版本的詳細(xì)變化)

adb shell setenforce0關(guān)閉selinux

adb shell setenforce1開(kāi)啟selinux

getenforce獲取當(dāng)前selinux狀態(tài),permissive是關(guān)閉狀態(tài)

同步代碼出現(xiàn)錯(cuò)誤時(shí)的操作:

git reset

88511c49765d947385c0dee06969d89bdd32abaa

git checkout -f &&

git clean -fd

repo sync -j8

查詢(xún)對(duì)應(yīng)的POP455C璧眠,

如:ifneq ($(filter POP455C POP455CTMOPixi445Cricket Pixi445CAN Pixi464GCricket,$(TARGET_PRODUCT)),)

需要在當(dāng)前項(xiàng)目執(zhí)行sourcebuild/envsetup.sh再執(zhí)行choosecombo即可看到可選擇的項(xiàng)目

MAC Address:

F4:8E:92:18:B4:25

password: quidway!@

將編譯好的img燒入手機(jī)out/target/product/Mickey6TFUMTS

adb reboot

bootloader

fastboot devices

fastboot flash aboot

emmc_appsboot.mbn

fastboot flash boot

boot.img

fastboot flash

system system.img

fastboot flash

persist persist.img

fastboot flash

recovery recovery.img

fastboot flash cache

cache.img

fastboot flash

userdata userdata.img

fastboot flash

custpack custpack.img

fastboot flash

usbmsc usbdisk.img

fastboot reboot

frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java

out/target/product/A3A_VF/system/framework

本地拷貝cp? -rf? A? B

創(chuàng)建txt文件:touch A.txt

更改文件名:mvfull_k39tv1_bsp.mk A502DL.mk

scp -rp services.jar

lqyuan@172.26.35.22:/home/lqyuan/Desktop/fc/false

scp -rp

services.jar.prof lqyuan@172.26.35.22:/home/lqyuan/Desktop/fc/false

從服務(wù)器拷貝命令:scpbuild.log lqyuan@172.26.35.22:/home/lqyuan/Desktop/log

scp -rp A3A_VF

lqyuan@172.26.35.22:/home/lqyuan/Desktop/liqing_A3A

沖突解決步驟:

1.在終端執(zhí)行命令sshjenkins@172.26.35.82,密碼為testonly,在/data/Idole4-bell目錄下找到待合并沖突的git庫(kù);

2.執(zhí)行命令:git grep '<<<<<<< HEAD' ,查找有沖突的文件读虏;

3.用vi編譯有沖突的文件,解決沖突责静,直至所有沖突解決完;

4.執(zhí)行exit退出

查詢(xún)服務(wù)器編譯問(wèn)題

在jenkins網(wǎng)站http://172.26.35.81:8080/上查詢(xún)對(duì)應(yīng)編譯失敗的版本

查找該版本填寫(xiě)的Parameters盖桥,找到對(duì)應(yīng)的ip灾螃,然后在終端輸入sshjenkins@172.26.35.82(對(duì)應(yīng)IP),密碼是:testonly揩徊,然后在cd進(jìn)入/local/src然后尋找

編譯的項(xiàng)目

查詢(xún)apk是否安裝成功:adbshell dumpsys package com.tct.camera

adb shell dumpsyspackage包名

查詢(xún)apk安裝的路徑:adbshell pm path包名

lqyuan@SW2-YUANLIQI-D1:~$

adb shell pm path com.tct.camera

package:/system/priv-app/Camera_GApp/Camera_GApp.apk

查詢(xún)?cè)创a所在分支:在根目錄下cd.repo即在.repo下面

打開(kāi) manifest.xml文件即可查看分支

終端輸入:$xdg-open strings.xls會(huì)選擇默認(rèn)的程序打開(kāi)指定文件腰鬼,跟雙擊打開(kāi)效果一樣。

終端啟動(dòng)Activity:adb shell am start -ncom.android.settings(package包名)/com.android.settings.Settings(待啟動(dòng)activity)&

adb shell am start

-n xxx/xxx &

反編譯:

java -jar

/data/TOOLS/apktools/apktool_2.0.0rc3.jar d -s Elabel-overlay.apk

本機(jī)路徑:

java -jar

/home/lqyuan/local/Tools/apktool_2.0.0rc3/apktool_2.0.0rc3.jar d -s

/home/lqyuan/Desktop/findapk/appcloud_oobe_telus-release_V2.11_with_logs.apk

在Linux終端執(zhí)行命令:

ps x顯示沒(méi)有控制終端地進(jìn)程(無(wú)響應(yīng)的進(jìn)程)

ps -e顯示所有進(jìn)程,環(huán)境變量

kill -9 [pid] -9表示強(qiáng)迫進(jìn)程立即停止塑荒,通常用ps查看進(jìn)程PID熄赡,用kill命令終止進(jìn)程

git命令

回退:

git reset --hard HEAD^(回退到修改前的版本)

禁止apk運(yùn)行

adb shell pm disablecom.mediatek.camera(包名)

啟動(dòng)apk運(yùn)行

adb shell pm enable

com.mediatek.camera

跑MonkeyTest:

adb shell monkey -p

com.mediatek.camera --throttle 500 -s 10 -v -v -v 15000

搜索apk或者壓縮包是否包含

zipinfo

Gallery_Global_v7.1.3.0.0494.0_signed_platformkey_alldpi.apk |grep

dcs_ver

全局搜:find/grep

grep? "extends

IBluetooth"? *? -R

引號(hào)里是待搜索的字段,前提是進(jìn)入該項(xiàng)目中

adb logcat -v time*:e抓錯(cuò)誤日志

定向抓LOG齿税,保存在文件夾中

adb logcat -v

threadtime >/local2/log/log.txt

修改數(shù)據(jù)庫(kù)

cd

/data/data/com.android.providers.settings/databases/

sqlite3 settings.db

.help

select * from global

;

update global set

value="wifi" where name="airplane_mode_toggleable_radios";

MTK? online

http://online.mediatek.com

網(wǎng)站用戶(hù)名和密碼:

daniel.sun@tcl.com

1qaz2wsx

查看項(xiàng)目資訊是否正確:

/local2/projects/mtk82_92-kk-v1.0/mediatek/config/diabloxplus_kk/ProjectConfig.mk文本最后MTK_BUILD_VERNO= ALPS.KK1.MP1.V2.10

可以搜索:#CREATE_PROJECT_INFO

用adb連接上設(shè)備彼硫。如果是連接真實(shí)設(shè)備,需要有設(shè)備的root權(quán)限凌箕。

cd data/data

在這個(gè)目錄下拧篮,可以看到每個(gè)應(yīng)用程序都有自己的目錄,目錄名就是應(yīng)用程序在A(yíng)ndroidManifest.xml文件中定義的包牵舱。

在每個(gè)目錄下串绩,一般有這么幾個(gè)子目錄:

databases :存放數(shù)據(jù)庫(kù)

cache :存放緩存數(shù)據(jù)

files :存放應(yīng)用程序自己控制的文件

lib :存放使用的包

對(duì)于Bluetooth而言主要關(guān)注如下兩個(gè)路徑:

/data/data/com.android.bluetooth,當(dāng)要看里面的文檔時(shí)

使用cat文檔名

進(jìn)行查看

/data/@btmtk? dev_cache已配對(duì)列表中的藍(lán)牙名

host_cache本地主機(jī)的藍(lán)牙名

adbshell過(guò)后,可以通過(guò)輸入cat/proc/cpuinfo查看CPU的信息

frameworks層的都是API仆葡,被package層的函數(shù)調(diào)用!

以Handler赏参、Callback志笼、Listener這三個(gè)詞結(jié)尾的,都是利用callback機(jī)制來(lái)實(shí)現(xiàn)的

什么是aidl:aidl是Android Interface definition language的縮寫(xiě)把篓,

一看就明白纫溃,它是一種android內(nèi)部進(jìn)程通信接口的描述語(yǔ)言,通過(guò)它我們可以定義進(jìn)程間的通信接口

應(yīng)用程序使用AIDL的地方韧掩,幾乎都和Service有關(guān)

find命令可以查看代碼片段的位置(進(jìn)入項(xiàng)目中去使用):

1紊浩、find.|xargs grep -i "mDeviceName"

2、sgrep-Inr "mDeviceName"

3疗锐、在命令中用“!”表示坊谁。該運(yùn)算符表示查找不滿(mǎn)足所給條件的文件

。例如: find ! –name ’tmp’

4滑臊、查找n天以前被訪(fǎng)問(wèn)過(guò)的所有文件:find-atime n(-aminn查找n分鐘以前被訪(fǎng)問(wèn)過(guò)的所有文件口芍。-atimen查找n天以前被訪(fǎng)問(wèn)過(guò)的所有文件。-cminn查找n分鐘以前文件狀

態(tài)被修改過(guò)的所有文件雇卷。-ctime n查找n天以前文件狀態(tài)被修改過(guò)的所有文件鬓椭。-mminn查找n分鐘以前文件內(nèi)容被修改過(guò)的所有文件。-mtimen查找n天以前文件內(nèi)容被修改過(guò)的所有文件关划。)

5小染、在以下命令中,find將開(kāi)始在當(dāng)前目錄(用“.”表示)中查找任何擴(kuò)展名為“java”的文件:find. -name? "*.java"

adb shell getprop

""

獲取系統(tǒng)屬性

將/local2/projects/predev-mt6582ll-dint/out/target/product/pop3_55中的所有的文件拷貝到公共機(jī)贮折,就可以燒機(jī)了

(選擇scatter)

66:c3:2c:a7:1a:b9

66:c3:3d:21:8b:73

66:24:2d:3d:35:62

66:c1:3d:7c:e2:6b

eclipse:

高亮度顯示:shift+alt+o

pm命令

在system/bin目錄下裤翩,是對(duì)于包名的顯示及其他操作

pm path

com.zhaopin.social

pm list package

提Log給MTK的網(wǎng)站

https://fex.mediatek.com/LoginWebUser.aspx?ReturnUrl=%2fDownloadList.aspx

號(hào):Jrdcom-58

碼:19991474lv

查看Linux系統(tǒng)版本:lsb_release-a或者cat/proc/version

截圖命令:gnome-screenshot-a

全邊:

Global? ./makeMtk -t

-o=TARGET_BUILD_MDTYPE=fdd,TARGET_BUILD_VARIANT=eng hero2 new

CMCC? ? ./makeMtk -t

-o=TARGET_BUILD_MDTYPE=cmcc,TARGET_BUILD_VARIANT=eng hero2 new

單邊后Push到手機(jī)中:

1.AndroidL以前的操作

684? ./makeMtk -t

mm packages/apps/Bluetooth

685? adb remount

686? adb push

./out/target/product/hero8/custpack/JRD_custres/app/Bluetooth-res.apk

custpack/JRD_custres/app/

687? adb push

out/target/product/hero8/system/app/Bluetooth.apk system/app

2.AndroidL的操作

source

build/envsetup.sh

lunch選擇分支

mmmpackages/apps/Bluetooth(路徑)單邊后再push到手機(jī)中

AndroidL全邊的操作:

6582L軟件分支的代碼下載和編譯如下:

1 . code download :

? ? ? repo init -u

git@172.24.61.94:alps/manifest -m predev-mt6582ll-dint.xml

2編譯:

a).編譯modem:

? ? ? ? cd modem/


./jrd_modem_build

b) .編譯android,參

考附件的aosp

? ? ? – Eng

version

? ? ? ? source

build/envsetup.sh

? ? ? ? lunch

full_pop3_55-eng

? ? ? ? ? – Or you

could use lunch to choose combo

? ? ? ? make -j36

2>&1 | tee build.log

? ? ? – User

version

? ? ? ? source

build/envsetup.sh

? ? ? ? lunch

full_pop3_55-user

? ? ? ? ? – Or you

could use lunch to choose combo

? ? ? ? make -j36

2>&1 | tee build.log

? ? ? – Userdebug

version

? ? ? ? source

build/envsetup.sh

? ? ? ? lunch

full_pop3_55-userdebug

? ? ? ? ? – Or you

could use lunch to choose combo

? ? ? ? make -j36

2>&1 | tee build.log

jdk版本配置(開(kāi)一個(gè)控制臺(tái)輸入一次僅對(duì)當(dāng)次開(kāi)的控制臺(tái)有效)

export

PATH=/opt/jdk1.6.0_37/bin:$PATH

./makeMtk -t mm

frameworks/base/packages/SettingsProvider

1.KOA:請(qǐng)假等。http://koa.jrdcom.com/

2.Gerrit:http://gitweb.tcl-ta.com:8081/

3.Gitweb:http://gitweb.tcl-ta.com/

4.Bugzilla:http://bugzilla.tcl-ta.com/

5.epas:http://skillmatrixsh.cn.ta-mp.com/

6.Manpower:http://scmweb.tcl-ta.com/mpwt/

7.staffsearch:http://itcenter.cn.ta-mp.com/StaffInfo_Index.asp/

8.doc

tree:http://172.24.61.76/dx3/swd/

文件查找命令:

find .|xargs grep加字符串

拉代碼命令:

repo init -u

git@172.24.61.94:alps/manifest.git -m .xml

單拉某個(gè)版本的代碼repo init -u? git@172.24.61.94:alps/manifest -mint/名字(項(xiàng)目名字)/版本.xml

repo init -u

git@172.24.61.94:alps/manifest -m int/yarisxl/vAG5.xml

路經(jīng)http://gitweb.tcl-ta.com/gitweb-alps/?p=manifest.git;a=summary

-》tree

->mtk6589-mr1-global.xml

repo sync

全編譯命令:

croo

jrdm

jrdm n

單獨(dú)編譯某個(gè)模塊:在整個(gè)工程的根目錄下找到packages/apps某個(gè)模塊

單編譯前也要執(zhí)行sourcebuild/envsetup.sh

jrdmmm? **模塊名稱(chēng)

顯示細(xì)節(jié)的編譯命令:

source

build/envsetup.sh

./makeMtk -t

-o=TARGET_BUILD_VARIANT=eng,JRD_GEMINI_SUPPORT=yes,JRD_CU_SUPPORT=no,JRD_BUILD_MODEM=no

jrdsz89_we_jb2 new

./makeMtk -t

-o=TARGET_BUILD_MDTYPE=fdd,TARGET_BUILD_VARIANT=eng hero2 new

./makeMtk -t

-o=TARGET_BUILD_MDTYPE=cmcc,TARGET_BUILD_VARIANT=eng hero2 new

本地編譯后的版本:


進(jìn)行單編后调榄,各個(gè)模塊輸出都在out/target/

共享機(jī)子上把lk.bin修改為uboot.img

直接拷貝到手機(jī)上

adb remount

adb push

./out/target/product/diablox/custpack/JRD_custres/app/TCLWatchDog-res.apk

custpack/JRD_custres/app/;

adb push

out/target/product/diablox/system/app/custpack/TCLWatchDog.apk

system/app/

zip /local/abc.zip`find . -maxdepth 1 ! -type d`本地打包命令踊赠,便于本地刷機(jī)用

上傳代碼

在mediatek目錄下/local/scm_tools/tools/patch_delivery_cli.php -pmtk6589-cmcc-td-v1.0-dint -fFMRadio/src/com/mediatek/FMRadio/FMRadioActivity.java

Bug Number:

patch comments:

.

Module_Impact:

.

Test_Suggestion:

.

Solution:.

Test_Report:

.

.

.

git push

ssh://liqing.yuan@172.24.61.94:29418/mtk6592/packages/apps/Bluetooth.git

HEAD:refs/for/mt6592-android4.4-fsr-v1.0

MTK_FM_SHORT_ANTENNA_SUPPORT有的為yes有點(diǎn)為no需要查看一下

1.在根目錄下

執(zhí)行? .repo查看關(guān)于版本的和分支的信息

2.提交代碼前,想查看

修改的文件 使用 git status | grep文件關(guān)鍵字

git diff文件名

查看修改的地方

回退時(shí)

執(zhí)行 git reset HEAD^命令刪除上傳的log后再

進(jìn)行重復(fù)上傳操作

3.在mediatek目錄下patch_delivery_cli.php -p <分支名>-f <更新的文

件絕對(duì)路經(jīng)>

例如:patch_delivery_cli.php-p mtk6589-cmcc-td-v1.0-dint -fFMRadio/src/com/mediatek/FMRadio/FMRadioActivity.java

4振峻、用git上傳代碼臼疫。輸入:gitpush ssh://eagle.li@172.24.61.94:29418/<模塊名在根目錄下用.repo查看>.gitHEAD:refs/for/<分支名>。模塊

名可在.repo/manifest.xml中的name中查到扣孟,為離該模塊最近的一個(gè)路徑的name烫堤。例如在diabloXTD提交代碼git pushssh://eagle.li@172.24.61.94:29418/mtk6589/mediatek.git HEAD:refs/for/mtk6589-cmcc-td-v1.0-dint。

5凤价、上傳成功后鸽斟,Gerrit中可以看到狀態(tài)的改變,然后cc給teamleaderreview利诺。

6富蓄、review完后,點(diǎn)擊submit慢逾。

從user模式到開(kāi)發(fā)者模式

*#*#212018#*#*root一下

查看軟件的版本:

? *#3228#

提代碼(patch)詳細(xì)步驟:

liqing.yuan@aclgcl-ubnt:/local2/projects$

cd mt6592-android4.4-fsr-v1.0/

liqing.yuan@aclgcl-ubnt:/local2/projects/mt6592-android4.4-fsr-v1.0$

cd packages/apps/Bluetooth/

liqing.yuan@aclgcl-ubnt:/local2/projects/mt6592-android4.4-fsr-v1.0/packages/apps/Bluetooth$

ls

AndroidManifest_test.xml

AndroidManifest.xml? AndroidManifest.xml~? Android.mk? CleanSpec.mk

jni? res? src? test_apps? tests

liqing.yuan@aclgcl-ubnt:/local2/projects/mt6592-android4.4-fsr-v1.0/packages/apps/Bluetooth$

/local2/scm_tools/tools/patch_delivery_cli.php -p

mt6592-android4.4-fsr-v1.0 -f AndroidManifest.xml

Bug Number:877621

patchcomments:[Force close][3rd Evernote_v 5.8]Share the video file viabluetooth立倍,MSprompt forcibly closed.

.

Please chose the bug

root cause:

? ? 1-Unknown_Today

? ? 2-Architecture

? ? 3-Specification

? ? 4-Design

? ? 5-Coding

? ? 6-Regression

? ? 7-Evolution

Your choise:5

Module_Impact:bluetooth

.

Test_Suggestion:test

ok

.

Solution:add

permission

.

Test_Report:test ok

.

Please chose the Bug

category:

? ? 1-MTK platform

issue

? ? 2-Android

platform issue

? ? 3-3rd party

issue

? ? 4-JRD bug

Your choise:2

[detached HEADed1e3f6] ###%%%comment:[Force close][3rd Evernote_v 5.8]Share thevideo file via bluetooth灭红,MSprompt forcibly closed. ###%%%bug number:877621 ###%%%productname:mt6592-android4.4-fsr-v1.0 ###%%%root cause:Coding ###%%%Bugcategory:Android platform issue ###%%%Module_Impact:bluetooth###%%%Test_Suggestion:test ok ###%%%Solution:add permission###%%%Test_Report:test ok ###%%%VAL Can Test:Yes

1 file changed, 3

insertions(+)

liqing.yuan@aclgcl-ubnt:/local2/projects/mt6592-android4.4-fsr-v1.0/packages/apps/Bluetooth$

git push

ssh://liqing.yuan@172.24.61.94:29418/mtk6592/packages/apps/Bluetooth.git

HEAD:refs/for/mt6592-android4.4-fsr-v1.0

Counting objects: 5,

done.

Delta compression

using up to 8 threads.

Compressing objects:

100% (3/3), done.

Writing objects:

100% (3/3), 653 bytes, done.

Total 3 (delta 2),

reused 0 (delta 0)

remote: Resolving

deltas: 100% (2/2)

remote: Processing

changes: new: 1, refs: 1, done? ?

remote: (W) ed1e3f6:

commit subject >65 characters; use shorter first paragraph

remote:

remote: New

Changes:

remote:?

http://gerrit.tcl-ta.com:8081/203928

remote:

To

ssh://liqing.yuan@172.24.61.94:29418/mtk6592/packages/apps/Bluetooth.git

* [new branch]? ?

HEAD -> refs/for/mt6592-android4.4-fsr-v1.0

? ? How to download

the view from github :

? ? ? ? repo init -u

git@172.24.61.94:alps/manifest -m

? ? ? ? repo sync


can be one of the following list:


mt6735-android5.0-dint-v1.0.xml? ? ? ? ? ? ? ? ? ? ? ? ? // arm 64

bit dint branch, share folder : Pop3-5.5,? Pop3-5


mt6735-android5.0-dev-v1.0.xml? ? ? ? ? ? ? ? ? ? ? ? ? // arm 64

bit dev branch for custpack, share folder : Pop3-5.5,? Pop3-5


mt6735-android5.0-arm32-dint-v1.0.xml? ? ? ? ? ? ? // arm 32 bit dint

branch, share folder : Pop3-5.5,? Pop3-5

? ? ? ? Sample for

pop3-5.5 known version :

? ? ? ? ? ? repo

init -u git@172.24.61.94:alps/manifest -m int/pop3_55/vAA1.xml

? ? ? ? ? ? repo

init -u git@172.24.61.94:alps/manifest -m int/pop3_55/vAA1-W-EU.xml

? ? ? ? Sample for

pop3-5.5 known version :

? ? ? ? ? ? repo

init -u git@172.24.61.94:alps/manifest -m int/pop3_5/vCA1.xml

? ? ? ? ? ? repo

init -u git@172.24.61.94:alps/manifest -m int/pop3_5/vCA1-D-EU.xml

? ? How to build :

? ? ? ? ? i).

firstly,? build modem

? ? ? ? ? ? ? ? cd

modem/


./jrd_modem_build? -p projectname? -b bandname? -m buildmode


parameter list :

? ? -p projectname

value can be? [? pop3_55 | pop3_5]

? ? -b bandname

value can be [ EU | US ]

? ? -m buildmode

value can be [ eng | user ]

? ? ? ? ? ? ii) .

secondly, four steps to build android

? ? 1.? cd

code_path

? ? 2.? source

build/envsetup.sh

? ? 3.

jrd_choosemmitest

? ? ? ? run this cmd

if build mini version, or skip it.

? ? 4 . lunch

? ? ? ? ? ? ? select

project when lunch :


full_pop3_55-eng : for build eng version


full_pop3_55-userdebug : for build userdebug version


full_pop3_55-user : for build user version


full_pop3_5-eng : for build eng version


full_pop3_5-userdebug : for build userdebug version


full_pop3_5-user : for build user version

? ? ? ? lunch

parameter :

? ? ? ? 1) user2root

:? switch between user mode and eng mode,? only used on user

version.


? ? ? ? ? value can be [ yes | no | ignore ].

? ? ? ? ? ? yes :

support user2root switch

? ? ? ? ? ? no : not

support user2root switch

? ? ? ? ? ? ignore:

use default value in source code

? ? 5.?

? ? ? ? to build

all:? ?

? ? ? ? ? ? make

-j32 2>&1 | tee build.log

? ? ? ? to build

preloader:? ?

? ? ? ? ? ? make

-j32 pl 2>&1 | tee pl.log

? ? ? ? to build lk:


? ? ? ? ? ? make

-j32 lk 2>&1 | tee lk.log

? ? ? ? to build

kernel:? ? ? ?

? ? ? ? ? ? make

-j32 kernel 2>&1 | tee kernel.log

Git的Patch功能

UNIX世界的軟件開(kāi)發(fā)大多都是協(xié)作式的,因此口注,Patch(補(bǔ)侗淝堋)是一個(gè)相當(dāng)重要的東西,因?yàn)閹缀跛械拇笮蚒NIX項(xiàng)目的普通貢獻(xiàn)者寝志,都是通過(guò)Patch來(lái)提交代碼的娇斑。作為最重要的開(kāi)源項(xiàng)目之一,Linux材部,也是這樣的毫缆。普通開(kāi)發(fā)者從軟件倉(cāng)庫(kù)clone下代碼,然后寫(xiě)入代碼乐导,做一個(gè)Patch苦丁,

最后用E-mail發(fā)給LinuxKernel的維護(hù)者就好了。Git最初作為L(zhǎng)inux的版本控制工具物臂,提供了透明芬骄、完整、穩(wěn)定的Patch功能鹦聪。

我們先介紹一下Patch是什么。如果一個(gè)軟件有了新版本蒂秘,我們可以完整地下載新版本的代碼進(jìn)行編譯安裝泽本。然而,像LinuxKernel這樣的大型項(xiàng)目姻僧,代碼即使壓縮规丽,也超過(guò)70MB,每次全新下載是有相當(dāng)大的代價(jià)的撇贺。然而赌莺,每次更新變動(dòng)的代碼可能不超過(guò)1MB,因此松嘶,我們只

要能夠有兩個(gè)版本代碼的diff的數(shù)據(jù)艘狭,應(yīng)該就可以以極低的代價(jià)更新程序了。因此翠订,LarryWall開(kāi)發(fā)了一個(gè)工具:patch巢音。它可以根據(jù)一個(gè)diff文件進(jìn)行版本更新。

不過(guò)在git中尽超,我們沒(méi)有必要直接使用diff和patch來(lái)做補(bǔ)丁官撼,這樣做既危險(xiǎn)又麻煩。git提供了兩種簡(jiǎn)單的patch方案似谁。一是用gitdiff生成的標(biāo)準(zhǔn)patch傲绣,二是gitformat-patch生成的Git專(zhuān)用Patch掠哥。

1.gitdiff生成的標(biāo)準(zhǔn)patch

我們可以首先用gitdiff制作一個(gè)patch。本文示例的工作目錄里最初有一個(gè)文件a秃诵,內(nèi)容是“Thisis the file a.”续搀,放置在master分支中。為了修改代碼顷链,我們一般的做法是建立一個(gè)新分支:

sweetdum@sweetdum-ASUS:~/GitEx$

git branch Fix

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout Fix

Switched to branch

'Fix'

接下來(lái)我們?cè)赼文件里面追加一行目代,然后執(zhí)行g(shù)itdiff。

sweetdum@sweetdum-ASUS:~/GitEx$

echo 'Fix!!!'>>a

sweetdum@sweetdum-ASUS:~/GitEx$

git diff

diff --git a/a b/a

index

4add65f..0d295ac 100644

--- a/a

+++ b/a

@@ -1 +1,2 @@

This is the file a.

+Fix!!!

我們看到了Gitdiff的輸出嗤练,這是一個(gè)非常典型的Patch式diff榛了。這樣我們可以直接把這個(gè)輸出變?yōu)橐粋€(gè)Patch:

sweetdum@sweetdum-ASUS:~/GitEx$

git commit -a -m "Fix"

[Fix b88c46b] Fix

1 files changed, 1

insertions(+), 0 deletions(-)

sweetdum@sweetdum-ASUS:~/GitEx$

git diff master > patch

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout master

Switched to branch

'master'

我們現(xiàn)在有一個(gè)patch文件,并且簽出了master煞抬,接下來(lái)我們可以使用gitapply來(lái)應(yīng)用這個(gè)patch霜大。當(dāng)然了,實(shí)際應(yīng)用中革答,我們不會(huì)這樣在一個(gè)分支建patch战坤,到另一個(gè)分支去應(yīng)用,因?yàn)橹挥衜erge一下就好了残拐。我們現(xiàn)

在權(quán)當(dāng)沒(méi)有這個(gè)Fix分支途茫。一般情況下,為了保護(hù)master溪食,我們會(huì)建立一個(gè)專(zhuān)門(mén)處理新交來(lái)的patch的分支:

sweetdum@sweetdum-ASUS:~/GitEx$

git branch PATCH

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout PATCH

Switched to branch

'PATCH'

sweetdum@sweetdum-ASUS:~/GitEx$

git apply patch

sweetdum@sweetdum-ASUS:~/GitEx$

git commit -a -m "Patch Apply"

[PATCH 9740af8]

Patch Apply

1 files changed, 1

insertions(+), 0 deletions(-)

看囊卜,現(xiàn)在我們?cè)赑ATCH分支中應(yīng)用了這個(gè)補(bǔ)丁,我們可以把PATCH分支和Fix比對(duì)一下错沃,結(jié)果肯定是什么也沒(méi)有栅组,說(shuō)明PATCH分支和Fix分支完全一樣。patch應(yīng)用成功枢析。即使有多個(gè)文件gitdiff也能生成一個(gè)patch玉掸。

2.gitformat-patch生成的git專(zhuān)用補(bǔ)丁。

我們同樣用上面那個(gè)例子的工作目錄醒叁,這次司浪,我們?cè)贔ix分支中的a添加了新行之后,用gitformat-patch生成一個(gè)patch辐益。

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout Fix

Switched to branch

'Fix'

sweetdum@sweetdum-ASUS:~/GitEx$

echo 'Fix!!!'>>a

sweetdum@sweetdum-ASUS:~/GitEx$

git commit -a -m "Fix1"

[Fix 6991743] Fix1

1 files changed, 1

insertions(+), 0 deletions(-)

sweetdum@sweetdum-ASUS:~/GitEx$

git format-patch -M master

0001-Fix1.patch

gitformat-patch的-M選項(xiàng)表示這個(gè)patch要和那個(gè)分支比對(duì)《习粒現(xiàn)在它生成了一個(gè)patch文件,我們看看那是什么:

sweetdum@sweetdum-ASUS:~/GitEx$

cat 0001-Fix1.patch

From

6991743354857c9a6909a253e859e886165b0d90 Mon Sep 17 00:00:00 2001

From: Sweetdumplings

Date: Mon, 29 Aug

2011 14:06:12 +0800

Subject: [PATCH]

Fix1

---

a |? ? 1 +

1 files changed, 1

insertions(+), 0 deletions(-)

diff --git a/a b/a

index

4add65f..0d295ac 100644

--- a/a

+++ b/a

@@ -1 +1,2 @@

This is the file a.

+Fix!!!

--

1.7.4.1

看智政,這次多了好多東西认罩,不僅有diff的信息,還有提交者续捂,時(shí)間等等垦垂,仔細(xì)一看你會(huì)發(fā)現(xiàn)宦搬,這是個(gè)E-mail的文件,你可以直接發(fā)送它劫拗!這種patch间校,我們要用gitam來(lái)應(yīng)用。

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout master

Switched to branch

'master'

sweetdum@sweetdum-ASUS:~/GitEx$

git branch PATCH

sweetdum@sweetdum-ASUS:~/GitEx$

git checkout PATCH

sweetdum@sweetdum-ASUS:~/GitEx$

git am 0001-Fix1.patch

Applying: Fix1

sweetdum@sweetdum-ASUS:~/GitEx$

git commit -a -m "PATCH apply"

在提交了補(bǔ)丁之后页慷,我們可以再看看目前文件a的情況:

sweetdum@sweetdum-ASUS:~/GitEx$

cat a

This is the file a.

Fix!!!

果然憔足,多了一個(gè)Fix!!!

不過(guò)要注意的是,如果master與Fix分支中間有多次提交酒繁,它會(huì)針對(duì)每次提交生成一個(gè)patch滓彰。

3.兩種patch的比較:

兼容性:很明顯,gitdiff生成的Patch兼容性強(qiáng)州袒。如果你在修改的代碼的官方版本庫(kù)不是Git管理的版本庫(kù)揭绑,那么你必須使用gitdiff生成的patch才能讓你的代碼被項(xiàng)目的維護(hù)人接受。

除錯(cuò)功能:對(duì)于gitdiff生成的patch郎哭,你可以用gitapply --check查看補(bǔ)丁是否能夠干凈順利地應(yīng)用到當(dāng)前分支中他匪;如果gitformat-patch生成的補(bǔ)丁不能打到當(dāng)前分支,gitam會(huì)給出提示夸研,并協(xié)助你完成打補(bǔ)丁工作邦蜜,你也可以使用gitam -3進(jìn)行三方合并,詳細(xì)的做法可以參考git手冊(cè)或者《Progit》亥至。從這一點(diǎn)上看畦徘,兩者除錯(cuò)功能都很強(qiáng)。

版本庫(kù)信息:由于gitformat-patch生成的補(bǔ)丁中含有這個(gè)補(bǔ)丁開(kāi)發(fā)者的名字抬闯,因此在應(yīng)用補(bǔ)丁時(shí),這個(gè)名字會(huì)被記錄進(jìn)版本庫(kù)关筒,顯然津畸,這樣做是恰當(dāng)?shù)幕摺R虼耍壳笆褂肎it的開(kāi)源社區(qū)往往建議大家使用format-patch生成補(bǔ)丁。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末综芥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子沦泌,更是在濱河造成了極大的恐慌溉痢,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件包雀,死亡現(xiàn)場(chǎng)離奇詭異宿崭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)才写,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)葡兑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奖蔓,“玉大人,你說(shuō)我怎么就攤上這事讹堤∵汉祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵洲守,是天一觀(guān)的道長(zhǎng)疑务。 經(jīng)常有香客問(wèn)我,道長(zhǎng)梗醇,這世上最難降的妖魔是什么知允? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮婴削,結(jié)果婚禮上廊镜,老公的妹妹穿的比我還像新娘。我一直安慰自己唉俗,他們只是感情好嗤朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著虫溜,像睡著了一般雹姊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上衡楞,一...
    開(kāi)封第一講書(shū)人閱讀 51,155評(píng)論 1 299
  • 那天吱雏,我揣著相機(jī)與錄音,去河邊找鬼瘾境。 笑死歧杏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迷守。 我是一名探鬼主播犬绒,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼兑凿!你這毒婦竟也來(lái)了凯力?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤礼华,失蹤者是張志新(化名)和其女友劉穎咐鹤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體圣絮,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祈惶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片行瑞。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奸腺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出血久,到底是詐尸還是另有隱情突照,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布氧吐,位于F島的核電站讹蘑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏筑舅。R本人自食惡果不足惜座慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翠拣。 院中可真熱鬧版仔,春花似錦、人聲如沸误墓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谜慌。三九已至然想,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間欣范,已是汗流浹背变泄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恼琼,地道東北人妨蛹。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像晴竞,于是被迫代替她去往敵國(guó)和親滑燃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容