提取adb root权限
/system/core/adb/adb.c 中
清空 should_drop_privileges 返回0
修改defaut.prop
ro.secure=0
ro.allow.mock.location=0
ro.debuggable=1
#persist.sys.usb.config=mtp
persist.sys.usb.config=adb
源码在
/build/core/main.mk
中修改
关闭秘钥认证
/root/init.rc中
# Enable adb security for JB4.2.2
setprop ro.adb.secure 1
将 1 改成 0
修改 磁盘可写权限
/root/fstab.freescale
/dev/block/mmcblk0p5 /system ext4 ro
将ro改成 rw
chmod XX /system/
不过有了root权限可以手动改
mount –o rw,remount –t ext4 /dev/block/mmcblk0p5 /system
chmod xxx
就可以体验adb push 畅通无阻的快感了…… …
==============================================================================
log添加
/system/core/include/cutils/log.h
#define LOG_NDEBUG 0 可以打开更多编译开关
添加自己的log
#define LOG_TAG "charlieu"
#define C_LOG(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
C_LOG("%s",__FUNCTION__ );
========================================
10_20 音频添加log
hal hardware\imx\alsa\tinyalsa_hal.c ==> ALOGW("CCC_adev_open===");
/system/core/include目录下的cutils 添加#define LOG_NDEBUG 0 将打印media_jni中的ALOGV
#include <cutils/log.h> 中定义
#define CALOGW(...) printf("CW/" __VA_ARGS__) 不写入log
#include <android/log.h>
#define LOG_TAG "charlieu====================="
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
================================================================================
media api /frameworks/base/media/java/android/media/..
media_jni /frameworks/base/media/jni
media.so media_native.so /frameworks/av/media
audioflinger /frameworks/av/service/audioflinger/...
========================================
关于odex问题
package的编译开关在device/fsl/imx6/imx6.mk中
注意点1 要使以上配置生效 需要删除out/target/product/*
注意点2 要使java中res的xml配置生效 需要删除板子中/data/*
=======================================
添加app
add Android.mk
内容如下
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := Ch_Demo
include $(BUILD_PACKAGE)
删除gen
============================================
开机动画需将
bootanimation.zip
放入/system/media/中
源码修改device/fsl/sabresd_6q/boardconfig.mk
中添加
# build for bootanimate
PRODUCT_COPY_FILES += \
system/media/bootanimation.zip:system/media/bootanimation.zip
================================================================
adb logcat -h
adb logcat -c 清除所有以前的日志
adb logcat -d 这个命令是在时间上倒过来用的 就是你先操作 然后敲这个命令 打出来的log就是你刚操作那段时间的log 而且自动退出log模式
adb logcat -s XXX这个是设置过滤用的 比如你只想查看FirstDemo的日志 就替换最后的XXX
java 空指针
byte[] cby = null;
cby[0] = 1;
c 空指针
int *a = 0;
*a = 2;
java log
String _thisMethodName = new Exception().getStackTrace()[0].getMethodName();
Log.d(TAG,_thisMethodName);
freopen("/sdcard/tmp/loglog2.txt", "aw", stdout);
printf("hello\n");
printf("world");
thats fun!
编译开关
device/fsl/imx6/soc/imx6dq.mk
添加ssh
启动cmd start-ssh
将/system/etc/ssh/sshd_config 拷贝到/data/ssh/sshd_config 需要配置
setprop net.change net.dns2
setprop net.eth0.config 1
setprop net.eth0.dns1 114.114.114.114
setprop net.eth0.dns2 192.168.10.1
setprop net.eth0.ip 192.168.10.104
setprop net.eth0.mode manual
setprop dhcp.eth0.ipaddress 192.168.10.103
setprop persist.sys.timezone Asia/Shanghai
设置ip与时区
如果是静态ip 需要设置后ficonfig eth0 up
#include <android/log.h>
__android_log_print(ANDROID_LOG_INFO,"charlieu","%s",__func__);
==================================
记录一些常用的cmd
/proc/<pid>/maps smaps
strace 查看系统调用
top -m 3 查看cpu占有率
packages/apps/settings/src/com/android/settings/settings.java
//charlieu default developer
this.getSharedPreferences(DevelopmentSettings.PREF_FILE,
Context.MODE_PRIVATE).edit().putBoolean(
DevelopmentSettings.PREF_SHOW, true).apply();
build/core/pathmap.mk
FRAMEWORKS_BASE_SUBDIRS := \
frameworks/base/Android.mk
# FRAMEWORKS_BASE_SUBDIRS comes from build/core/pathmap.mk
LOCAL_SRC_FILES := $(call find-other-java-files,$(FRAMEWORKS_BASE_SUBDIRS))
=======================================
Tftp
apt-get install tftpd tftp openbsd-inetdmkdir /home/tftpboot
chmod 777 /home/tftpboot
gedit /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /opt/tftpboot
sudo /etc/init.d/openbsd-inetd restart
MX6Q SABRESD U-Boot >tftpboot uImage
======================================================================================
NFS
apt-get install nfs-kernel-server
gedit /etc/exports
/home/android_nfs rootfs *(rw,sync,no_root_squash)
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
=======================================================
uboot 启动参数设置
setenv bootfile uImage
setenv nfsroot /home/android_nfs
setenv bootcmd 'dhcp;bootm'
set bootargs console=ttymxc0,115200 init=/init ip=dhcp nfsroot=${serverip}:/${nfsroot} video=mxcfb0:dev=lcd,FRIDA-WSVGA,if=RGB24,bpp=32 video=mxcfb1:off video=kxcfb2:off fbmen=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale
======================================================================
另外还需要参照fresscale文档修改init.rc init.freescale.rc
=====================================================================
====================================================================
sudo apt-get update
sudo apt-get install samba
sudo apt-get install smbfs //cifs-utils
备注一个samba 字段
[santoku]
comment = home
path = /home/santoku
writeable = yes
guest ok = yes
vi /etc/samba/smb.conf
/etc/init.d/smbd restart
登陆==》192.168.xx.xx\santoku
cat a.chm.tar.bz2.a* | tar -jx