笔记

adb 安装                                             
1.设置好环境变量
2.进入 cd /etc/udev/rules.d
3.建立文件51-android.rules
4.写入usb数据到文件中:
 UBSYSTEM=="usb",ATTRS{idVendor}=="1f3a",ATTRS{idProduct}=="1002",MODE=0666"
5.增加 读写权限 chmod 777 51-android.rules
6.新建 touch ~/.android/adb_usb.ini
7.增加0x1f3a 到adb_usb.ini中   
Android.mk书写方法                                   
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
TARGE := camera_test
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := $(TARGE)
LOCAL_SRC_FILES := $(call all-subdir-c-files)
include $(BUILD_EXECUTABLE)   
glibc安装方法                                   
1.下载源码包:http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
2.解压 tar -zxvf glibc-2.14.tar.gz
3.进入解压后的文件夹并创建编译目录mkdir build
4.配置configure
  $export CFLAGS="-O2 -U_FORTIFY_SOURCE -fno-stack-protector"
  $../configure --prefix=/usr/lib64/glibc-2.14 --disable-profile --enable-add-ons    --with-headers=/usr/include --with-binutils=/usr/bin
5. make sudo makeinstall   
JNI层调用C库                                       
1.编写好java应用,调用C库
    javac :编译指令
    java  : 执行指令
    javah :  javah -jni person 生成.h文件,再将h文件改成c文件即可
2.写和C语言,生成C库
    注意jni.h和jni_md.h的路径
    编译:gcc -fPIC -c add.c -o add.o
    生成连接动态库:gcc -shared add.o -o libadd.so (调用的名字为"add",这里     得生成libadd.so)
3.编译java
    修改程序环境变量:LD_LIBRARY_PATH=. java person
smb服务器安装以及配置
1.安装samba  sudo apt-get install samba
2.设置samba配置文件
  #sudo vim /etc/samba/smb.conf //编辑smb服务器的主配置文件
    security = share
    [e]       
    comment=VMware Ubuntu Share
    path=/home/jerry/e
    public=yes
    writable=yes
    force user = jerry
    force group = jerry
#e文件夹为共享文件夹,需先建立,并提供读写权限
#若需共享多个文件价,则将上述配置信息复制一份再修改其文件夹名即可
3.重启smaba    #etc/init.d/smbd restart 
TFTP服务器安装以及配置
1.安装相关服务:sudo apt-get install tftp-hpa tftpd-hpa xinetd
2. 新建配置文件 /etc/xinetd.d/tftp
    sudo vim /etc/xinetd.d/tftp
修改/etc/xinetd.d/tftp内容为:
  service tftp
  {
     disable = no
     socket_type = dgram
     protocol = udp
     wait = yes
     user = root
     server = /usr/sbin/in.tftpd
     server_args = -s /tftpboot -c
     per_source = 11
     cps = 100 2
  }
注意:第九行中server_args = -s /tftpboot -c
-c参数是允许上传用的,参数/tftpboot则是你的tftp目录,修改成你的目录即可,但是笔者建议在根目录下,方便
3:修改配置文件/etc/default/tftpd-hpa
    sudo vim /etc/default/tftpd-hpa
 修改为:
# /etc/default/tftpd-hpa
     TFTP_USERNAME="tftp"
     TFTP_DIRECTORY="/tftpboot " //改成你想要的那个tftpboot
     TFTP_ADDRESS="0.0.0.0:69"
     TFTP_OPTIONS="-l -c -s"        //这里是选项
4:在根目录下新建tftpboot目录,并修改权限
     mkdir /tftpboot
     sudo chmod 777 -R  /tftpboot
5:在/tftpboot中新建一个测试文件test
        touch  test
6:【重要】重启服务,修改配置文件的任何地方都要重启服务
    sudo /etc/init.d/xinetd reload
    sudo /etc/init.d/xinetd restart
7:关闭防火墙
    sudo ufw disable
8:本机测试
   tftp 127.0.0.1
   get test
9、Busybox中tftp命令的用法
命令格式为:
tftp [option] ... host [port]
如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。
-g表示下载文件(get)
-p表示上传文件(put)
-l表示本地文件名(local file)
-r表示远程主机的文件名(remote file)
例如,要从远程主机192.168.1.2上下载embedexpert,则应输入以下命令
tftp -g -r embedexpert 192.168.1.2


