android app

repobj init -u smamirr:platform/manifest -b phone/arti ni_ss
8926_jb_mr2(SHELL_T)


framebase/base 目录下,列出所有的分支名: git branch -r
git push lenovo HEAD:refs/for/phone/k900_ota
只能init一次
repo sync
//编译命令 k6
repobj init -u smamirr:platform/manifest -b phone/k6_jb_mr1
source build/envsetup.sh source build/envsetup.sh
.build/envsetup.sh lunch
lunch kiton-eng
make -j24 update-api;make redhookbay -j24/ 
mmm ~/work/k7/packages/apps/IndoorLocation -B//没修改过文件必须加-B >>make -j24 update-api;make -j24
cd Linux/android
mmm ~/work/k7/packages/apps/IndoorLocation
----出现install目录 
fex -u install目录。




//install apk.
mmm 包名 -B
mmm packages/apps/Settings/ -B
有Android.mk 文件时才能编译。
app层编译路径:packages/apps/Settings/src/com/android/Settings/wifi


//fex地址
10.110.7.99
fex -u out/target/product/redhookbay/system/app/Setting.apk/
zhangshuai9/work/k900_4.3/out/target/product/redhookbay/system/app/setting.apk
//工作站网站。
gerrit sc.lenovo.com:8080
//打开eclipse
zhangshuai9@bjws69:~$ eclipse
//安装apk的流程。
adb remount
adb shell 进入手机管理。
ls 列出所有的目录文件。
system/app 进入system 路径
cp 备份需要安装的apk 到apk.bak
adb push 桌面上的文件名 system/app (此为4.3的路径4.4的路径为priv-app里面)
adb logcat>a.log
adb install -r 文件地址。
adb logcat -s AndroidRuntime
1.adb shell
2.logcat -c
3.logcat -s wanggza
adb reboot bootloader
fastboot flash boot c:\Users\zhangshuai9\boot.img
fastboot flash system c:\Users\zhangshuai9\system.img
fastboot flash -S 200M system system.img
fastboot reboot
如何自己编译升级包:
source /opt/android.conf 
cd integrate
source setenv.sh
lunchprod 项目名称-eng #工程模式版本,如果编译用户模式版本请使用项目名称-user
make all #全部编译
make qpst #生成qpst文件
make copybin #将生成的所需文件拷贝至bin目录
make copyqpst #拷贝生成qpst文件压缩包(如果要生成qpst文件,到这步就可以了,生成的版本在integrate/rel文件夹下)
out 目录下的system.img删除之后,在LINUX/android 目录下运行make -j24会重新编译system.img


我刚把你跟目录的/home/zhangshuai9# rm -rf .eclipse/ 删掉了,你再打开试试
...........testmode
adb reboot dloadmode qpst
adb shell;
am stack boxes;
cat proc/kmsg 打印kernel的log
adb shell cat /proc/kmsg > 919kernel.log
https://work.lenovo.com/kb/display/FRAMEWORKA/K7_L
framework/base下执行 git branch -r 
####5993# 
*#*#5993#*#*
ibus-setup// 设置输入法
####3333# // 保存系统日志
CTs 目录 下grep -r testCheckForDupicateOutput . // 搜索系统字符串。
gedit ./tests/tests/security/src/android/security/cts/ClonedSecureRandomTest.java: public void test.....
adb shell dumpsys notification > log
adb shell dumpsys meminfo | grep "allocated:" | awk '{total = total + $5}END{print total}'
pm list package –f
make bootimage
make bootloader
pm path com.arcsoft.wideselfie.app 
find -name ./vendor/ WideSelfie.apk传递。。
cd /data/system/ 


