行至水穷处,坐看云起时

  • rss
  • 博客首页
  • 音乐故事
  • 摄影相册
  • 站点导航
  • 与我联络

Android系统文件夹结构解析

2010-12-22 | 15:18

\system\app
这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。下面是详细的介绍:
\system\app\AlarmClock.apk 闹钟
\system\app\AlarmClock.odex
\system\app\Browser.apk 浏览器
\system\app\Browser.odex
\system\app\Bugreport.apk Bug报告
\system\app\Bugreport.odex
\system\app\Calculator.apk 计算器
\system\app\Calculator.odex
\system\app\Calendar.apk 日历
\system\app\Calendar.odex
\system\app\CalendarProvider.apk 日历提供
\system\app\CalendarProvider.odex
\system\app\Camera.apk 照相机
\system\app\Camera.odex
\system\app\com.amazon.mp3.apk 亚马逊音乐
\system\app\Contacts.apk 联系人
\system\app\Contacts.odex
\system\app\DownloadProvider.apk 下载提供
\system\app\DownloadProvider.odex
\system\app\DrmProvider.apk DRM数字版权提供
\system\app\DrmProvider.odex
\system\app\Email.apk 电子邮件客户端
\system\app\Email.odex
\system\app\FieldTest.apk 测试程序
\system\app\FieldTest.odex
\system\app\GDataFeedsProvider.apk GoogleData提供
\system\app\GDataFeedsProvider.odex
\system\app\Gmail.apk Gmail电子邮件
\system\app\Gmail.odex
\system\app\GmailProvider.apk Gmail提供
\system\app\GmailProvider.odex
\system\app\GoogleApps.apk 谷歌程序包
\system\app\GoogleApps.odex
\system\app\GoogleSearch.apk 搜索工具
\system\app\GoogleSearch.odex
\system\app\gtalkservice.apk GTalk服务
\system\app\gtalkservice.odex
\system\app\HTMLViewer.apk HTML查看器
\system\app\HTMLViewer.odex
\system\app\IM.apk 即使通讯组件包含MSN、yahoo通
\system\app\ImCredentialProvider.apk
\system\app\ImProvider.apk
\system\app\ImProvider.odex
\system\app\Launcher.apk 启动加载器
\system\app\Launcher.odex
\system\app\Maps.apk 电子地图
\system\app\Maps.odex
\system\app\MediaProvider.apk 多媒体播放提供
\system\app\MediaProvider.odex
\system\app\Mms.apk 短信、彩信
\system\app\Mms.odex
\system\app\Music.apk 音乐播放器
\system\app\Music.odex
\system\app\MyFaves.apk T-Mobile MyFaves程序
\system\app\MyFaves.odex
\system\app\PackageInstaller.apk apk安装程序
\system\app\PackageInstaller.odex
\system\app\Phone.apk 电话拨号器
\system\app\Phone.odex
\system\app\Settings.apk 系统设置
\system\app\Settings.odex
\system\app\SettingsProvider.apk 设置提供
\system\app\SettingsProvider.odex
\system\app\SetupWizard.apk 设置向导
\system\app\SetupWizard.odex
\system\app\SoundRecorder.apk 录音工具
\system\app\SoundRecorder.odex
\system\app\Street.apk 街景地图
\system\app\Street.odex
\system\app\Sync.apk 同步程序
\system\app\Sync.odex
\system\app\Talk.apk 语音程序
\system\app\Talk.odex
\system\app\TelephonyProvider.apk 电话提供
\system\app\TelephonyProvider.odex
\system\app\Updater.apk 更新程序
\system\app\Updater.odex
\system\app\Vending.apk 制造商信息
\system\app\Vending.odex
\system\app\VoiceDialer.apk 语音拨号器
\system\app\VoiceDialer.odex
\system\app\YouTube.apk Youtube视频
\system\app\YouTube.odex

--------------------------------------------------------------------------------

\system\bin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:
\system\bin\akmd
\system\bin\am
\system\bin\app_process 系统进程
\system\bin\dalvikvm Dalvik虚拟机宿主
\system\bin\dbus-daemon 系统BUS总线监控
\system\bin\debuggerd 调试器
\system\bin\debug_tool 调试工具
\system\bin\dexopt DEX选项
\system\bin\dhcpcd DHCP服务器
\system\bin\dumpstate 状态抓取器
\system\bin\dumpsys 系统抓取器
\system\bin\dvz
\system\bin\fillup
\system\bin\flash_image 闪存映像
\system\bin\hciattach
\system\bin\hcid HCID内核
\system\bin\hostapd
\system\bin\hostapd_cli
\system\bin\htclogkernel
\system\bin\input
\system\bin\installd
\system\bin\itr
\system\bin\linker
\system\bin\logcat Logcat日志打印
\system\bin\logwrapper
\system\bin\mediaserver
\system\bin\monkey
\system\bin\mountd 存储挂载器
\system\bin\netcfg 网络设置
\system\bin\ping Ping程序
\system\bin\playmp3 MP3播放器
\system\bin\pm 包管理器
\system\bin\qemud QEMU虚拟机
\system\bin\radiooptions 无线选项
\system\bin\rild RIL组件
\system\bin\sdptool
\system\bin\sdutil
\system\bin\service
\system\bin\servicemanager 服务管理器
\system\bin\sh
\system\bin\ssltest SSL测试
\system\bin\surfaceflinger 触摸感应驱动
\system\bin\svc 服务
\system\bin\system_server
\system\bin\telnetd Telnet组件
\system\bin\toolbox
\system\bin\wlan_loader
\system\bin\wpa_cli
\system\bin\wpa_supplicant

--------------------------------------------------------------------------------

\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\system\etc\apns-conf.xml APN接入点配置文件
\system\etc\AudioFilter.csv 音频过滤器配置文件
\system\etc\AudioPara4.csv
\system\etc\bookmarks.xml 书签数据库
\system\etc\dbus.conf 总线监视配置文件
\system\etc\dhcpcd
\system\etc\event-log-tags
\system\etc\favorites.xml 收藏夹
\system\etc\firmware 固件信息
\system\etc\gps.conf GPS设置文件
\system\etc\hcid.conf内核HCID配置文件
\system\etc\hosts 网络DNS缓存
\system\etc\init.goldfish.sh
\system\etc\location 定位相关
\system\etc\mountd.conf 存储挂载配置文件
\system\etc\NOTICE.html 提示网页
\system\etc\permissions.xml 权限许可
\system\etc\pvplayer.conf
\system\etc\security
\system\etc\wifi WLAN相关组件
\system\etc\dhcpcd\dhcpcd-hooks
\system\etc\dhcpcd\dhcpcd-run-hooks
\system\etc\dhcpcd\dhcpcd.conf
\system\etc\dhcpcd\dhcpcd-hooks\01-test
\system\etc\dhcpcd\dhcpcd-hooks\20-dns.conf
\system\etc\dhcpcd\dhcpcd-hooks\95-configured
\system\etc\firmware\brf6300.bin
\system\etc\location\gps
\system\etc\location\gps\location 定位相关
\system\etc\location\gps\nmea GPS数据解析
\system\etc\location\gps\properties
\system\etc\security\cacerts.bks
\system\etc\security\otacerts.zip OTA下载验证
\system\etc\wifi\Fw1251r1c.bin
\system\etc\wifi\tiwlan.ini
\system\etc\wifi\wpa_supplicant.conf WPA验证组件

--------------------------------------------------------------------------------

\system\fonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小
\system\fonts\DroidSans-Bold.ttf
\system\fonts\DroidSans.ttf
\system\fonts\DroidSansFallback.ttf
\system\fonts\DroidSansMono.ttf
\system\fonts\DroidSerif-Bold.ttf
\system\fonts\DroidSerif-BoldItalic.ttf
\system\fonts\DroidSerif-Italic.ttf
\system\fonts\DroidSerif-Regular.ttf

