- 浏览: 677226 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
qinshubao152:
参考:http://www.see-source.com/bl ...
关于android USB Host 串口编程 -
q328965539:
哥们 我做的数据也都是错误的啊····我怎么可以知道自己otg ...
关于android USB Host 串口编程 -
hgkmail:
好文
android中跨进程通讯的4种方式 -
cczscq:
楼主,我这里有个问题!我这里有个自己制作的font.ttf,这 ...
android字体的工作原理 -
blueice1986:
既然springMVC比struts好那么多的话那struts ...
为什么有了Struts 还要Spring MVC
putty ssh(linux客户端)
源码镜像 服务器: 192.168.247.70
帐号密码:hiapk/12121212
repo init -u git://192.168.247.70/cm/CyanogenMod/android.git -b cm-10.1
repo sync
git clone git://192.168.247.70/cm/CyanogenMod/android.git -b cm-10.1
镜像同步时不会同步devices文件下的,
要同步的化
在源码的.repo下新建manifest.xml
vi manifest.xml
mv local_manifest.xml.bak local_manifest.xml
vi local_manifest.xml
增加<project name="CyanogenMod/android_device_samsung_maguro" path="device/samsung/maguro" remote="github"
repo
搞定
#set java environment
export JAVA_HOME=/home/dengzt/下载/jdk1.6.0_20
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
/etc/profile
#set NDK env
export NDK_HOME=/home/dengzt/android/android-ndk-r8d
export PATH=$NDK_HOME:$PATH
export PATH=/home/dengzt/android/android-sdk-linux/platform-tools/:$PATH
NDK_ROOT=/home/dengzt/android/android-ndk-r8d/
export NDK_ROOT
软件:
putty
geany
dock
sqlite
meld diff
gitg
在编译cm-10.1时候,Term.apk出错,因为Term.apk是cm不开源的
解决:
进入 /vendor/cm$ ./get-prebuilts
,
手机刷到4.2后,总是adb shell 出现,device offine,
解决: 更新android-sdk 的tools, ,操作:运行tools下的android。
根据Android启动过程的来裁剪:
。 定制本地服务
。 定制Android系统服务
。 优化ZygoteInit的类预加载preloadClasses和资源预加载preloadResources机制
。 PackageManagerService扫描、检查APK安装包信息
-----------裁剪记录:
一,定制本地服务
修改/system/core/rootdir/init.rc
1,去掉电话模块
# modify by dengzt 2013,8,28
#service ril-daemon /system/bin/rild
# class main
# socket rild stream 660 root radio
# socket rild-debug stream 660 radio system
# user root
# group radio cache inet misc audio sdcard_r sdcard_rw log
2,系统调试
# modify by dengzt 2013.11.14
#service debuggerd /system/bin/debuggerd
# class main
3 蓝牙
#service bluetoothd /system/bin/bluetoothd -n
# class main
# socket bluetooth stream 660 bluetooth bluetooth
# socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
# group bluetooth net_bt_admin misc
# disabled
init.rc启动了服务zygote,而ZygoteInit启动了systemServer,所有zygote服务不能整个去掉
/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
服务zygote的装载一千多个类和初始化堆栈的过程,用了20秒左右。
ZygoteInit.java的preloadClasses加载了1千多个类。。
/frameworks/base/preloaded-classes
虽然preloaded-classes是在下载源码的时候已经确定了的,也就是对我们来说WritePreloadedClassFile类是没用到的,我们可以做的就是在preloaded-classes文件中,把不预装载的类去掉,试了把所有类去掉,启动确实很快跳过那个地方,但是启动HOME的时候就会很慢了
裁剪文件preloaded-classes:暂时全部清空
另一个是扫描
/system/app,
/system/framework,
/data/app,
/data/app-private.
这几个目录下面的package用了大概10秒,所以我们重点能够修理的就是这两个老大的。
我这里先不修改扫描的方法,只要把系统应用裁剪了就好了。。我裁剪到了10几个
二,定制Android系统服务SystemServer.java
1,去掉电话服务
//ServiceManager.addService("telephony.registry", new TelephonyRegistry(context));
2,去掉震动服务
//modify by dengzt 2013,8,28
//Slog.i(TAG, "Vibrator Service");
//vibrator = new VibratorService(context);
//ServiceManager.addService("vibrator", vibrator);
其他的有待裁剪
三,裁剪系统应用
只保留了10几个:
am335x.apk工厂测试(这个放在data/app/下,不做为系统应用)
ApplicationsProvider.apk这个暂时不知道是什么
Browser.apk
FileManager.apk
Gallery2.apk
Launcher2.apk
MediaProvider.apk
PackageInstall.apk
PinyinIME.apk
Settings.apk
SettingsProvider.apk
SoundRecorder.apk
SystemUI.apk
DefaultContainerService.apk
DrmProvider.apk
UserDictionaryProvider.apk
=================
1在Settings,增加工厂测试到launcher,方便测试开发测试程序
<activity android:name="TestingSettings" android:label="@string/testing">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> //add
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
2修改MasterClear.java ,恢复出厂设置,改为重启到recovery模式
PowerManager pm = (PowerManager)getActivity(). getSystemService(Context.POWER_SERVICE);
pm.reboot("recovery");
3,锁屏修改成全屏:
LockScreen.java的
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (LockPatternKeyguardView.DEBUG_CONFIGURATION) {
Log.v(TAG, "***** LOCK ATTACHED TO WINDOW");
Log.v(TAG, "Cur orient=" + mCreationOrientation
+ ", new config=" + getResources().getConfiguration());
}
updateConfiguration();
this.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);//mod by dengzt 2013 9.17
}
4,修改默认语言为中文
在out/产品/ 修改system.prop和system下的build.prop增加
# modif by dengzt 2013.11.12
persist.sys.language=zh #这里是我添加上去的
persist.sys.country=CN
persist.sys.localevar=
persist.sys.timezone=Asia/Beijing #原版是shanghai
ro.product.locale.language=zh
ro.product.locale.region=CN
# modif end
或者在编译前:
在/build/target/product/core.mk下
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.notification_sound=OnTheHunt.ogg \
ro.config.alarm_alert=Alarm_Classic.ogga \
persist.sys.language=zh \增加的
persist.sys.country=CN
四,破解系统的root权限
修改文件/system/extra/su/su.c
1. /*if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
return 1;
}*/
2.在init.rc增加权限
#add by dengzt 2013.11.15
chmod 4755 /system/xbin/su
编译make su TARGET_PRODUCT=am335xevm 生成新的su可执行文件,替换/system/xbin/下
亲测可行了。。。。
其他注意:
1在我的工厂测试应用里用到了so库,如果当作系统应用的话,会找不到so库,需要放在系统的制定目录下。
编译文件系统之前,设置下内核编译,貌似会影响到文件系统的编译
编译内核,原来内核对性能也很关键,先设置
cd kernel
make ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig
出现蓝色框框
选kernel features-->preemption model-->Preemptible Kernel (Low-Latency Desktop)
Exc Exc两下返回,退出,save
dos:
使用ftp上传到服务器
ftp 172.16.20.25
ftp>user caizf
ftp>startp1
使用lcd命令设置ubuntu下文件接收位置
ftp>lcd /home/glorin/work/linux
ftp>cd /tmp
ftp>put android_rootfs_tar.gz
-------------------------------------
SecureCRT中:
开一个TeInet ,端23
账号密码caizf ,startp1
常用命令:
android板,串口,网卡ok后,加载网络文件系统
开机回车,
pr
run netboot
root
pwd
cd /
解压tar xvzf /tmp/android_rootfs_0.tar.gz -C .
mkdir dzt_rootfs
cp nand-rootfs.20131223/* /mnt/cf/ -af
df
sync
logcat *:w
ping -c 1 -w 1 172.16.3.162
setenv bootfile uImage.3rd.desktop3
cd kernel
make menuconfig
make clean
make kernel.img
cd 目录
在该目录下搜索
grep kkk *
在nfs上加载nand分区命令
1. ubiattach /dev/ubi_ctrl -m 7 -O 2048
2. mount -t ubifs ubi0:rootfs /mnt/cf/
卸载nand分区命令
1.umount /mnt/cf/
2. ubidetach /dev/ubi_ctrl -m 7
BT/FM/GPS would be unavailable on system
I/SurfaceFlinger( 331): SurfaceFlinger is starting
I/SurfaceFlinger( 331): SurfaceFlinger's main thread
ready to run. Initializing graphics H/W...
E/FramebufferNativeWindow( 331): couldn't open
framebuffer HAL (Not a typewriter)
E/FramebufferNativeWindow( 331): couldn't open gralloc
HAL (Not a typewriter)
E/SurfaceFlinger( 331): Display subsystem failed to
initialize. check logs. exiting...
pr
setenv serverip 172.16.3.162
saveenv
setenv rootpath /nfsroot/linux_rootfs
setenv bootfile uImage.3rd.gt_rst
nand erase 0x280000 0x3a0000
cp config.am335x.3rd .config
Settings.Secure.putString(getContentResolver(),
Settings.Secure.TTS_DEFAULT_SYNTH, "com.iflytek.tts");
engine:包名com.ik.xx
adb shell
cat /proc/cpuinfo
烧写内核:
setenv bootfile uImage.3rd.desktop3
dhcp
擦出nandflash
nand erase 0x280000 0x400000
nand write 0x80007fc0 0x280000 0x400000
nand write srcaddr destaddr size
1、 去除休眠
frameworks/base/packages/SettingsProvider/res/values/de
faults.xml
里<integer
name="def_screen_off_timeout">60000</integer>
60000ms,修改为-1。-1代表0xffffffff,等于永远不要休眠了
2、 去除锁屏
Frameworks/base/policy/src/com/android/internal/policy/
impl/KeyguardViewMediator.java
/热插拔usb和sdcard
在system/etc/vold.fstab
dev_mount sdcard /storage/sdcard0 3
/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0
其中的3改成auto,既自动挂载。
WindowManagerService
PowerManagerService
ActivityManagerService
PackgeManagerService
本地服务的zygote在init.rc启动
这个zygote进程要执行的程序是/system/bin/app_process
源码在app_main.cpp
开始android运行环境
在init.am335xevm.rc 中加入开机自动加载ko模块
on boot
# Default Read Ahead value for sdcards
write /sys/block/mmcblk0/queue/read_ahead_kb 2048
# wi-fi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
insmod /system/lib/modules/compat.ko
insmod /system/lib/modules/cfg80211.ko
insmod /system/lib/modules/mac80211.ko
insmod /system/lib/modules/wlcore.ko
insmod /system/lib/modules/wl12xx.ko
insmod /system/lib/modules/wl18xx.ko
chmod 0770 /system/lib/modules/destroy.ko
insmod /system/lib/modules/destroy.ko
如果想定义defaults.xml中没有的,在这里添加后,需修改frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加入自己的存储代码。
读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,rw-r--r--用数字表示成644。
快速打包system.img----- make snod
网络adb
busybox ifconfig eth0
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb connect 172.16.20.9:5555
mkdir
mount -o remount,rw rootfs /
mount -o remount,rw ubi1_0 /system
chmod 777 /system/bin/vold
系统权限是没权限访问sdcard的。
去掉init.am335x.rc 中的uim服务。
系统应用也可以安装到/data/app/
修改chmod 777 /storage 可以访问sdcard了
去掉init.am335x.rc 中的uim服务。
系统应用也可以安装到/data/app/
修改chmod 777 /storage 可以访问sdcard了
ipconfig /flushdns 手动清dns
不能直接烧out下面的system.img
因为格式不是ext3,开机会出现挂载不了system
使用system应用asset.apk来实现 预安装
在asset.apk修改后缀名rar后,打开增加删除assets目录的apk来实现自动安装
源码镜像 服务器: 192.168.247.70
帐号密码:hiapk/12121212
repo init -u git://192.168.247.70/cm/CyanogenMod/android.git -b cm-10.1
repo sync
git clone git://192.168.247.70/cm/CyanogenMod/android.git -b cm-10.1
镜像同步时不会同步devices文件下的,
要同步的化
在源码的.repo下新建manifest.xml
vi manifest.xml
mv local_manifest.xml.bak local_manifest.xml
vi local_manifest.xml
增加<project name="CyanogenMod/android_device_samsung_maguro" path="device/samsung/maguro" remote="github"
repo
搞定
#set java environment
export JAVA_HOME=/home/dengzt/下载/jdk1.6.0_20
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
/etc/profile
#set NDK env
export NDK_HOME=/home/dengzt/android/android-ndk-r8d
export PATH=$NDK_HOME:$PATH
export PATH=/home/dengzt/android/android-sdk-linux/platform-tools/:$PATH
NDK_ROOT=/home/dengzt/android/android-ndk-r8d/
export NDK_ROOT
软件:
putty
geany
dock
sqlite
meld diff
gitg
在编译cm-10.1时候,Term.apk出错,因为Term.apk是cm不开源的
解决:
进入 /vendor/cm$ ./get-prebuilts
,
手机刷到4.2后,总是adb shell 出现,device offine,
解决: 更新android-sdk 的tools, ,操作:运行tools下的android。
根据Android启动过程的来裁剪:
。 定制本地服务
。 定制Android系统服务
。 优化ZygoteInit的类预加载preloadClasses和资源预加载preloadResources机制
。 PackageManagerService扫描、检查APK安装包信息
-----------裁剪记录:
一,定制本地服务
修改/system/core/rootdir/init.rc
1,去掉电话模块
# modify by dengzt 2013,8,28
#service ril-daemon /system/bin/rild
# class main
# socket rild stream 660 root radio
# socket rild-debug stream 660 radio system
# user root
# group radio cache inet misc audio sdcard_r sdcard_rw log
2,系统调试
# modify by dengzt 2013.11.14
#service debuggerd /system/bin/debuggerd
# class main
3 蓝牙
#service bluetoothd /system/bin/bluetoothd -n
# class main
# socket bluetooth stream 660 bluetooth bluetooth
# socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as root and
# let bluetoothd drop uid to bluetooth with the right linux capabilities
# group bluetooth net_bt_admin misc
# disabled
init.rc启动了服务zygote,而ZygoteInit启动了systemServer,所有zygote服务不能整个去掉
/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
服务zygote的装载一千多个类和初始化堆栈的过程,用了20秒左右。
ZygoteInit.java的preloadClasses加载了1千多个类。。
/frameworks/base/preloaded-classes
虽然preloaded-classes是在下载源码的时候已经确定了的,也就是对我们来说WritePreloadedClassFile类是没用到的,我们可以做的就是在preloaded-classes文件中,把不预装载的类去掉,试了把所有类去掉,启动确实很快跳过那个地方,但是启动HOME的时候就会很慢了
裁剪文件preloaded-classes:暂时全部清空
另一个是扫描
/system/app,
/system/framework,
/data/app,
/data/app-private.
这几个目录下面的package用了大概10秒,所以我们重点能够修理的就是这两个老大的。
我这里先不修改扫描的方法,只要把系统应用裁剪了就好了。。我裁剪到了10几个
二,定制Android系统服务SystemServer.java
1,去掉电话服务
//ServiceManager.addService("telephony.registry", new TelephonyRegistry(context));
2,去掉震动服务
//modify by dengzt 2013,8,28
//Slog.i(TAG, "Vibrator Service");
//vibrator = new VibratorService(context);
//ServiceManager.addService("vibrator", vibrator);
其他的有待裁剪
三,裁剪系统应用
只保留了10几个:
am335x.apk工厂测试(这个放在data/app/下,不做为系统应用)
ApplicationsProvider.apk这个暂时不知道是什么
Browser.apk
FileManager.apk
Gallery2.apk
Launcher2.apk
MediaProvider.apk
PackageInstall.apk
PinyinIME.apk
Settings.apk
SettingsProvider.apk
SoundRecorder.apk
SystemUI.apk
DefaultContainerService.apk
DrmProvider.apk
UserDictionaryProvider.apk
=================
1在Settings,增加工厂测试到launcher,方便测试开发测试程序
<activity android:name="TestingSettings" android:label="@string/testing">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> //add
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
2修改MasterClear.java ,恢复出厂设置,改为重启到recovery模式
PowerManager pm = (PowerManager)getActivity(). getSystemService(Context.POWER_SERVICE);
pm.reboot("recovery");
3,锁屏修改成全屏:
LockScreen.java的
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (LockPatternKeyguardView.DEBUG_CONFIGURATION) {
Log.v(TAG, "***** LOCK ATTACHED TO WINDOW");
Log.v(TAG, "Cur orient=" + mCreationOrientation
+ ", new config=" + getResources().getConfiguration());
}
updateConfiguration();
this.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);//mod by dengzt 2013 9.17
}
4,修改默认语言为中文
在out/产品/ 修改system.prop和system下的build.prop增加
# modif by dengzt 2013.11.12
persist.sys.language=zh #这里是我添加上去的
persist.sys.country=CN
persist.sys.localevar=
persist.sys.timezone=Asia/Beijing #原版是shanghai
ro.product.locale.language=zh
ro.product.locale.region=CN
# modif end
或者在编译前:
在/build/target/product/core.mk下
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.notification_sound=OnTheHunt.ogg \
ro.config.alarm_alert=Alarm_Classic.ogga \
persist.sys.language=zh \增加的
persist.sys.country=CN
四,破解系统的root权限
修改文件/system/extra/su/su.c
1. /*if (myuid != AID_ROOT && myuid != AID_SHELL) {
fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
return 1;
}*/
2.在init.rc增加权限
#add by dengzt 2013.11.15
chmod 4755 /system/xbin/su
编译make su TARGET_PRODUCT=am335xevm 生成新的su可执行文件,替换/system/xbin/下
亲测可行了。。。。
其他注意:
1在我的工厂测试应用里用到了so库,如果当作系统应用的话,会找不到so库,需要放在系统的制定目录下。
编译文件系统之前,设置下内核编译,貌似会影响到文件系统的编译
编译内核,原来内核对性能也很关键,先设置
cd kernel
make ARCH=arm CROSS_COMPILE=arm-eabi- menuconfig
出现蓝色框框
选kernel features-->preemption model-->Preemptible Kernel (Low-Latency Desktop)
Exc Exc两下返回,退出,save
dos:
使用ftp上传到服务器
ftp 172.16.20.25
ftp>user caizf
ftp>startp1
使用lcd命令设置ubuntu下文件接收位置
ftp>lcd /home/glorin/work/linux
ftp>cd /tmp
ftp>put android_rootfs_tar.gz
-------------------------------------
SecureCRT中:
开一个TeInet ,端23
账号密码caizf ,startp1
常用命令:
android板,串口,网卡ok后,加载网络文件系统
开机回车,
pr
run netboot
root
pwd
cd /
解压tar xvzf /tmp/android_rootfs_0.tar.gz -C .
mkdir dzt_rootfs
cp nand-rootfs.20131223/* /mnt/cf/ -af
df
sync
logcat *:w
ping -c 1 -w 1 172.16.3.162
setenv bootfile uImage.3rd.desktop3
cd kernel
make menuconfig
make clean
make kernel.img
cd 目录
在该目录下搜索
grep kkk *
在nfs上加载nand分区命令
1. ubiattach /dev/ubi_ctrl -m 7 -O 2048
2. mount -t ubifs ubi0:rootfs /mnt/cf/
卸载nand分区命令
1.umount /mnt/cf/
2. ubidetach /dev/ubi_ctrl -m 7
BT/FM/GPS would be unavailable on system
I/SurfaceFlinger( 331): SurfaceFlinger is starting
I/SurfaceFlinger( 331): SurfaceFlinger's main thread
ready to run. Initializing graphics H/W...
E/FramebufferNativeWindow( 331): couldn't open
framebuffer HAL (Not a typewriter)
E/FramebufferNativeWindow( 331): couldn't open gralloc
HAL (Not a typewriter)
E/SurfaceFlinger( 331): Display subsystem failed to
initialize. check logs. exiting...
pr
setenv serverip 172.16.3.162
saveenv
setenv rootpath /nfsroot/linux_rootfs
setenv bootfile uImage.3rd.gt_rst
nand erase 0x280000 0x3a0000
cp config.am335x.3rd .config
Settings.Secure.putString(getContentResolver(),
Settings.Secure.TTS_DEFAULT_SYNTH, "com.iflytek.tts");
engine:包名com.ik.xx
adb shell
cat /proc/cpuinfo
烧写内核:
setenv bootfile uImage.3rd.desktop3
dhcp
擦出nandflash
nand erase 0x280000 0x400000
nand write 0x80007fc0 0x280000 0x400000
nand write srcaddr destaddr size
1、 去除休眠
frameworks/base/packages/SettingsProvider/res/values/de
faults.xml
里<integer
name="def_screen_off_timeout">60000</integer>
60000ms,修改为-1。-1代表0xffffffff,等于永远不要休眠了
2、 去除锁屏
Frameworks/base/policy/src/com/android/internal/policy/
impl/KeyguardViewMediator.java
/热插拔usb和sdcard
在system/etc/vold.fstab
dev_mount sdcard /storage/sdcard0 3
/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0
其中的3改成auto,既自动挂载。
WindowManagerService
PowerManagerService
ActivityManagerService
PackgeManagerService
本地服务的zygote在init.rc启动
这个zygote进程要执行的程序是/system/bin/app_process
源码在app_main.cpp
开始android运行环境
在init.am335xevm.rc 中加入开机自动加载ko模块
on boot
# Default Read Ahead value for sdcards
write /sys/block/mmcblk0/queue/read_ahead_kb 2048
# wi-fi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
insmod /system/lib/modules/compat.ko
insmod /system/lib/modules/cfg80211.ko
insmod /system/lib/modules/mac80211.ko
insmod /system/lib/modules/wlcore.ko
insmod /system/lib/modules/wl12xx.ko
insmod /system/lib/modules/wl18xx.ko
chmod 0770 /system/lib/modules/destroy.ko
insmod /system/lib/modules/destroy.ko
如果想定义defaults.xml中没有的,在这里添加后,需修改frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java,加入自己的存储代码。
读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1。所以,rw-r--r--用数字表示成644。
快速打包system.img----- make snod
网络adb
busybox ifconfig eth0
setprop service.adb.tcp.port 5555
stop adbd
start adbd
adb connect 172.16.20.9:5555
mkdir
mount -o remount,rw rootfs /
mount -o remount,rw ubi1_0 /system
chmod 777 /system/bin/vold
系统权限是没权限访问sdcard的。
去掉init.am335x.rc 中的uim服务。
系统应用也可以安装到/data/app/
修改chmod 777 /storage 可以访问sdcard了
去掉init.am335x.rc 中的uim服务。
系统应用也可以安装到/data/app/
修改chmod 777 /storage 可以访问sdcard了
ipconfig /flushdns 手动清dns
不能直接烧out下面的system.img
因为格式不是ext3,开机会出现挂载不了system
使用system应用asset.apk来实现 预安装
在asset.apk修改后缀名rar后,打开增加删除assets目录的apk来实现自动安装
发表评论
-
Android的权限机制总结
2013-12-16 11:07 23014Android 安全机制概述 ... -
Android的权限机制之—— “沙箱”机制sharedUserId和签名
2013-12-13 11:29 14697Android“沙箱”的本质是为了实现不同应用程序和进程之 ... -
AIL(Android init Language)
2013-12-03 14:16 1912AIL(init.rc) Init.rc是i ... -
Android源码下编译自己的so库
2013-11-07 17:33 2931环境:win7 64位,虚拟机ubuntu10.04,TI ... -
修改framework代码使锁屏完全透明
2013-11-04 14:30 13891,修改KeyguardViewManager.java的ma ... -
开机动画流程
2013-11-01 10:30 14161、开机动画程序bootanimation程序目录:fram ... -
Android 软件测试日志文件抓取
2013-10-17 10:43 37971 log文件分类简介 实时打印的主要有: ... -
android 驱动开发介绍
2013-10-10 11:12 7775前言 意外在网上发现了这扁文章,看后感觉很有必要分享,所 ... -
Android系统Recovery工作原理之使用update.zip
2013-09-13 11:06 97891 总述 为了方便客户日后的固件升级,本周研究 ... -
android 升级策略
2013-09-12 09:50 1168Android系统而言升级意味着二个方面的升级 一个是系 ... -
Android FactoryTest 流程
2013-09-10 17:52 2726Android内置的Factory Test(有测试模式/工 ... -
Ubuntu下ADB调试Android找不到设备的解决方法
2013-09-10 10:13 2004首先确认,我已经在的settings-application ... -
系统移植之为Android启动加速
2013-05-15 13:50 3134Android的启动速度一直以来是他的诟病,虽然现在And ... -
Android系统做了哪些优化?
2013-04-23 10:11 1459Android系统框架和上层应用是类java( ... -
CM10之Setting的快速设置面板按钮布局
2013-04-19 16:03 1841开发环境 ubuntu12.04-desktop-amd6 ... -
Android编译CPU架构体系不同引起的错误解决方法
2013-04-19 10:53 5345转至http://blog.csdn.net/canjian ... -
android系统硬件抽象层(HAL)原理及实现之原理
2013-04-17 15:48 4171Android系统硬件抽象层(HAL)原理 在androi ... -
正确了解ROM,基带,以及RIL
2013-04-17 15:45 5864一、正确了解ROM,基带,以及RIL。 1)、R ... -
Android系统开发之修改调试SystemUI
2013-04-11 10:44 3977开发环境 ubuntu12.04-desktop-amd6 ... -
下载cm10.1源码编译
2013-03-21 10:43 2829开发环境 http://dengzhangta ...
相关推荐
`mysql-dump`允许设置不同的备份策略,比如基于时间的保留(例如只保留最近7天的备份),这有助于保持存储空间的合理使用。通过调整配置,可以定制化备份的频率、保留周期和压缩级别,以适应项目的需求。 **5. ...
- **转换后备缓冲区(TLB)**:用于缓存最近使用的页表项,提高地址转换效率。 #### 七、保护机制 - **启用/禁用段保护和页保护**:描述如何根据需要启用或禁用这些保护机制。 - **用于段级和页级保护的域和标志**:...
2. **图片处理与优化**:为了提高加载速度和节省带宽,系统可能会使用Laravel的`Intervention Image`库来实现图片的缩放、裁剪、压缩等功能。同时,还可以实现动态生成不同尺寸的图片,适应不同的设备和显示需求。 ...
本文将深入探讨“Laravel开发-laravel-lightspeed-sync”这一主题,帮助您理解如何将Lightspeed系统中的资源与Laravel应用程序进行无缝同步。 首先,让我们了解一下[Laravel](https://laravel.com/)。Laravel是由...
3. **服务提供者**:作为Laravel的服务提供者,`laravel-versioner` 可以无缝集成到Laravel的依赖注入系统中,方便在任何地方使用版本信息。 4. **Artisan命令**:它提供了Artisan命令行工具,允许开发者在终端中...
`laravel-batched-migrations`是一个关于如何在Laravel中实现批处理迁移的概念,它有助于确保迁移操作的唯一性和顺序性,尤其是在多开发环境协作时。让我们深入探讨这个话题。 ### 一、Laravel迁移简介 Laravel的...
在Laravel框架中进行开发时,我们经常需要与版本控制系统如Git协同工作,以便跟踪代码变更、管理项目历史以及团队协作。"Laravel开发-laravel-git-info"是一个针对这种情况的工具,它允许开发者轻松获取当前Git仓库...
如果需要撤销最近的迁移,可以使用`php artisan migrate:rollback`命令,这将调用每个迁移文件中的`down`方法,回滚到最后一次迁移之前的状态。如果要完全撤销所有迁移,可以使用`php artisan migrate:fresh`。 5. ...
2. 数据迁移与填充:Laravel的数据库迁移系统允许我们在多个环境中保持数据库结构的一致性。同时,使用种子类(Seeder)可以快速填充测试数据。 五、通知机制 1. 事件与监听器:当检测到异常情况,如网站离线或SSL...
4. **回滚功能**:如果需要撤销最近的迁移,工具可能还包含回滚功能,即`php artisan migrate:rollback`,可以将数据库状态恢复到上一次迁移之前。 5. **定制化提示**:对于特定环境,如生产环境,它可能会提醒...
通过GitHub的公开API,应用可以获取到用户的活动信息,如用户的最近活动、仓库信息、贡献统计等。 此外,为了展示这些活动,开发者可能使用了Blade模板引擎来创建视图。Blade是Laravel内置的一种轻量级的模板引擎,...
数据库丢失时,应尽快恢复到最近的备份点;硬件故障需要专业人员更换硬件解决。 - **安全性**: 对敏感数据(例如用户密码、数据库连接信息等)进行加密处理。 #### 三、运行环境 - **硬件设备**: - 普通PC机配备1...
此外,为了提升用户体验,开发者可能会引入数据缓存策略,如使用Android的LruCache或第三方库如Android Room,缓存最近查询的结果,减少网络请求的频率。同时,利用Android的通知系统,可以及时提醒用户有关成绩更新...
总之,`matlab开发-inpolygons`项目是关于在MATLAB中实现高效且准确的点在多边形内判断功能,特别关注处理带有孔洞的复杂多边形,并可能涉及到跨语言接口,使得这个功能可以在更广泛的软件环境中使用。通过解析和...
8. **性能考虑**:虽然数据库查询可能比文件读取稍慢,但`laravel-translations-db`通过缓存策略优化了性能,例如使用Laravel的`Cache`层来存储最近使用的翻译,减少不必要的数据库查询。 9. **易于扩展**:如果你...
在本文中,我们将深入探讨Laravel开发中的一个重要概念——API迁移。Laravel是一个优雅的PHP框架,它提供了许多工具和特性来简化Web应用的开发,其中包括数据库迁移系统。API迁移是针对API驱动的应用程序,确保...
在Web开发中,我们常常使用框架来提高开发效率和系统的可维护性。本文档以"ssjdbc"为例,介绍了一个基于Spring、Spring MVC和JDBC的登录与登录日志系统。系统设计主要包括两个核心表——t_user和t_login_log,以及一...
最近不是太忙,花了一些时间学习android的应用开发。经过两个星期的学习,学习的同时还写了很多的demo示例,可以从基本控件及基本动画效果等示例demo集合大放送,持续更新下载。 从这个星期开始,准备拿新浪微博...
在MATLAB环境中,开发高效的算法和数据结构是提高计算性能的关键。"matlab开发-ataiyakdtree"是一个专为MATLAB设计的kd树(kd-Tree)MEX库,它提供了对空间数据进行高效检索的能力。MEX是MATLAB的C/C++接口,允许...
- **6.5.2 最近点查询功能开发**:提供具体的代码实现。 --- #### 7. 学习地图输出 **7.1 目标** - 学习如何使用ArcGIS Engine输出地图图像或PDF文件。 - 理解地图输出的关键技术和注意事项。 **7.2 打印设置** ...