vi packages.xml 
git log -p 
git log -p WifiManager.javagit 
adb shell get prop(待测试)
10.110.7.100:2012
1、设置->显示->屏幕待机->30分钟
2、设置->锁屏->屏幕锁定方式->选择 无
3、拨号盘-》输入####537999# 进入到开发者选项 -》分别勾选 不锁定屏幕 、USB调试、允许模拟位置 三个选项
4、切换语言为english
dumpsys alarm命令查看到AlarmManager现在管理的所有Alarm
gitk Makefile
make all -j300
\\bjdoc.lenovo.com\department\SW_Framework_Dev\Innovation_Team\Software\Ubuntu 14.10虚拟机
cat s7_defconfig | grep "loop" -i
####3333# 抓log
//***********三方兼容问题******************//
force stop died crash kill dexopt
1. 未找到64位的so文件:
E/AndroidRuntime( 5043): java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/app/ChunyuDoctor_V500_20150123.apk"],nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]] couldn't find "libcytool.so"
2. 已经找到,但是非64位:
LogSummaryInfo: {apkName, me.chunyu.ChunyuDoctor }{version, 5.0.0.20150126 }{reason, java.lang.UnsatisfiedLinkError: dlopen failed: "/system/lib64/libcytool.so" is 32-bit instead of 64-bit }
Fixed Bug时描述:
? Rootcause:
APP 不支持64位系统,是APP本身问题
? Solution:
需要APP自己更新,添加64位的abi支持
? Comment:
APP问题,非系统问题,建议won't fix
1.ZOOM/S7-L(64位)上无法兼容某些32位的应用(高通case:01913339)。log如下:
02-06 10:09:46.064 20753 20782 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.mgyun.shua.su/app_lib/libdevhlp.so" is 32-bit instead of 64-bit
2.ZOOM/S7-L(64位)上某些应用在sdcard0上创建的database一直提示是只读database无法写入数据(高通case:01914306)。log如下:
02-06 11:37:43.752 13180 13224 E AndroidRuntime: Caused by: android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a readonly database (code 1032)
02-06 11:37:43.752 13180 13224 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method)
02-06 11:37:43.752 13180 13224 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:555)
02-06 11:37:43.752 13180 13224 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:384)
02-06 11:37:43.752 13180 13224 E AndroidRuntime: ... 21 more


3. ZOOM/S7-L/K7-L某些应用打开时提示Fatal signal 11 (SIGSEGV), code 2, fault addr 0xb6ec27fc in tid 26070 (dex2oat)错误(高通case:01909127)。log如下:
log过长,详见KSEVENL-1680
JNI DETECTED ERROR IN APPLICATION
上[ro.kernel.android.checkjni]: [1] ;这样系统会检查so库的方法调用,有小错误也会发signal 6让进程退出;
我们将[ro.kernel.android.checkjni]: [1] 改为 [ro.kernel.android.checkjni]: [0],
权限问题 Duplicate 到 ZOOM-3987
type=1400 audit(0.0:4894): avc: denied{ mmap_zero } for scontext=u:r:untrusted_app:s0 tcontext=u:r:untrusted_app:s0 tclass=memprotect permissive=0 W/com.jinju.maths(25982): type=1400 audit(0.0:4894): avc: denied { mmap_zero }
adb shell getprop | findstr rtccd ..
date -d @1429140360
\\bjdoc.lenovo.com\department\SW_Framework_Dev\Innovation_Team\Software
/* [lenovo_cnn,zhangshuai9,zoom-111,20150909], alarm type 1,3, add */
/* [lenovo_cnn,zhangshuai9,zoom-111,20150909], end */
env | grep storage
/*[lenovo_fw,itcode,featureName] ,Decription, add/modify/delete/*/
//original
//.....original code
//.....original code
//new
.....new code


.....new code
/*[lenovo_fw,itcode,featureName] ,end*/
手机重启问题
ServiceManager:
3043 3043 I Process : Sending signal. PID: 3043 SIG: 9 // 进程号 Thread号, 如果相等就是这个进程的主线程,加一就代表是3044这个进程的第一个子线程,我们看主线程。
adb reboot edl flatBuild browse 选择ddr loadxml 进到9008 就可以点击download了
framework/base/core/res framework-res.apk
framework/base/service services.jar
mmm ~/work/NFCAPP/LenovoNfc -B
git clone sma:apps/LenovoNfc -b Nfc_VIB3.0
git push origin  HEAD:refs/for/Nfc_VIB3.0
在log文件夹下增加了一个aplog.txt文件,记录了当前正在保存log的文件夹名字,通过它可以确定看哪个文件夹下的log。
aplog.txt文件内容如下所示:
D:\F\lephone\x3\debug\150715>adb shell cat /sdcard/log/aplog.txt
2015_07_15_07_47_31