NFS 安装与配置
一、NFS安装
    $ sudo apt-get install nfs-kernel-server nfs-common portmap
二、NFS配置
    2.1 配置/etc/exports文件
    $ sudo vim /etc/exports
在文件最后加入如下内容:
{{
      /rootnfs *(rw,sync,no_root_squash)
}}
三、重启服务
$ sudo /etc/init.d/portmap restart
$ sudo /etc/init.d/nfs-kernel-server restart
四、测试
    4.1 显示出共享出来的目录
    $ showmount -e
    4.2 将nfs的rootnfs目录挂载到本地磁盘上。
    $ sudo mount -t nfs localhost:/rootnfs /mnt –o nolock


例:
  ifconfig eth0 192.168.1.254 &&
  mount -t nfs 192.168.1.225:/rootnfs ./mnt -o nolock
    4.3 查看挂载情况
    $ df
    4.4 卸载挂载
    $ sudo umount /mnt
SSH安装
sudo apt-get install openssh-server 
修挂载盘使用权限
mount -o remount,rw   path 
全志makefile书写
PWD=$(shell pwd)
KDIR := ../../../linux-3.4
ARCH := arm
CROSS_COMPILE := /usr/local/external-toolchain/bin/arm-linux-gnueabi-  #指定编译器
TARGE := example.o
obj-m += $(TARGE)
install: build
    adb push ./example.ko /test   #上传都板子上
build:
    make  -C $(KDIR)  M=$(PWD)  ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules   
clean:
    @rm -rf *.o *.ko .*.cmd *.mod.c *.order *.symvers .tmp_versions *~




设置内核I2C频率
\lichee\linux-3.4\arch\arm\mach-sun7i\include\mach\i2c.h
FM1188得50K


去掉安卓虚拟导航栏
一、(此方法只适用于android4.2系统)
将文件
vim frameworks/base/core/res/res/values/config.xml      +875
中<bool name="config_showNavigationBar">false</bool>  设置成false
2. 系统Hide Status Bar(状态栏)    frameworks/base/core/res/res/values/dimens.xml
   把  <dimen name="status_bar_height">25dip</dimen> 修改为<dimen name="status_bar_height">0dip</dimen>
3. 系统Hide Navigation Bar(虚拟按键)


      frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java


在start函数中注释掉 "addNavigationBar();"和repositionNavigationBar()


隐身某个键值
修改文件/work/work/allwinner/a20_ococci/android/frameworks/base/packages/SystemUI/res/layout-sw600dp
去掉状态栏
grep -nsr "status_bar_height" ./ /*这样不至于有那么多不存在的文件出现*/
将下面文件中关于status_bar_height定义的改为0dip.
android4.0/frameworks/base/core/res/res/values-large/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw480dp/dimens.xml
android4.0/frameworks/base/core/res/res/values-sw600dp/dimens.xml
android4.0/frameworks/base/core/res/res/values/dimens.xml
将安卓固定为横屏模式
1.在/base/core/res/res/values/config.xml
<bool name=”config_enablelockScreenRotation”>false</bool>,这里设置了false
<bool name="config_allowAllRotations">false</bool>这里设置了false


2.修改frameworks\base\core\java\android\app\Activity.java文件中的
setRequestedOrientation(int requestedOrientation)方法:
注释访方法体内容!!
getRequestedOrientation(int requestedOrientation)方法:
返回0;
3.修改frameworks\base\core\java\android\content\pm\PackageParser.java文件中的
在parseActivity方法里把a.info.screenOrientation = sa.getInt(com.android.internal.R.styleable.AndroidManifestActivity_screenOrientation,ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);修改为a.info.screenOrientation = 0;


android 修改默认时间为24小时格式 .
在frameworks\base\packages\SettingsProvider\res\values\defaults.xml
文件中添加 一行 <string name="time_12_24" translatable="false">24</string>
 frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
文件中找到loadSystemSettings()函数,在这个函数里添加一行
loadStringSetting(stmt, Settings.System.TIME_12_24, R.string.time_12_24);








使安卓支持有线网卡
修改文件\android\frameworks\base\data\etc\platform.xml
   <permission name="android.permission.INTERNET" >
        <group gid="inet" />
        <group gid="net_admin" />//添加这句
    </permission>
默认的.config在如下目录
\lichee\linux-3.4\arch\arm\configs\sun7ismp_android_defconfig