--------------------------------------------------------------------------------

\system\framework
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT库
\system\framework\android.awt.odex
\system\framework\android.policy.jar
\system\framework\android.policy.odex
\system\framework\android.test.runner.jar
\system\framework\android.test.runner.odex
\system\framework\com.google.android.gtalkservice.jar GTalk服务
\system\framework\com.google.android.gtalkservice.odex
\system\framework\com.google.android.maps.jar 电子地图库
\system\framework\com.google.android.maps.odex
\system\framework\core.jar 核心库,启动桌面时首先加载这个
\system\framework\core.odex
\system\framework\ext.jar
\system\framework\ext.odex
\system\framework\framework-res.apk
\system\framework\framework-tests.jar
\system\framework\framework-tests.odex
\system\framework\framework.jar
\system\framework\framework.odex
\system\framework\input.jar 输入库
\system\framework\input.odex
\system\framework\itr.jar
\system\framework\itr.odex
\system\framework\monkey.jar
\system\framework\monkey.odex
\system\framework\pm.jar 包管理库
\system\framework\pm.odex
\system\framework\services.jar
\system\framework\services.odex
\system\framework\ssltest.jar
\system\framework\ssltest.odex
\system\framework\svc.jar 系统服务
\system\framework\svc.odex

--------------------------------------------------------------------------------

\system\lib
lib目录中存放的主要是系统底层库,如平台运行时库。
\system\lib\libaes.so
\system\lib\libagl.so
\system\lib\libandroid_runtime.so Android运行时库
\system\lib\libandroid_servers.so 系统服务组件
\system\lib\libaudio.so 音频处理
\system\lib\libaudioeq.so EQ均衡器
\system\lib\libaudioflinger.so 音频过滤器
\system\lib\libbluetooth.so 蓝牙组件
\system\lib\libc.so
\system\lib\libcamera.so 超相机组件
\system\lib\libcameraservice.so
\system\lib\libcorecg.so
\system\lib\libcrypto.so 加密组件
\system\lib\libctest.so
\system\lib\libcutils.so
\system\lib\libdbus.so
\system\lib\libdl.so
\system\lib\libdrm1.so DRM解析库
\system\lib\libdrm1_jni.so
\system\lib\libdvm.so
\system\lib\libexif.so
\system\lib\libexpat.so
\system\lib\libFFTEm.so
\system\lib\libGLES_CM.so
\system\lib\libgps.so
\system\lib\libhardware.so
\system\lib\libhgl.so
\system\lib\libhtc_ril.so
\system\lib\libicudata.so
\system\lib\libicui18n.so
\system\lib\libicuuc.so
\system\lib\liblog.so
\system\lib\libm.so
\system\lib\libmedia.so
\system\lib\libmediaplayerservice.so
\system\lib\libmedia_jni.so
\system\lib\libnativehelper.so
\system\lib\libnetutils.so
\system\lib\libOmxCore.so
\system\lib\libOmxH264Dec.so
\system\lib\libpixelflinger.so
\system\lib\libpvasf.so
\system\lib\libpvasfreg.so
\system\lib\libpvauthor.so
\system\lib\libpvcommon.so
\system\lib\libpvdownload.so
\system\lib\libpvdownloadreg.so
\system\lib\libpvmp4.so
\system\lib\libpvmp4reg.so
\system\lib\libpvnet_support.so
\system\lib\libpvplayer.so
\system\lib\libpvrtsp.so
\system\lib\libpvrtspreg.so
\system\lib\libqcamera.so
\system\lib\libreference-ril.so
\system\lib\libril.so
\system\lib\librpc.so
\system\lib\libsgl.so
\system\lib\libsonivox.so
\system\lib\libsoundpool.so
\system\lib\libsqlite.so
\system\lib\libssl.so
\system\lib\libstdc++.so
\system\lib\libsurfaceflinger.so
\system\lib\libsystem_server.so
\system\lib\libthread_db.so
\system\lib\libUAPI_jni.so
\system\lib\libui.so
\system\lib\libutils.so
\system\lib\libvorbisidec.so
\system\lib\libwbxml.so
\system\lib\libwbxml_jni.so
\system\lib\libwebcore.so
\system\lib\libwpa_client.so
\system\lib\libxml2wbxml.so
\system\lib\libz.so
\system\lib\modules
\system\lib\modules\wlan.ko

--------------------------------------------------------------------------------

\system\media
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
\system\media\audio
\system\media\audio\alarms 闹铃音
\system\media\audio\notifications 提示音
\system\media\audio\ringtones 铃声
\system\media\audio\ui 界面操作事件音
\system\media\audio\alarms\Alarm_Beep_01.ogg
\system\media\audio\alarms\Alarm_Beep_02.ogg
\system\media\audio\alarms\Alarm_Beep_03.ogg
\system\media\audio\alarms\Alarm_Buzzer.ogg
\system\media\audio\alarms\Alarm_Classic.ogg
\system\media\audio\alarms\Alarm_Rooster_02.ogg
\system\media\audio\notifications\Beat_Box_Android.ogg
\system\media\audio\notifications\CaffeineSnake.ogg
\system\media\audio\notifications\DearDeer.ogg
\system\media\audio\notifications\DontPanic.ogg
\system\media\audio\notifications\F1_MissedCall.ogg
\system\media\audio\notifications\F1_New_MMS.ogg
\system\media\audio\notifications\F1_New_SMS.ogg
\system\media\audio\notifications\Heaven.ogg
\system\media\audio\notifications\Highwire.ogg
\system\media\audio\notifications\KzurbSonar.ogg
\system\media\audio\notifications\OnTheHunt.ogg
\system\media\audio\notifications\TaDa.ogg
\system\media\audio\notifications\Tinkerbell.ogg
\system\media\audio\notifications\Voila.ogg
\system\media\audio\ringtones\BeatPlucker.ogg
\system\media\audio\ringtones\BentleyDubs.ogg
\system\media\audio\ringtones\BirdLoop.ogg
\system\media\audio\ringtones\CaribbeanIce.ogg
\system\media\audio\ringtones\CrazyDream.ogg
\system\media\audio\ringtones\CurveBall.ogg
\system\media\audio\ringtones\DreamTheme.ogg
\system\media\audio\ringtones\EtherShake.ogg
\system\media\audio\ringtones\FriendlyGhost.ogg
\system\media\audio\ringtones\GameOverGuitar.ogg
\system\media\audio\ringtones\Growl.ogg
\system\media\audio\ringtones\InsertCoin.ogg
\system\media\audio\ringtones\LoopyLounge.ogg
\system\media\audio\ringtones\LoveFlute.ogg
\system\media\audio\ringtones\MidEvilJaunt.ogg
\system\media\audio\ringtones\MildlyAlarming.ogg
\system\media\audio\ringtones\NewPlayer.ogg
\system\media\audio\ringtones\Noises1.ogg
\system\media\audio\ringtones\Noises2.ogg
\system\media\audio\ringtones\Noises3.ogg
\system\media\audio\ringtones\OrganDub.ogg
\system\media\audio\ringtones\Ring_Classic_02.ogg
\system\media\audio\ringtones\Ring_Digital_02.ogg
\system\media\audio\ringtones\Ring_Synth_02.ogg
\system\media\audio\ringtones\Ring_Synth_04.ogg
\system\media\audio\ringtones\RomancingTheTone.ogg
\system\media\audio\ringtones\SitarVsSitar.ogg
\system\media\audio\ringtones\SpringyJalopy.ogg
\system\media\audio\ringtones\T-Jingle.ogg
\system\media\audio\ringtones\Terminated.ogg
\system\media\audio\ringtones\TwirlAway.ogg
\system\media\audio\ringtones\VeryAlarmed.ogg
\system\media\audio\ringtones\World.ogg
\system\media\audio\ui\Effect_Tick.ogg