另外,如果只想通过adb命令pull当前正在记录的log,可以通过lenovo.log.path属性来确定文件夹,如下adb命令即可。
D:\F\lephone\x3\debug\150715>adb shell "getprop | grep lenovo.log.path"
[persist.sys.lenovo.log.path]: [/data/media/0/log/2015_07_15_07_47_31]
D:\F\lephone\x3\debug\150715>adb pull /data/media/0/log/2015_07_15_07_47_31 aplog
adb shell dumpsys package com.lenovo.nfc
adb pull data/system/package.xml
不是 password是 abcd-1234
passcode 打开rsa 输入pin1234
adb shell dumpsys package list 
adb shell pm list packages
这是把包名打出来
git log --oneline -n 5
git clone sma:VIBEUI/Apps_3.0 -b V3.0.0 
git push origin HEAD:refs/for/V3.0.0
1、拨号盘输入“####5425#”
2、第一个输入框输入:broadcast
3、第二个输入框输入:1
4、点击“OK”按钮;
5、重启手机;
6、复现后抓取离线log;
date -d "1970-01-01 UTC 121312321 seconds"
logd 中的log可以使用 adb shell “logcat | grep bug_6838_test”获取。
adb pull init.lenovo.rc 
adb shell "cat /sys/kernel/debug/tzdbg/log -name "*".java | xargs grep "alarmManagerService"
gitk ./AlarmManager.cpp ct
adb shell "pm list packages -f | grep SchedulePowe"
adb install -r ````
git clone sma:VIBEUI/Apps_dev -b V3.1.0 
git clone sma:system_strip_apps/SchedulePowerOnOff -b M_V
netstat -ano | findstr "5037"
dumpsys activity activities | grep mFoc
pm list packages -f | grep settings


source build/envsetup.sh
lunch zoom_fdd-eng
make update-api
make
make pack
adb shell am start -a com.android.settings.SCHEDULE_POWER_ON_OFF_SETTING
http://blog.csdn.net/tumuzhuanjia/article/details/39555445
chown system:system bootanimation 给bootanimation的owner 由 boot 转化为 system
chmod 777 bootanimation 
1、如何知道当前Activity的包名:
运行命令:adb shell "dumpsys activity | grep  Focuse" 
输出:mFocusedActivity: ActivityRecord{41a986b0 u0  com.yulong.android.launcher3/.Launcher t3} 
这里的com.yulong.android.launcher3就是包名!
2、通过包名确定APK的名字:
运行命令:adb shell "pm list packages -f | grep com.yulong.android.launcher3"
输出:package:/system/priv-app/CP_Launcher3.apk=com.yulong.android.launcher3
这里的/system/priv-app/CP_Launcher3.apk即包名对应的APK文件名。
//查看moto分支
git branch -a | grep remotes/m
adb shell dumpsys activity activities|processes.
git format-patch -2 //打包两个patch vi
patch -p1 < 0001XXXXXX.patch
patch -p2 < 0002XXXXXX.patch
http://dashboard.am.mot.com:9090/gerrit/project_sme/
adb root  adb disable-verity
cd data/system/ cd dropbox 查看最下面的一个txt文件,可以看到crash的信息
adb shell cd system/framework/arm|arm64 rm -rf boot.* 才能使framework.jar 生效。
终端通过 ps -t | grep Binder,能看到当前所有的Binder线程
gedit XXXX  &
adb shell dumpsys package -f > dumpsyspackage.txt
// xxx.cpp
...
#ifdefine XXX_FEATURE
property_set(xx_property_name, value)
#endif
//查看moto代码
https://sse.am.mot.com/source/search?q=Feature-3608&defs=&refs=&path=&hist=&type=&project=mmnc-8994
3. In init.rc, wrap the actions for the feature only when the property is set
// xxx.rc
...
on property:xx_proprty_name=value
     actions ...