改变安卓文件系统权限:重新指定权限挂载即可
mount -o rw -o remount /dev/block/by-name/system /system


屏蔽首次启动的引导设置
添加内容
PRODUCT_PROPERTY_OVERRIDES += \
    ro.setupwizard.mode= DISABLED 
到文件\android\device\softwinner\welbell-A8_E\welbell_A8_E.mk
中,再重新编译android即可


给APK签名(root)方法
1、在AndroidManifest.xml设置android:sharedUserId="android.uid.system"。
2、编译通过后,从eclipse导出未签名的SetGPS.apk。
3、使用\out\host\linux-x86\framework\signapk.jar +\build\target\product\security\platform.pk8 +platform.x509.pem
4、执行“java -jar signapk.jar platform.x509.pem platform.pk8  calibration_screen.apk calibration_screen_root.apk”做平台签名得到calibration_screen_root.apk。
这样不用root push到system/app/ ,直接 install 安装后即可使用
给APK签名(用户)方法
创建key,需要用到keytool.exe (位于jdk1.6.0_24\jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入D:\>keytool -genkey -alias welbell.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
       -alias demo.keystore 别名 demo.keystore
       -keyalg RSA 使用RSA算法对签名加密
       -validity 40000 有效期限4000天
       -keystore demo.keystore */
D:\>jarsigner -verbose -keystore welbell.keystore -signedjar welbell _signed.apk welbell.apk  welbell.keystore
/*说明:-verbose 输出签名的详细信息
       -keystore  welbell.keystore 密钥库位置
       -signedjar welbell _signed.apk welbell.apk welbell.keystore 正式签名,三个参数中依次为签名后产生的文件welbell _signed,要签名的文件welbell.apk和密钥库welbell.keystore.*/
将APK打入ROM中 并且自动安装
\android\device\softwinner\polaris-common\prebuild\apk
然后再修改一下:
\android\device\softwinner\polaris-common\prebuild\apk\Android.mk
android\device\softwinner\polaris-common\polaris-common.mk








GIT 使用方法:


建立库:
新建文件夹,在文件夹下执行git init
Git add –A 添加当前文件下的所有文件
Git commit –m “ 1….” 新增log
Git push origin master 推送到主分支
Git checkout filename  添加删除的文件
Git add filename      添加文件
Git status            参看添加状态










删除ROM中APK
1、android自带的apk。android的自带的apk在“android4.0\packages\apps”的文件夹下面。删掉不需要的软件,同时在"/android4.0/out/target/product/crane-evb-v13/system/app"里删除掉相对应的apk。然后重新编译android4.0.4,就达到裁剪apk的目的。
2、厂家自带的apk。我们买的是开发板,厂家有出厂绑定apk在开发板里。需要把这些绑定的软件去除掉。在“\android4.0\device\softwinner\crane-common\googleservice”里删掉厂家自带的软件,同时在"/android4.0/out/target/product/crane-evb-v13/system/app"里删除掉相对应的apk。然后重新编译android4.0.4,就达到裁剪apk的目的。


设置永不休眠
修改
overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
 <bool name="def_lockscreen_disabled">true</bool> 改为ture
将frameworks\old_frameworks\base\core\res\res\values\config.xml中的
config_enable_puk_unlock_screen 设置成false


android4.0.3\frameworks\base\packages\SettingsProvider\res\values文件夹下的defaults.xml文件 
$ gedit defaults.xml  
将<integer name="def_screen_off_timeout">60000</integer>     //60000毫秒 
改为<integer name="def_screen_off_timeout">-1</integer> 
修改 
android4.0.3/frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java文件 
第205行(我的哦) 


private boolean mExternallyEnabled = true;将true改为了false,作用是防止在重启之后锁屏(虽然在烧录系统第一次的时候是没有锁屏的,但是以后的每次会锁屏所以。。。。。改了)
更改\frameworks\frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java
注释下方:
/*
            loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                    ("1".equals(SystemProperties.get("ro.kernel.qemu")) ||
                        mContext.getResources().getBoolean(R.bool.def_stay_on_while_plugged_in))
                     ? 1 : 1);
*/
     新增加    loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 1);
更改ANDROID系统字体
1.将新字体放入目录\android\frameworks\base\data\fonts
2.删除目录 /out/target/product/welbell-A8_E7/obj/ETC/
3.修改Android.mk文件 将其拷贝到system/fonts目录下 再编译即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值