--------------------------------------------------------------------------------

\system\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\sounds\test.mid

--------------------------------------------------------------------------------

\system\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。
\system\usr\keychars
\system\usr\keylayout
\system\usr\share
\system\usr\srec
\system\usr\keychars\qwerty.kcm.bin
\system\usr\keychars\qwerty2.kcm.bin
\system\usr\keychars\trout-keypad-qwertz.kcm.bin
\system\usr\keychars\trout-keypad-v2.kcm.bin
\system\usr\keychars\trout-keypad-v3.kcm.bin
\system\usr\keychars\trout-keypad.kcm.bin
\system\usr\keylayout\h2w_headset.kl
\system\usr\keylayout\qwerty.kl
\system\usr\keylayout\trout-keypad-qwertz.kl
\system\usr\keylayout\trout-keypad-v2.kl
\system\usr\keylayout\trout-keypad-v3.kl
\system\usr\keylayout\trout-keypad.kl
\system\usr\share\bsk
\system\usr\share\zoneinfo
\system\usr\share\bsk\V_FD_speed_101.bsk
\system\usr\share\bsk\V_FD_std_101.bsk
\system\usr\share\zoneinfo\zoneinfo.dat
\system\usr\share\zoneinfo\zoneinfo.idx
\system\usr\srec\config
\system\usr\srec\config\en.us
\system\usr\srec\config\en.us\baseline.par
\system\usr\srec\config\en.us\baseline11k.par
\system\usr\srec\config\en.us\baseline8k.par
\system\usr\srec\config\en.us\dictionary
\system\usr\srec\config\en.us\g2p
\system\usr\srec\config\en.us\grammars
\system\usr\srec\config\en.us\models
\system\usr\srec\config\en.us\dictionary\basic.ok
\system\usr\srec\config\en.us\dictionary\cmu6plus.ok.zip
\system\usr\srec\config\en.us\dictionary\enroll.ok
\system\usr\srec\config\en.us\g2p\en-US-ttp.data
\system\usr\srec\config\en.us\grammars\VoiceDialer.g2g
\system\usr\srec\config\en.us\models\generic.swiarb
\system\usr\srec\config\en.us\models\generic11.lda
\system\usr\srec\config\en.us\models\generic11_f.swimdl
\system\usr\srec\config\en.us\models\generic11_m.swimdl
\system\usr\srec\config\en.us\models\generic8.lda
\system\usr\srec\config\en.us\models\generic8_f.swimdl

Comments
没有留言 »
分类
android
Tags
android, linux, 安卓, 手机
订阅RSS留言 订阅RSS留言
Trackback Trackback

[强人刷机]第三讲、安卓的系统ROM

| 14:58

A。名词解释
1. ROM,RAM,Flash Memory
ROM(Read Only Memory)的全名为只读记忆体,是PPC上的硬盘部分用来存储和保存数据。ROM数据不能随意更新,但是在任何时候都可以读取。即使是断电,ROM也能够保留数据。但是资料一但写入后只能用特殊方法或根本无法更改,因此ROM常在嵌入式系统中担任存放作业系统的用途

RAM(Random Access Memory)的全名为随机存储记忆体,是PPC上的移动存储部分,用来存储和保存数据的。它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)
         
Flash Memory,由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展 ,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料,我们常见的FLASH Memory有TF卡(全名:TransFLash卡),SD卡(全名:Secure Digital Memory Card),CF卡(全名:Compact Flash卡)等。
2. XIP,IPL,SPL,RADIO
XIP(Execute In Place)中文意:立即执行。XIP所起到的作用是让操作系统内核直接在Flash中运行,不需要拷贝到RAM,即指操作系统或应用程序直接从非易失性存储器中执行,这样减少了内核从闪速存储器拷贝到RAM的时间,其采用的非压缩映像也减少了内核自解压的时间,换句话说,XIP直接决定了PPC系统运行和加载程序的时间,也就是直接决定了PPC系统的运行速度。

IPL(全称:InitialProgramLoader)中文意:首次装载系统,其负责主板,电源、硬件初始化程序,并把SPL装入RAM,如果IPL损坏,由于不能加载SPL,所以机器将不能装载任何由SPL完成装载的OS系统。

SPL(全称:SecondProgramLoader)中文意:第二次装系统,就是负责装载OS操作系统到RAM中,SPL损坏了我们可以烧录机这样的设备来重新写入,或者还可以通过刷入初始的ROM版本来实现重写SPL,我们俗称“寻找原厂ROM救砖”

RADIO,字面理解:无线电通讯,其负责着PPC作为手机功能的通讯功能方面,包括它的电话和上网功能,事实上,RADIO硬件模块已经在手机出厂时已经内置,我们所刷入的不过是作为软件应用层面的东西,因为软件层面的东西决定了RADIO硬件模块接收和传递信号的频段分配,所以硬件RADIO的称谓已经被弱化,我们把这种RADIO软件层面的东东一律称为RADIO。
3. 刷ROM,刷RADIO,解锁,永久解锁
刷ROM,意指将新的ROM刷入PPC,ROM部分包含:IPL、SPL、OS、EXTROM、RADIO、STORAGE等,目前来说,我们刷入的ROM绝大多数只包含OS部分,OS部分包含两个东东:XIP、 IMGFS,而这两个正是影响系统层面的主要因素,鉴于其他部分,因为涉及到核心层面的重新写入,可另行重写,所以我们在此进行了抛弃,为了省事,也降低了一次性刷入的风险。

刷RADIO,简单的说就是刷入新的RADIO模块的应用软件,不同的地区不同的通讯服务网络,无线通讯基站在接收和发送无线信号上的频段各有不同,那么处于这个地区和这个通讯服务网络之内的RADIO硬件模块,在频段调整上越接近于本地基站,手机的通讯信号就会越好,信号接收和发送就会越完整越快速,信号搜索上也会越稳定,从而使我们的PPC信号强劲又省电,运营商新的RADIO是根据其基站的新的频段来调整的,所以随着时间的推移,当基站有所升级其频段有所调整的时候,新RADIO的刷入就很有必要了。

解锁,随便解释一下吧,PPC机器在出厂的时候对机器内部核心的CID地址段进行了上锁,上锁的原理是基于微软对于开放性的WM系统所提供的一种特权保护机制,该机制对应用程序能够访问的系统资源作了限制,而厂家正是利用这一点实现了对系统ROM的锁定,锁定的目的一方面是为了个不同机型间的区别和独立性,更大的原因是保障厂家对WM系统推陈出新上的独立自主权,锁定被集中在机器CID地址段上,不同CID的ROM相互之间不能进行交互性的替换,如果强行刷入CID不同的ROM,将无法通过CID校验,严重的会出现系统无法修复的现象,由此PPC玩机的"江湖大侠"们便做起了文章,衍生出一种通过CID地址段欺骗的手段来对上锁的CID进行破解,破解过的CID刷入后,再刷入其他不同CID的ROM将极大可能地通过校验(但不是100%都可行)从而将新的ROM写入机器.

永久解锁,江湖又称SuperCID,此种新破解的CID和上面的相比具备更大的优势在于新ROM作刷入操作的时候,如若操作失败,原机系统将不会受到较大损伤,就算造成损伤也很容易被修复,所以我们常称此种解锁能使PPC“拥有不坏之身”。
4. 重启,硬启,定屏,假死,死机
重启,人人都懂的问题,和PC重启的机制是一样的,ROM中的数据全部保存完好,但是RAM中的数据全部丢失,正因此,通过重启可以解决RAM中运行不正常的现象,比如系统运行中的死机,比如程序模块找不到等问题,大部分的机器都会在一定时间内做重启操作,不是因为断电,而是由于机器运行一段时间之后会有相当一部分的垃圾缓存在RAM中,这是由于我们频繁操作机器造成的,众所周知,RAM剩余得越少,机器运行可用的运行空间就越小,机器的速度也会越慢,耗电量也会增大,那么重启机器在关机的一瞬间RAM里的所有数据全部丢失,包括系统垃圾,在重新开机之后,系统会重新加载应用程序,这时候RAM是一个相对干净的空间。重启的方式大家都知道,连我地球人也知道了,通过电源键,通过系统应用程序,通过桶PP。

