http://www.chromium.org/chromium-os
http://git.chromium.org/gitweb/
https://chromium.googlesource.com/?format=HTML
http://www.chromium.org/glossary
sudo apt-get install python-setuptools
git clone https://chromium.googlesource.com/external/gyp.git
cd gyp
sudo python setup.py install
cd ..
#git clone http://git.chromium.org/chromium/src/base.git
git clone https://chromium.googlesource.com/chromium/src/base
#git clone http://git.chromium.org/chromium/src/courgette.git
git clone https://chromium.googlesource.com/chromium/src/courgette
#git clone https://chromium.googlesource.com/experimental/chromium/src
mkdir -p third_party/lzma_sdk
cd third_party/lzma_sdk
wget --no-check-certificate http://chromium.googlesource.com/experimental/chromium/src/+archive/lkgr/third_party/lzma_sdk.tar.gz
tar xvfz lzma_sdk.tar.gz
rm -rf Executable 7zr.exe lzma_sdk.tar.gz
作者: Leic
-
Build Courgette of Chromium project
-
Android mount sdcard (again)
===> execute_media_format
android/packages/apps/Settings/src/com/android/settings/MediaFormat.java===> mountService.formatVolume(extStoragePath);
android/frameworks/base/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java====> formatVolume
====> doFormatVolume
android/frameworks/base/services/java/com/android/server/MountService.java===> int CommandListener::VolumeCmd::runCommand
===> rc = vm->formatVolume(argv[2]);
android/system/vold/CommandListener.cpp==> int VolumeManager::formatVolume
==> mVolumes = new VolumeCollection();
==> return v->formatVol()
android/system/vold/VolumeManager.h
android/system/vold/VolumeManager.cpp===> int Volume::formatVol
===> Fat::format(devicePath, 0))
android/system/vold/Volume.cpp===> int Fat::format(const char *fsPath, unsigned int numSectors)
===> static char MKDOSFS_PATH[] = “/system/bin/newfs_msdos”
android/system/vold/Fat.cppandroid/frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
# C code
android/system/vold# Launch sd formater in setting
adb shell
am start -n com.android.settings/.MediaFormat##############################################################################
以下是打开“无线和网络设置”界面:
Intent intent = new Intent(“/”);
ComponentName cm = new ComponentName(“com.android.settings”,”com.android.settings.WirelessSettings”);
intent.setComponent(cm);
intent.setAction(“android.intent.action.VIEW”);
activity.startActivityForResult( intent , 0);以下是可以直接打开的系统界面:
com.android.settings.AccessibilitySettings 辅助功能设置
com.android.settings.ActivityPicker 选择活动
com.android.settings.ApnSettings APN设置
com.android.settings.ApplicationSettings 应用程序设置
com.android.settings.BandMode 设置GSM/UMTS波段
com.android.settings.BatteryInfo 电池信息
com.android.settings.DateTimeSettings 日期和时间设置
com.android.settings.DateTimeSettingsSetupWizard 日期和时间设置
com.android.settings.DevelopmentSettings 应用程序设置=》开发设置
com.android.settings.DeviceAdminSettings 设备管理器
com.android.settings.DeviceInfoSettings 关于手机
com.android.settings.Display 显示——设置显示字体大小及预览
com.android.settings.DisplaySettings 显示设置
com.android.settings.DockSettings 底座设置
com.android.settings.IccLockSettings SIM卡锁定设置
com.android.settings.InstalledAppDetails 语言和键盘设置
com.android.settings.LanguageSettings 语言和键盘设置
com.android.settings.LocalePicker 选择手机语言
com.android.settings.LocalePickerInSetupWizard 选择手机语言
com.android.settings.ManageApplications 已下载(安装)软件列表
com.android.settings.MasterClear 恢复出厂设置
com.android.settings.MediaFormat 格式化手机闪存
com.android.settings.PhysicalKeyboardSettings 设置键盘
com.android.settings.PrivacySettings 隐私设置
com.android.settings.ProxySelector 代理设置
com.android.settings.RadioInfo 手机信息
com.android.settings.RunningServices 正在运行的程序(服务)
com.android.settings.SecuritySettings 位置和安全设置
com.android.settings.Settings 系统设置
com.android.settings.SettingsSafetyLegalActivity 安全信息
com.android.settings.SoundSettings 声音设置
com.android.settings.TestingSettings 测试——显示手机信息、电池信息、使用情况统计、Wifi information、服务信息
com.android.settings.TetherSettings 绑定与便携式热点
com.android.settings.TextToSpeechSettings 文字转语音设置
com.android.settings.UsageStats 使用情况统计
com.android.settings.UserDictionarySettings 用户词典
com.android.settings.VoiceInputOutputSettings 语音输入与输出设置
com.android.settings.WirelessSettings 无线和网络设置##############################################################################
Generate SD Card Image file#64G:
dd if=/dev/zero of=64G.img count=0 seek=128M#8G:
dd if=/dev/zero of=64G.img count=0 seek=16M#8G (with zero filled)
dd if=/dev/zero of=64G.img count=16M##############################################################################
Loop device#List loop devices:
losetup -a#Add a loop device
losetup /dev/loop1 8G_zero.img#Delete loop device
losetup -d /dev/loop1find . -type f |xargs grep sd_format
find . -name *.java |xargs grep sd_format###################################################################
Modify sd_format of android/packages/apps/Settings/res/values, impact on:target R.java/Manifest.java: Settings (out/target/common/obj/APPS/Settings_intermediates/src/R.stamp)
target Java: Settings (out/target/common/obj/APPS/Settings_intermediates/classes)
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Copying: out/target/common/obj/APPS/Settings_intermediates/classes-jarjar.jar
Copying: out/target/common/obj/APPS/Settings_intermediates/emma_out/lib/classes-jarjar.jar
Copying: out/target/common/obj/APPS/Settings_intermediates/classes.jar
Copying: out/target/common/obj/APPS/Settings_intermediates/noproguard.classes.jar
target Dex: Settings
Copying: out/target/common/obj/APPS/Settings_intermediates/noproguard.classes.dex
target Package: Settings (out/target/product/generic/obj/APPS/Settings_intermediates/package.apk)
‘out/target/common/obj/APPS/Settings_intermediates/classes.dex’ as ‘classes.dex’…
Processing target/product/generic/obj/APPS/Settings_intermediates/package.apk
Done!
Install: out/target/product/generic/system/app/Settings.odex
Install: out/target/product/generic/system/app/Settings.apk
Finding NOTICE files: out/target/product/generic/obj/NOTICE_FILES/hash-timestamp
Combining NOTICE files: out/target/product/generic/obj/NOTICE.html
target Java: SettingsTests (out/target/common/obj/APPS/SettingsTests_intermediates/classes)
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img******************************************************
SD FORMAT==> StorageVolumePreferenceCategory
==> mAllowFormat = mStorageVolume != null && !mStorageVolume.isEmulated()
android/packages/apps/Settings/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.javaSD Card Mount
=> “Preparing SD card”
=> “Damaged SD card”
==> ext_media_checking_notification_title
==> ext_media_unmountable_notification_title
frameworks/base/core/res/res/values/strings.xml
frameworks/base/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java
===>MEDIA_UNMOUNTABLE*****************************************************
#/system/etc/vold.fatab
#/system/etc/vold.conf=>fatab
==>system/vold/main.cpp
===>process_config
====>VolumeManager
=====>system/vold/VolumeManager.cpp
=======>CommandListener
========>system/vold/CommandListener.cpp********************************
FAT
===> system/vold/Fat.cpp
====> FSCK_MSDOS_PATH
=====> Fat::check
======>system/vold/Volume.cpp
=======>createDeviceNode
=========>Volume::mountVol
=========>DirectVolume::handleBlockEventVolume::mountVol
==> No impact on SDCard Mount, just for security fsDirectVolume::handleBlockEvent
==>NetlinkEvent
===>system/core/include/sysutils/NetlinkEvent.h
=====>NetlinkEvent.mSubsystem==”block”, send to volume manage ==> DirectVolume::handleBlockEvent
======>NlActionAdd
========>system/core/libsysutils/src/NetlinkEvent.cpp==========>system/core/libsysutils/src/NetlinkListener.cpp
==========>NetlinkListener::onDataAvailable============>system/core/libsysutils/src/SocketListener.cpp
============>system/core/include/sysutils/NetlinkListener.h
============>class NetlinkListener : public SocketListener***************************************************************************************
*** Triger of NlActionAdd ***“add”:
=>NetlinkEvent::parseAsciiNetlinkMessage, system/core/libsysutils/src/NetlinkEvent.cpp
==>NetlinkEvent::decode
===>NetlinkListener::onDataAvailable, system/core/libsysutils/src/NetlinkListener.cpp
====>SocketListener::runListener, system/core/libsysutils/src/SocketListener.cpp
=====>SocketListener::threadStart, system/core/libsysutils/src/SocketListener.cpp
======>SocketListener::startListener, system/core/libsysutils/src/SocketListener.cpp
=======>main, system/vold/main.cpp
=======>NetlinkHandler::start, system/vold/NetlinkHandler.cpp*** Handle of NlActionAdd ***
“NlActionAdd”
=>DirectVolume::handleBlockEvent, system/vold/DirectVolume.cpp
==>VolumeManager::handleBlockEvent, system/vold/VolumeManager.cpp
==>NetlinkHandler::onEvent, system/vold/NetlinkHandler.cpp**************************************************************************
Framework: MountServiceframeworks/base/services/java/com/android/server/SystemServer.java
=>public MountService(Context context), frameworks/base/services/java/com/android/server/MountService.java
==>mContext.registerReceiver(mBroadcastReceiver, filter, null, null);
===>BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver()
====>action.equals(Intent.ACTION_BOOT_COMPLETED)
=====>if (state.equals(Environment.MEDIA_UNMOUNTED)) {
int rc = doMountVolume(path);
if (rc != StorageResultCode.OperationSucceeded) {
Slog.e(TAG, String.format(“Boot-time mount failed (%d)”,
rc));
}
======>private int doMountVolume(String path)
=======>mConnector.doCommand(String.format(“volume mount %s”, path));==>mConnector = new NativeDaemonConnector
===>class NativeDaemonConnector, frameworks/base/services/java/com/android/server/NativeDaemonConnector
====>public void run(), frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
=====>listenToSocket, frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
======>mCallbacks.onDaemonConnected(); (mCallbacks=MountService)
=======>onDaemonConnected() frameworks/base/services/java/com/android/server/MountService.java**********************************************************************************
Sd Card Mount Summary:frameworks/base/services/java/com/android/server/MountService.java:
private int doMountVolume(String path):Use case of doMountVolume
Case 1: private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver()
===> Boot up SD Card mountCase 2: public boolean onEvent(int code, String raw, String[] cooked)
===>frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
===>Callback
===>public boolean handleMessage(Message msg)
===> SD Card Insert mountCase 3: public int mountVolume(String path)
==> packages/apps/Settings/src/com/android/settings/deviceinfo/Memory.java
==> User Setting/MountCase 4: public int mountVolume(String path)
===> frameworks/base/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java
===> Factory Reset -
中银国际在线行权平台
BOCI Online Platform (All in Hong Kong Time) 中银国际在线行权平台(以下均为香港时间)
Cash Exercise (24-hour)
现金行权 (24小时)Cashless Exercise (20-hour)
非现金行权(20小时)Order Time
下单时间Trade Day
交易的执行日Order Time
下单时间Trade Day
交易的执行日T Day 00:00 ~ 15:30
于当日00:00至15:30之间下单T Day
交易于当日执行T Day 00:00 ~ 16:00
于当日00:00至16:00下单T Day
交易于当日执行T Day 15:31 ~ 23:59
于当日15:31至23:59之间下单T+1 Day
交易顺延一个工作日执行T Day 16:01 ~ 20:00
于当日16:01至20:00下单Do Not Accept Online Transactions
在线行权系统不接受下单T Day 20:01 ~ 23:59
于当日20:01至23:59下单T+1 Day
交易顺延一个工作日执行 -
Mirror chromium-os repository
Install git with version >=1.7.7
https://github.com/git/git/releases
Install depot_tools
http://dev.chromium.org/developers/how-tos/install-depot-tools
Install help script
git clone https://chromium.googlesource.com/chromiumos/chromite
Initial sync
cros_mirror -r /mirror/git -u git://repo.zhenglei.net
Updating Sync
cros_mirror -r /mirror/git
-
百强旅行社
广东中旅: http://www.gdcts.com/
北京众信: http://www.utourworld.com/
浙旅控股: http://www.longvisit.com/
中国国旅:http://www.cits.cn
1 L-SH-CJ00009 上海春秋国际旅行社有限公司 2 L-BJ-CJ00003 中青旅控股股份有限公司 3 L-GD-CJ00002 广东省中国旅行社股份有限公司 4 L-BJ-CJ00071 北京众信国际旅行社股份有限公司 5 L-GD-CJ00004 广州广之旅国际旅行社股份有限公司 6 L-BJ-CJ00001 中国国际旅行社总社有限公司 7 L-ZJ-CJ00008 浙旅控股股份有限公司 8 L-HUN-CJ00002 湖南省亲和力旅游国际旅行社有限公司 9 L-HUB-CJ00019 湖北新航线国际旅行社有限责任公司 10 L-CQ-CJ00001 重庆海外旅业(旅行社)集团有限公司 11 L-BJ-CJ00127 中青旅(北京)国际会议展览有限公司 12 L-HUN-CJ00001 湖南华天国际旅行社有限公司 13 L-SH-CJ00025 上海携程国际旅行社有限公司 14 L-HUB-CJ00003 长江轮船海外旅游总公司 15 L-FJ-CJ00002 福建省中国旅行社 16 L-BJ-CJ00099 北京携程国际旅行社有限公司 17 L-ZJ-CJ00001 浙江中旅旅业集团有限公司 18 L-GD-CJ00019 广东南湖国际旅行社有限责任公司 19 L-BJ-CJ00051 北京凯撒国际旅行社有限责任公司 20 L-GD-CJ00039 深圳中国国际旅行社有限公司