data/bug2go/user@XXXXX
data/aplogd
com.lenovo.security ls -Z可以查看selinux 权限。
在这个目录下执行repo sync ./
adb shell logcat -b system  Slog
adb shell logcat -b main  Log
adb shell cat proc/cmdline
nautilus ./ 打开当前文件夹。
https://work.lenovo.com/kb/display/GOOGLEIM/CTS  cts 包 下载
https://work.lenovo.com/kb/pages/viewpage.action?pageId=63349536&moved=true Moto 签名


1. 最基础的要注意两个地方: 一个是在dts里面要配置打开RTC_ALARM的使能, 这样解析dts的时候会得到这个开关. 然后第二个是在启动脚本里面, 要给RTC这个module设定一个参数, 使能关机闹钟.


2. 调用流程


framework会调用系统调用timerfd_set_time, 系统调用会调用do_timerfd_settime ->set_power_on_alarm->rtc_set_alarm->rtc_timer_enqueue->__rtc_set_alarm->qpnp_set_alarm


最后驱动会设置rtc定时器到寄存器中并使能rtc作为PON的标志位.


3. 调试注意点


1. 首先可通过/d/spmi/spmi0/下面的接口, echo 寄存器地址(比如0x6140)到address, 再echo 需要读的字节数到count. 然后直接cat data读到spmi寄存器, 确定RTC时间设定到的寄存器中, 并且使能了RTC唤醒和PON功能


2. 如果这里确定后, 关机还是不起来, 可能是shutdown的地方覆盖了之前的设置. 确定在shutdown的时候有没有设置成了shipmode, 如果走到shipmode就会覆盖掉rtc.


3. shutdown的log可能打不出来, 最后我用bug_on的方式产生dump, 打印出来了关机log.
git reset --hard HEAD~1
mount -o rw,remount /system 挂载system
flashall.bat /ec /eu
a. Source /opt/conf/moto.conf
b. Source build/envensetup.sh
c. Lunch potter-retail-userdebug
d. Make update-api –j32(make all过的同学可忽略此步骤)
e. Make sdk –j32
f. Make cts –j32
生成的cts包在out/host/linux-x86/cts/android-cts.zip


以后的调试可以 mm 生成对应的.apk 并置换android-cts.zip解压后中的对应文件即可
pm disable com.htc.htclocationservice/com.htc.htclocationservice.AutoSettingReceiver
adb shell dumpsys activity | findstr "mFocusedActivity
_
git push origin HEAD:refs/for/fm_dev
另外一个:git push origin HEAD:refs/for/master
dumpsys appops表示的是AppOpsManagerService用于管理和配置权限
services.jar生效不用删东西
如果推的是framework.jar需要删arm里的所有东西
只是moto项目
删除文件 [workspace]/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
git clone star:platform/packages/apps/DataMonitor -b app_m  //定时关机
     CN编译方法:
            userdebug编译: motorola/build/bin/build_device.bash -b nightly -p albus_retcn -g  -jN   (N为线程数)
            user编译:   motorola/build/bin/build_device.bash -b nightly -p albus_retcn -f  -jN   (N为线程数)
     CMCC编译方法
            usedebug编译:  motorola/build/bin/build_device.bash -b nightly -p albus_cmcc -g  -jN   (N为线程数)
            user编译:   motorola/build/bin/build_device.bash -b nightly -p albus_cmcc -f  -jN   (N为线程数)
adb logcat -s "AndroidRuntime" DEBUG libc
git stash 
git pull --rebase
git stash pop
// ZUK components-panel
https://idart.mot.com/browse/IKSWPRCN/?selectedTab=com.atlassian.jira.jira-projects-plugin:components-panel
// chrome 代理
http://web.lenovo/moto.pac


setprop log.tag.zui_safecenter D
repo sync -c 同步某一个目录不行的话, 就把 -c 去掉
WINDOW MANAGER LAST ANR (dumpsys window lastanr)
WINDOW MANAGER POLICY STATE (dumpsys window policy)
WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)
WINDOW MANAGER SESSIONS (dumpsys window sessions)
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
WINDOW MANAGER TOKENS (dumpsys window tokens)
WINDOW MANAGER WINDOWS (dumpsys window windows)
Log.d("Joshua","xxxx",new Throwable());
commiter error 有可能是eclipse 和 gedit 里的内容不一致。










 







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值