硬启,和重启一样都需要重新启动机器,所不同的是硬启将丢失所有ROM和RAM中的数据,而重启只丢失RAM,硬启后系统会自动还原为初始状态,所有的设定要重新来做,所有的资料要重新拷贝进去,貌似PC上的一键还原机制;硬启的原理是利用机器自身进行了格式化,所不同的是格式化之后机器ROM里的初始数据将被重新调出,这个初值数据一直都存在于ROM之中,你无法删除,纵使你作了替换修改等操作,貌似已经修改了数据,其实不然,只是被系统暂时隐藏了,那么在实行硬启格式化ROM之后,重启机器初始数据会被调处进行加载。硬启操作一般大家不常用,除非系统ROM里出现了无法修复的错误导致机器不能正常运行,那就只能通过硬启来修复系统,硬启的方式地球人都知道,按住挂断和接听两个硬按键桶PP,或者1234清除内存。

定屏,顾名思义,就是屏幕定住不动不理会你的操作,PPC中的定屏现象主要指的是在开机三屏(或者两屏)上,正常情况下开机之后随着系统的加载,开机屏幕会逐步跳过直到出现调整的界面,但是因为ROM制作中出现错误或者遗漏,导致新ROM刷入之后开机屏幕跳不过去了,无论你等待多长时间,手机屏幕定格在那不动了,无法进入系统,导致刷机失败,之所以解释定屏是因为在后面的解决疑难杂症里会用到这个词。

假死,又称睡死,非真正的死机现象,假死现象指的是机器表面上运行正常,但是后台的部分应用程序不能被激发,比如在待机模式下电话呼入屏幕无显示无铃声,比如在操作某项程序的时候出现激发暂时性无反应或者反应延时过长。
5. 三色屏
三色屏,因该模式下屏幕上呈现三种色彩而得名,三色屏模式最直接的作用是用于查看机器IPL值和SPL值,以识别手机是否成功解锁,间接作用是在模式下可以进行刷机操作。所有的刷机操作必定要在三色屏模式下实现,不论你是直刷还是卡刷;手动进入三色屏的方法是按住相机键捅PP重启手机,至于其他关于三色屏的内容留到后面再讲。

B。系统原理
   
微软的WM系统平台和其PC系统平台有着惊人的相似性,而IPL与SPL实质为WM的Bootloader里的两大组成部份,前面说了,IPL负责主板,电源、硬件初始化程序、并把SPL装入RAM的,SPL则是负责装载OS操作系统中的,所以开机启动顺序是IPL>SPL>OS,SPL还提供检测手机硬件、寻找系统启动分区、启动操作系统为系统的基本维护提供操作界面以及检测SD卡等,像我们执行刷机操作的时候,也是SPL在发挥作用,比如连接电脑同步,进入三色等。

在SPL装载OS的时候,前面我们提到OS分区又分为XIP、 IMGFS两部分,系统启动时SPL加载OS分区的XIP到RAM执行,XIP就是WINCE XIP KERNEL,是CE核心部分,XIP是为eXecute In Place的缩写,在微软的CE定义中,这块区域存放的是以非压缩格式存放,不需加载,由Bootloader直接调用执行。XIP部分大约3MB,包括nk.exe、device.exe等核心程序,就像 PC上的ntoskrnl.exe等。IMGFS就像一个压缩的GHOST文件,包括了WM的所有系统文件。CE核心启动后就可以访问IMGFS文件系统上的OS需要的所有文件了,IMGFS是XPR或LZX压缩格式,系统访问上面的文件会自动解压到RAM。因为普通PE文件调入RAM执行要进行地址重定位,为了提高效率,IMGFS中的文件可以是重定位好的模块形式,这些程序运行就不用再重定位了,直接调入RAM中保留的PagePool(缓冲池)执行。

刷机就是重写OS分区了,用PDOCREAD可以把整个OS分区读成一个NB镜象文件,然后把镜象解开到DUMP文件夹,就是所有ROM的文件了。文件分2种,一种是普通文件,另一种是XIP(ExecInPlace)模块,这是为了加快OS运行设计的,就是这些文件可以不调入RAM而直接在ROM执行,但因为现在都是NAND ROM,所以XIP模块其实还是要调入RAM的PAGEPOOL执行。
但是由于XIP模块有很多地址信息,所以移植OS最难的就是这了。

hcphs的定制法
http://www.android.net/bbs/viewthread.php?tid=10627&extra=page%3D1%26amp;filter%3Dtype%26amp;typeid%3D5

Comments
没有留言 »
分类
android
Tags
android, linux, 安卓, 手机
订阅RSS留言 订阅RSS留言
Trackback Trackback

[强人刷机]第一讲、安卓的结构

| 14:52

红色部分:Linux 内核
绿色部分:库(都是基于C来编写)
    Surface Manager 窗口的支持
    OpenGL SGl 2D,3D的支持
    Media Framework 媒体的支持
    FreeType  字体的支持
    SSL  安全的支持
    SQLite  数据库的支持
    WebKit  浏览器的引擎
    libc 
黄色部分:Android 运行
    Google提供了自己的Dalvik虚拟机(专门针对嵌入式设备来编写的)
    虚拟机之上,就是JAVA的核心库。
蓝色部分:Application Framework (全部都是JAVA来写的代码)
    应用程序框架。

Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
第一、操作系统层(OS)
第二、各种库(Libraries)和Android 运行环境(RunTime)
第三、应用程序框架(Application Framework)
第四、应用程序(Application)
    以下分别介绍Andoid各个层次的软件的重点及其相关技术:

● 操作系统层(OS)
    Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:
    显示驱动(Display Driver):常用基于Linux的帧缓冲(Frame Buffer)驱动。
    Flash内存驱动(Flash Memory Driver)
    照相机驱动(Camera Driver):常用基于Linux的v4l(Video for )驱动。
    音频驱动(Audio Driver):常用基于ALSA(Advanced Linux Sound Architecture,高级Linux声音体系)驱动。
    WiFi驱动(Camera Driver):基于IEEE 802.11标准的驱动程序
    键盘驱动(KeyBoard Driver)
    蓝牙驱动(Bluetooth Driver)
    Binder IPC驱动: Andoid一个特殊的驱动程序,具有单独的设备节点,提供进程间通讯的功能。
    Power Management(能源管理)

● 各种库(Libraries)和Android 运行环境(RunTime)
    本层次对应一般嵌入式系统,相当于中间件层次。Android的本层次分成两个部分一个是各种库,另一个是Android 运行环境。本层的内容
大多是使用C++实现的。
    在其中,各种库包括:
    ▅ C库:C语言的标准库,这也是系统中一个最为底层的库,C库是通过Linux的系统调用来实现。
    ▅ 多媒体框架(MediaFrameword):这部分内容是Android多媒体的核心部分,基于PacketVideo(即PV)的OpenCORE,从功能上本库一共
