fsl 环境搭建与tftp nfs samba配置 分包压缩

时间:2021-10-29 03:44:47

提取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问题

1.对于单个apk:
在该apk的源码的android.mk中增加LOCAL_DEX_PREOPT := false就可以了。
2.对于整个源码:
修改build/core/package.mk和build/core/jave_library.mk(配置编译出来的jar包是),将其中的LOCAL_DEX_PREOPT := true改为LOCAL_DEX_PREOPT := false。


 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-inetd 

mkdir /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


还原文件用下面的命令:   bz2.aa
cat a.chm.tar.bz2.a* | tar -jx