分为两大部分,一个部分是音频、视频的回放(PlayBack),另一部分是则是音视频的纪录(Recorder)。
    ▅ SGL:2D图像引擎。
    ▅ SSL:即Secure Socket Layer位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
    ▅ OpenGL ES 1.0 :本部分提供了对3D的支持。
    ▅ 界面管理工具(Surface Management):本部分提供了对管理显示子系统等功能。
    ▅ SQLite:一个通用的嵌入式数据库
    ▅ WebKit:网络浏览器的核心
    ▅ FreeType:位图和矢量字体的功能。
       Android 的各种库一般是以系统中间件的形式提供的,它们均有的一个显著特点就是与移动设备的平台的应用密切相关。

        Android 运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般JAVA虚拟机(Java VM)不同,它执行的不是JAVA标准的字节码(bytecode )而是Dalvik可执行格式(.dex)中执行文件。在执行的过程中,每一个应用程序即一个进程(Linux的一个Process)。    二者最大的区别在于Java VM是以基于栈的虚拟机(Stack-based),而Dalvik是基于寄存器的虚拟机(Register-based)。显然,后者最大的好处在于可以根据硬件实现更大的优化,这更适合移动设备的特点。

● 应用程序框架(Application Framework)
      Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的,因此本
层次提供的首先包含了UI程序中所需要的各种控件:
      例如: Views (视图组件)包括 lists(列表), grids(栅格), text boxes(文本框), buttons(按钮)等。甚至一个嵌入式的Web浏览器。
   一个Andoid的应用程序可以利用应用程序框架中的以下几个部分:
   Activity (活动)
   Broadcast Intent Receiver (广播意图接收者)
   Service (服务)
   Content Provider (内容提供者)

● 应用程序(Application)
   Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜力的体现。
我们再来了解一下 安卓系统内文件名的含义

如图

 

好了~大概了解了安卓系统

我们再来看看HTC 有啥!

如图
android-info.txt..........................包含手机系统软件版本信息

boot.img..................................手机启动时的必要系统与recovery.img类似,但有所区别(详见 http://www.hiapk.com/bbs/thread-6391-1-1.html )

hboot_7227_0.43.0001_100218.nb0...........(详见http://222.77.181.28/bbs/viewthread.php?tid=161233 小白的狂想~)

radio.img.................................无线协议

rcdata.img................................

recovery.img..............................恢复时启动的系统,包含一些硬件底层的驱动~

Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。

升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),copy_dir(复制目录)。该包一般被下载至SDCARD和CACHE分区下。如果对该包内容感兴趣,可以从http://forum.xda-developers.com/showthread.php?t=442480下载JF升级包来看看。

升级中还涉及到包的数字签名,签名方式和普通JAR文件签名差不错。公钥会被硬编译入recovery,编译时生成在:out/target/product/XX/obj/PACKAGING/ota_keys_inc_intermediates/keys.inc

三种启动模式
MAGIC KEY:

camera + power:bootloader模式,ADP里则可以使用fastboot模式

home + power:recovery模式

正常启动

Bootloader正常启动,又有三种方式,按照BCB(Bootloader Control Block, 下节介绍)中的command分类:

command == 'boot-recovery' → 启动recovery.img。recovery模式

command == 'update-radio/hboot' → 更新firmware(bootloader)

其他 → 启动boot.img

Recovery涉及到的其他系统及文件
CACHE分区文件

Recovery 工具通过NAND cache分区上的三个文件和主系统打交道。主系统(包括恢复出厂设置和OTA升级)可以写入recovery所需的命令,读出recovery过程中的LOG和intent。
/cache/recovery/command: recovery命令,由主系统写入。所有命令如下:
--send_intent=anystring - write the text out to recovery.intent
--update_package=root:path - verify install an OTA package file
--wipe_data - erase user data (and cache), then reboot
--wipe_cache - wipe cache (but not user data), then reboot
/cache/recovery/log:recovery过程日志,由主系统读出
/cache/recovery/intent:recovery输出的intent
MISC分区内容

Bootloader Control Block (BCB) 存放recovery bootloader message。结构如下:

struct bootloader_message {

char command[32];

char status[32]; // 未知用途

char recovery[1024];

};

command可以有以下两个值

“boot-recovery”:标示recovery正在进行,或指示bootloader应该进入recovery mode

“update-hboot/radio”:指示bootloader更新firmware

recovery内容

“recoveryn

<recovery command>n

<recovery command>”

其中recovery command为CACHE:/recovery/command命令
两种Recovery Case
FACTORY RESET(恢复出厂设置)

用户选择“恢复出厂设置”
设置系统将"--wipe_data"命令写入/cache/recovery/command
系统重启,并进入recover模式(/sbin/recovery)
get_args() 将 "boot-recovery"和"--wipe_data"写入BCB
erase_root() 格式化(擦除)DATA分区
erase_root() 格式化(擦除)CACHE分区
finish_recovery() 擦除BCB
重启系统
OTA INSTALL(OTA升级)

升级系统下载 OTA包到/cache/some-filename.zip
升级系统写入recovery命令"--update_package=CACHE:some-filename.zip"
重启,并进入recovery模式
get_args() 将"boot-recovery" 和 "--update_package=..." 写入BCB
install_package() 作升级
finish_recovery() 擦除 BCB
** 如果安装包失败 ** prompt_and_wait() 等待用户操作,选择ALT+S或ALT+W 升级或恢复出厂设置
main() 调用 maybe_install_firmware_update()
如果包里有hboot/radio的firmware则继续,否则返回
将 "boot-recovery" 和 "--wipe_cache" 写入BCB
将 firmware image写入cache分区
将 "update-radio/hboot" 和 "--wipe_cache" 写入BCB
重启系统
bootloader自身更新firmware
bootloader 将 "boot-recovery" 写入BCB
erase_root() 擦除CACHE分区
清除 BCB
main() 调用 reboot() 重启系统

Recovery模式流程

/init → init.rc → /sbin/recovery →
main():recovery.c

ui_init():ui.c [UI initialize]
gr_init():minui/graphics.c [set tty0 to graphic mode, open fb0]
ev_init():minui/events.c [open /dev/input/event*]
res_create_surface:minui/resource.c [create surfaces for all bitmaps used later, include icons, bmps]
create 2 threads: progress/input_thread [create progress show and input event handler thread]
get_args():recovery.c
get_bootloader_message():bootloader.c [read mtdblock0(misc partition) 2nd page for commandline]
check if nand misc partition has boot message. If yes, fill argc/argv.
If no, get arguments from /cache/recovery/command, and fill argc/argv.
set_bootloader_message():bootloader.c [set bootloader message back to mtdblock0]
Parser argv[] filled above
register_update_commands():commands.c [ register all commands with name and hook function ]
registerCommand():commands.c
Register command with name, hook, type, cookie.
Commands, e.g: assert, delete, copy_dir, symlink, write_raw_image.
registerFunction():commands.c
Register function with name, hook, cookie.
Function, e.g: get_mark, matches, getprop, file_contains
install_package():
translate_root_path():roots.c [ "SYSTEM:lib" and turns it into a string like "/system/lib", translate the updater.zip path ]
mzOpenZipArchive():zip.c [ open updater.zip file (uncompass) ]
handle_update_package():install.c
verify_jar_signature():verifier.c [ verify signature with keys.inc key; verify manifest and zip package archive ]
verifySignature() [ verify the signature file: CERT.sf/rsa. ]
digestEntry():verifier.c [ get SHA-1 digest of CERT.sf file ]
RSA_verify(public key:keys.inc, signature:CERT.rsa, CERT.sf's digest):libc/rsa.c [ Verify a 2048 bit RSA PKCS1.5 signature against an expected SHA-1 hash. Use public key to decrypt the CERT.rsa to get original SHA digest, then compare to digest of CERT.sf ]
verifyManifest() [ Get manifest SHA1-Digest from CERT.sf. Then do digest to MANIFEST.MF. Compare them ]
verifyArchive() [ verify all the files in update.zip with digest listed in MANIFEST.MF ]
find_update_script():install.c [ find META-INF/com/google/android/update-script updater script ]
handle_update_script():install.c [ read cmds from script file, and do parser, exec ]
parseAmendScript():amend.c [ call yyparse() to parse to command ]
exeCommandList():install.c
exeCommand():execute.c [ call command hook function ]
erase DATA/CACHE partition
prompt_and_wait():recovery.c [ wait for user input: 1) reboot 2) update.zip 3) wipe data ]
ui_key_xxx get ALT+x keys
1) do nothing
2) install_package('SDCARD:update.zip')
3) erase_root() → format_root_device() DATA/CACHE
may_install_firmware_update():firmware.c [ remember_firmware_update() is called by write_hboot/radio_image command, it stores the bootloader image to CACHE partition, and write update-hboot/radio command to MISC partition for bootloader message to let bootloader update itself after reboot ]
set_bootloader_message()
write_update_for_bootloader():bootloader.c [ write firmware image into CACHE partition with update_header, busyimage and failimage ]
finish_recovery():recovery.c [ clear the recovery command and prepare to boot a (hopefully working) system, copy our log file to cache as well (for the system to read), and record any intent we were asked to communicate back to the system. ]
reboot()

 
splash1.nb0...............................

system.img................................主系统文件--机器启动后的主要系统全部在这里!定义ROM就是这里的事儿

userdata.img..............................

Comments
没有留言 »
分类
android
Tags
android, linux, 安卓, 手机
订阅RSS留言 订阅RSS留言
Trackback Trackback

linux(CentOS 5.4)中多网卡bond时配置多IP

2010-04-27 | 12:49

如题,linux配置多网卡bond是老话题了;linux下某网卡配置多ip也是老话题了,但今天因为要把原来两台dns上的业务转到一台设备上来,所以琢磨了一下这个问题。

原本学校里,两台dns server,一台对外部网络用户访问我们学校主页使用,一台作为cache server供内部老师们访问外部网络使用。想来您也想到了,这两台服务器,不可避免地位于同一网络段中呢~~~

好吧,一般而言,解决这样问题的方法很简单:

1.新服务器上使用单网卡多ip方案,然后就解决掉了(这个方案的缺陷是多个ip也只有使用一条线路带宽)

2.新服务器上使用两个网络接口,每个接口一个ip,然后利用arp_filter过滤掉一个同网段的arp发包,利用策略路由的方式进行访问(这个方案的缺陷是策略路由的配置不是太容易,而且其中一个网卡挂掉了,相应的服务就挂掉了)

所以我想到了利用bond将几个网卡整合起来视作一块网卡看待,然后再在其上面做多ip设置。

嗯嗯,放G出去搜了一圈,很快将bond做好了

新建文件:/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=IP地址
NETMASK=掩码
NETWORK=网络段
BROADCAST=广播地址
GATEWAY=网关地址
修改网卡配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
修改/etc/modprobe.conf,在最后面加入以下两行:
alias bond0 bonding
options bond0 miimon=100 mode=0

# mode 0 是需要配置交换机的,mode 6 不需要,我偷懒用了mode 6,具体关于这个参数可以查相关文档
修改/etc/rc.d/rc.local,在最后面加入以下行:
ifenslave bond0 eth0 eth1

设置完成后重起启动。

恩,这一步进行得那是相当地圆满,很快搞定了~~~不过在这之后,在bond0上设置多个ip的时候,却始终遇到问题,经过为期1个小时的不懈尝试(主要是每次等服务器重新启动太恼火了),然后利用ifdown,ifup不断折腾,最终得到了正确答案。

修改文件:/etc/sysconfig/network-scripts/ifcfg-bond0 为以下内容(相对于上面等于是屏蔽了几行)

DEVICE=bond0

ONBOOT=yes

BOOTPROTO=static

新增文件:/etc/sysconfig/network-scripts/ifcfg-bond0:0

DEVICE=bond0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=IP地址 1
NETMASK=掩码
NETWORK=网络段
BROADCAST=广播地址
GATEWAY=网关地址

新增文件:/etc/sysconfig/network-scripts/ifcfg-bond0:1

DEVICE=bond0:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=IP地址 2
NETMASK=掩码
NETWORK=网络段
BROADCAST=广播地址
GATEWAY=网关地址

其他的保持原样即可~~~重新启动,成功~~~哈哈。

这样做的好处是,以后可以将数个ip和数个网卡绑定成一个出口,网卡down掉的时候就不用怕咯。。。呵呵

Comments
1 条留言 »
分类
心得分享
Tags
bond, ip, linux, 多路, 模式, 网卡
订阅RSS留言 订阅RSS留言
Trackback Trackback

关于近期四川电信对搜索的劫持与应对方法

2008-12-03 | 18:59

从大约2008年11月30日起测试的结果来看,当访问google、baidu进行搜索的时候,遭到了HTTP的访问劫持并转向,准确的劫持页面是 125.64.31.13:81 这里,用 /b.js 来进行的劫持工作...
之后跳转到 s.cntsi.net 这里,利用 /earch.aspx 再次跳转到google,测试的时候发现由于可能还在矫正,目前即使是用百度搜索,也会被转到google的搜索结果上面去。

阅读全文 »

Comments
没有留言 »
分类
心得分享
Tags
asp, baidu, bind, CU, dns, google, HTTP, linux, windows, 劫持, 域名, 朋友, 网络, 解决
订阅RSS留言 订阅RSS留言
Trackback Trackback

将 po 文件编译成 mo 文件

2008-04-08 | 8:44

  在使用 WordPress 及其他程序时,经常可以找到汉化的版本,一般是通过一个汉化过(翻译过)的 mo 文件来实现( WordPress 仅可识别 mo 文件),实际上不单 WordPress ,包括很多桌面应用程序都是是依靠 po 文件或 mo 文件来实现多语言版本。如果原作者提供了一个 po 文件或 mo 文件,那么我们就可以通过相关工具来自行汉化,或者翻译成其他语言版本。因为 mo 文件不能直接编辑,所以我们得编辑 po 文件,若仅有 mo 文件,那么就应该先把它转换成 po 文件后再进行编辑翻译。 阅读全文 »

Comments
3 条留言 »
分类
心得分享
Tags
linux, msgfmt, msgunfmt, wordpress, 桌面
订阅RSS留言 订阅RSS留言
Trackback Trackback

Linux下网络高效的硬件选择及相关网络优化.

2008-03-18 | 4:38

转自: http://blog.chinaunix.net/u/4312/showart_306613.html 该主人技术不错的

1.现在的pc硬件情况
1)cpu相当快
2GHz CPU: 一个时钟周期0.5纳秒
L1/L2 缓存 2~3个时钟周期。
2)不在L1/L2缓存下的所有事情就像磁盘访问一样(指在内存中工作).
在Opteron(DDR-333) 40~180个时钟周期.
在Xeon(DDR-333) 250~460个时钟周期.
3)I/O读取
在NIC的寄存器读在3600个时钟周期左右。发生在同步操作,锁状态。
2.硬件选取
1)cpu
cache越多越好。共享缓存(多核)更好。
2)是否选择smp
smp增加了代码复杂性。在真正的smp中缓存中存在碰撞(ping-pong)。
选择主要考虑工作量和接口卡数。对于IPsec,tc,复杂路由等应用有帮助。对于只做nat帮助不大。 阅读全文 »

Comments
没有留言 »
分类
艺海无涯
Tags
blog, linux, nat, unix, vb, 硬盘, 网络
订阅RSS留言 订阅RSS留言
Trackback Trackback

新新BT下载工具——奔流Benliud

2007-09-23 | 4:18

如果有一款BT下载工具,功能很清爽,除了BT下载以外没有其他花哨功能,节约系统资源占用,你会不会用?

如果有一款BT下载工具,没有附带任何插件和广告显示,绝对不会污染你的眼睛和电脑,你会不会用?

如果有一款BT下载工具,同时有for win(98/2k/XP/2k3/Vista通吃)和linux两个版本,你会不会用?

如果有一款BT下载工具,与Flashget的bt下载速度相若,但使用的连接数只有其一半,你会不会用?

如果有一款BT下载工具,作者很诚实地告之用户与其他同类软件的测试结果(优劣各有),你会不会用?

如果有一款BT下载工具,比简单小巧的µTorrent 快速,而体积也只有1M些许,你会不会用?

至少,skylove会选择尝试一下。这个尚在开发中的软件,就是 奔流 Benliud 目前最新版本是0.2.1。版本号虽然低(因为作者很诚实啦,不是那种喜欢玩版本号游戏的),但功能已经相当地完善稳定,速度也相当地优秀了。在我用其在猪猪乐园下载电影的时候,速度感觉明显比其他bt下载工具好,而且所占用的系统资源开销(CPU、内存、TCP连接数)都比较理想。目前作者仍在很勤力地更新中(主页 http://blog.chinaunix.net/u1/42104/),相关的问题也可以发布到 benliud downloader [奔流下载] Google Groups 寻找作者了解。

如果你也想用用看,那么不妨到 http://groups.google.com/group/benliud/files 这里去下载一份吧,当前有for win和for ubuntu 两种版本提供,for win版本的安装更是直接解压到某目录就可以了。

Comments
没有留言 »
分类
休闲娱乐
Tags
blog, flash, google, linux, tor, unix, 软件
订阅RSS留言 订阅RSS留言
Trackback Trackback

linuxbox只允许指定的mac地址上网的解决方法

2007-06-13 | 9:24

今天下午,主任临时交代的任务,要求做个临时的nat服务器,做到指定的机器用指定的ip上网。
为了达到这一需求,最后从 想得太美 兄弟的论坛里 挖坟 找到了一个比较完美的方法,顺便记录于下。

只允许指定mac地址的电脑可以上网:
#The next 4 lines create and maintain the mac-nat chain
iptables -t nat -N mac-nat 2>/dev/null
iptables -t nat -F mac-nat 2>/dev/null
iptables -t nat -D PREROUTING -j mac-nat 2>/dev/null
iptables -t nat -I PREROUTING -j mac-nat 2>/dev/null

iptables -t nat -A mac-nat -i $IF_LOCAL --match mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -t nat -A mac-nat -i $IF_LOCAL -j DROP

只允许指定mac地址和IP的电脑可以上网

iptables -t nat -A mac-nat -i $IF_LOCAL -s 192.168.0.X --match mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

or

iptables -t nat -A mac-nat -i $IF_LOCAL -s 192.168.0.0/24 --match mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

值得注意的是,相关的nat 指令,如

/sbin/iptables -t nat -A POSTROUTING -o 外网卡 -s 内网段 -j SNAT --to 外网ip

一定要放在mac过滤的前面才有作用哟~~~一开始我就在这里遇到了点麻烦呢~~~~哈哈

对了,顺便帮助 想得太美 哥们推荐他的路由器论坛 http://bbs.routerclub.com/

Comments
1 条留言 »
分类
心得分享
Tags
linux, nat
订阅RSS留言 订阅RSS留言
Trackback Trackback

ubuntu下wine的成功安装设置

2007-03-09 | 8:26

1.首先因为新版本存在中文输入问题,所以别用官方的更新版本的哦 ,用 http://archive.ubuntu.org.cn/ubuntu-cn/dists/edgy/main/binary-i386/wine/
这里提供的比较好,当然如果是想升级官方的,那么也可以升,然后打上
http://forum.ubuntu.org.cn/viewtopic.php?t=36322
提供的patch,以下是原理:

到 wine 的 source dir 下
修改 dlls/winex11.drv/x11drv_main.c
找到
代碼:

if (!XInitThreads()) ERR( "XInitThreads failed, trouble ahead\n" );

這一行, 將其注解掉
重新 compile 就萬事 ok 啦 !

我把winex11.drv.so文件单独编译了,上传为附件了,下载,解压缩后用root权限覆盖/usr/lib/wine/下的同名文件就可以了.

2.然后,修改一下默认启动慢的问题哟
修改 /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE
把里面有 GBK 字样的段全部删掉。(记得操作之前备份哦)

3.不需要宋体也能运行

有些中文的 Windows 程序只认 Simsun 的宋体, 造成没 Simsun 的机器上会乱码或无法显示部分中文。

引用:
一般用的

代码:
[HKEY_CURRENT_USER\Software\\Wine\\Fonts\\Replacements]
@="AR PL ShanHeiSun Uni"


对她又无效。
发现这的字体替换有些奇怪,只能用中文名对中文名

现在可以这样用其他字体替换 Simsun 宋体,

打开 regedit , 找到 [HKEY_CURRENT_USER\Software\\Wine\\Fonts\\Replacements] ,
添加一个键,
键名 “宋体” , 字符串值 “文鼎PL细上海宋Uni”

或者,
写个文件 宋体.reg ( 注意保存为 GBK 编码)

代码:
[HKEY_CURRENT_USER\Software\\Wine\\Fonts\\Replacements]
"宋体"="文鼎PL细上海宋Uni"


再执行 wine regedit 宋体.reg 导入她

这样 wine 在没有 simsun 的机器上就可以正常字体替换,不会无法显示了。或是直接修改 wine 的 user.reg

添加

代码:
[Software\\Wine\\Fonts\\Replacements] 1167743125
@="AR PL ShanHeiSun Uni"
"\x5b8b\x4f53"="\x6587\x9f0ePL\x7ec6\x4e0a\x6d77\x5b8bUni"

4.再接着,把winecfg启动那里的audio问题给解决掉:
默认的ubuntu下会提示说找不到/dev/snd/seq , 运行

代码:
sudo modprobe snd-seq-oss


就可以了

如果是为了方便,可以将

代码:
snd-seq-oss

放到 /etc/modules 文件中

====libjock问题====
安装libjack的dev包就可以了。。。可以用 apt-cache search libjack-dev 搜索最新的


代码:
sudo apt-get install libjack0.100.0-dev


之后就不会报告错误了哟。。。

5.关于使用scim的拼音输入法的问题:
找到则文章 http://www.linuxgame.org/bbs/viewthread.php?tid=2431&highlight=

在*ubuntu dapper上解决wine使用scim智能拼音输入法的问题

其实scim中的智能拼音输入法没有通用码表,这使在wine中显示的汉字无法填充到文本输入区。
可以对/etc/scim目录和$HOME/.scim目录中的config文件进行修改即可,使config中的:
/IMEngine/Pinyin/DynamicAdjust = true
这样使拼音输入法的光标能自动调整到词的结尾。

修改后的config和global文件如下:

config文件:
/DefaultIMEngineFactory/zh_CN = 05235cfc-43ce-490c-b1b1-c5a2185276ae
/FrontEnd/ChangeFactoryGlobally = false
/FrontEnd/IMOpenedByDefault = true
/FrontEnd/OnTheSpot = false
/FrontEnd/SharedInputMethod = true
/FrontEnd/Socket/ConfigReadOnly = false
/FrontEnd/Socket/MaxClients = 512
/FrontEnd/X11/BrokenWchar = true
/FrontEnd/X11/Dynamic = false
/FrontEnd/X11/OnTheSpot = true
/FrontEnd/X11/ServerName = SCIM
/Hotkeys/FrontEnd/NextFactory = Control+Alt+Down,Shift+Control+KeyRelease+Shift_L,Shift+Control+KeyRelease+Shift_R
/Hotkeys/FrontEnd/Off =
/Hotkeys/FrontEnd/On =
/Hotkeys/FrontEnd/PreviousFactory = Control+Alt+Up,Shift+Control+KeyRelease+Control_L,Shift+Control+KeyRelease+Control_R
/Hotkeys/FrontEnd/ShowFactoryMenu = Control+Alt+Right
/Hotkeys/FrontEnd/Trigger = Control+space,Shift+space,Zenkaku_Hankaku,Hangul
/Hotkeys/FrontEnd/ValidKeyMask = Shift+Control+Alt+CapsLock+Meta
/IMEngine/Pinyin/AlwaysShowLookup = true
/IMEngine/Pinyin/Ambiguity/AnAng = false
/IMEngine/Pinyin/Ambiguity/Any = false
/IMEngine/Pinyin/Ambiguity/ChiCi = false
/IMEngine/Pinyin/Ambiguity/EnEng = false
/IMEngine/Pinyin/Ambiguity/FoHe = false
/IMEngine/Pinyin/Ambiguity/InIng = false
/IMEngine/Pinyin/Ambiguity/LeRi = false
/IMEngine/Pinyin/Ambiguity/NeLe = false
/IMEngine/Pinyin/Ambiguity/ShiSi = false
/IMEngine/Pinyin/Ambiguity/ZhiZi = false
/IMEngine/Pinyin/AutoCombinePhrase = true
/IMEngine/Pinyin/AutoFillPreedit = true
/IMEngine/Pinyin/BurstStackSize = 128
/IMEngine/Pinyin/ChineseSwitchKey = Control+slash
/IMEngine/Pinyin/DisablePhraseKey = Control+d
/IMEngine/Pinyin/DynamicAdjust = true
/IMEngine/Pinyin/DynamicSensitivity = 6
/IMEngine/Pinyin/FullWidthLetterKey = Shift+space
/IMEngine/Pinyin/FullWidthPunctKey = Control+period
/IMEngine/Pinyin/Incomplete = true
/IMEngine/Pinyin/MatchLongerPhrase = false
/IMEngine/Pinyin/MaxPreeditLength = 32
/IMEngine/Pinyin/MaxUserPhraseLength = 8
/IMEngine/Pinyin/ModeSwitchKey = Alt+Shift_L+KeyRelease,Alt+Shift_R+KeyRelease,Shift+Shift_L+KeyRelease,Shift+Shift_R+KeyRelease
/IMEngine/Pinyin/PageDownKey = period,equal,bracketright,Page_Down
/IMEngine/Pinyin/PageUpKey = comma,minus,bracketleft,Page_Up
/IMEngine/Pinyin/SavePeriod = 300
/IMEngine/Pinyin/ShowAllKeys = false
/IMEngine/Pinyin/SmartMatchLevel = 20
/IMEngine/Pinyin/Tone = false
/IMEngine/Pinyin/User/DataBinary = false
/IMEngine/RawCode/Locales = default
/Panel/Gtk/Color/ActiveBackground = light sky blue
/Panel/Gtk/Color/ActiveText = black
/Panel/Gtk/Color/NormalBackground = #F7F3F7
/Panel/Gtk/Color/NormalText = black
/Panel/Gtk/DefaultSticked = false
/Panel/Gtk/Font = default
/Panel/Gtk/LookupTableEmbedded = true
/Panel/Gtk/LookupTableVertical = false
/Panel/Gtk/ShowStatusBox = false
/Panel/Gtk/ShowTrayIcon = true
/Panel/Gtk/ToolBar/AlwaysShow = false
/Panel/Gtk/ToolBar/AutoSnap = true
/Panel/Gtk/ToolBar/HideTimeout = 2
/Panel/Gtk/ToolBar/POS_X = 1000
/Panel/Gtk/ToolBar/POS_Y = 777
/Panel/Gtk/ToolBar/ShowFactoryIcon = true
/Panel/Gtk/ToolBar/ShowFactoryName = true
/Panel/Gtk/ToolBar/ShowHelpIcon = true
/Panel/Gtk/ToolBar/ShowSetupIcon = true
/Panel/Gtk/ToolBar/ShowStickIcon = true
/UpdateTimeStamp = 1156775814:919667

global文件:
/SupportedUnicodeLocales = en_US.UTF-8
/DefaultPanelProgram = scim-panel-gtk
/DefaultConfigModule = simple
/DefaultSocketFrontEndAddress = local:/tmp/scim-socket-frontend
/DefaultSocketIMEngineAddress = local:/tmp/scim-socket-frontend
/DefaultSocketConfigAddress = local:/tmp/scim-socket-frontend
/DefaultPanelSocketAddress = local:/tmp/scim-panel-socket
/DefaultHelperManagerSocketAddress = local:/tmp/scim-helper-manager-socket
/DefaultSocketTimeout = 5000

也可以建立config和global两个文本文件,并将这两个文件拷到/etc/scim目录和$HOME/.scim目录,重启系统后ok。
上面的配置文件在kubuntu和ubuntu dapper中是通用的。

ok,作到了以上的设置,那么就可以很完美的咯 ...用winecfg测试吧~~~然后输入notepad看看?

Comments
2 条留言 »
分类
心得分享
Tags
CU, linux, php, tor, windows, 升级
订阅RSS留言 订阅RSS留言
Trackback Trackback

页数:  1 2 3 4 >

ABOUT ME


网 名: 天缘(skylove)












RSS邮天下订阅  文章 留言

最新日志

  • SecureCRT同时向多个session发送相同命令的方法
  • cacti常见问题解决办法【转载】
  • 一位IT同行的日志
  • 办公网常见的安全问题及华为交换机上的配置说明
  • cm7里adroid市场可浏览而无法下载的解决方法
  • Cisco设备光模块解密方法
  • 如何快速创建 Xen 虚拟机镜像
  • 伪技术人员的成长历程之70-Xen虚拟机下添加Swap磁盘
  • CentOS5.3下xen虚拟机的配置笔记
  • xen虚拟机管理xm的用法

分类

  • android (4)
  • 休闲娱乐 (22)
  • 妙文转载 (9)
  • 学习摄影 (10)
  • 心得分享 (97)
  • 心情随笔 (69)
  • 流水杂记 (42)
  • 艺海无涯 (71)
  • 过失教训 (5)

过去的日记

最新评论

  • Remote Energy Monitor: Check out this gibberish... Do you really believ...
  • 视频聊天室: 双击执行它...
  • 达人秀: 看个热闹吧.....
  • SecureCRT同时向多个session发送相同命令的方法 | 我友博客: [...] 通过行至水穷处,坐看云起时 » ...
  • East Fife Self Catering: Can I buy a vowel... I have not any idea about t...
  • iqzlnhyyia: sentttlzmpwf, qysvbuvwx...
  • outdoor lighting manufacturers canada: 我不得不承认,我通常会觉得无聊,...
  • Josie: Well done article that. I'll make sure to use it ...
  • Dsestbredo: buy bulk facebook fans buy cheap facebook fans ...
  • BlalselepNews: A hires the cialis generico in a cialis. Hovered ...

标签云

乐山 书 分手 升级 图片 安全 感情 手机 摄影 朋友 桌面 歌曲 照片 爱情 硬盘 网站 网络 脚本 虚拟化 软件 2008 apache asp blog blogger cisco CU dns flash google linux mp3 MSN nat photo php QQ script shell tor unix vb web windows xml

我的相册

武隆的图片

技术站点

  • Google站点统计
  • 网站检测
  • 高亮代码(.Net)
  • 高亮代码生成(PHP)

朋友们的站

  • GNAH‘s Not Another Programmer!
  • kiki on the way
  • NetKiller的主页
  • 哇靠~又写起了博客
  • 许敬刚老师的博达软件平台
  • 远方的远方

功能

  • 注册
  • 登录
  • 日志 RSS
  • 评论 RSS
  • WordPress.org
rss 订阅RSS留言 valid xhtml 1.1 design by jide powered by Wordpress get firefox