2010年8月31日 星期二

iPC OSx86 10.5.6 Universal Intel/AMD

NoteBook: Acer TravelMate 426LC
購入日期: 2003年1月15日
-------------------------------------------------------------------------------------------------
OS: iPC OSx86 10.5.6 Universal Intel/AMD
限制: 無法使用 Boot Camp
-------------------------------------------------------------------------------------------------
參考資料:
1. iPC OSx86 Install Disc » iPC OSx86 Universal 10.5.6
http://pcwizcomputer.com/ipcosx86/?page_id=96&cpage=8

2. How to update iPC 10.5.6 to 10.5.7?
http://osx86.net/archive/index.php/t-2980.html
-------------------------------------------------------------------------------------------------
注意事項:
1. For some reason sometimes Extensions.mkext is not always cleared on the first boot causing some kexts not to load. This is easily remedied. If you installed the right drivers and they don't seem to have any effect, boot in, go to /System/Library, find the Extensions.mkext file and delete it. Then restart and keep tapping F8 to open the boot menu. Type in "-f" without quotes and hit enter to rebuild the kext cache. This only needs to be done once.
-------------------------------------------------------------------------------------------------
安裝步驟:
A. 將 NoteBook 調整成光碟開機, 放入 "iPC OSx86 10.5.6 Universal Intel/AMD" 片後重新開機.

B. 從光碟開機後, 於訊息暫停時, 按 F8 進入啟動選單(start up options).

C. 在 boot: 後輸入 -v , 再按 enter. (start up with diagnostic message; 顯示診斷訊息)

D. 等待一段時間後(約5分鐘), 出現安裝的語言選擇畫面:
===> 選擇最上方的: "Use English for the main language"

E. 出現 "Welcome" 畫面時, 先等待上方的功能表出現(有時會比較慢載入)

F. 於功能表中, 選擇: Utility > Disk Utility > Erase :
===> 將硬碟重新作分割如下後, 按下右下方的 "Erase" 按鈕:
Volume Format: Mac OS Extended (Journaled)

Name: Leopard (自取)

G. 完成分割後, 按下左上角紅色關閉按鈕, 即會回到之前的 "Welcome" 畫面, 接著按 "Continue".

H. software license agreement => Agree

I. Select a Destination => Leopard (之前分割好的) => Continue

J. Install Summary => Customize, 選取以下的項目:
=> iPC OSx86 10.5.6 Base System(預設)
=> Language Translations: Traditional Chinese
=> iPC OSx86 10.5.6 Intel AMD SSE2 SSE3:
> kernels: 9.4.0 StageXNU Universal Kernel
> Drivers > Video Drivers: LaptopDisplay
>
Drivers > Chipset Drivers: LegacyAppleIntelPIIXATA
> Drivers > Audio Drivers > OtherAudio Drivers: AC97 Audio
> Drivers > Ethernet Drivers: Intel PRO 100/VE
> Drivers > USB Drivers: Patched USB Drivers
> Drivers > Power Management: AppleACPIBatteryManager
> Fixes and Patches:
ACPI Fix
(
wont mount drives without this);
CPUS=1 One Core Fix
;
IOPCMCIAFamily
(
enables PCMCIA cards);
Seatbelt.kext 10.5.5
;
USB Mount Fix
;
PS /2 Device Support
: PS / 2 Keyboard Fix(enables keyboard and touch pad).

===> Done ===> Install ===> Checking Installation DVD => Skip (開始安裝....)

K. 安裝完成後: Restart => 退出光碟片

L. 重新開機後, F8 => boot: -f
=> On the first boot make sure to boot with the -f boot flag! Do this to make sure that all installed kexts are loaded properly. It is only required once.
-------------------------------------------------------------------------------------------------
M. update iPC 10.5.6 to 10.5.7 (似乎不太穩定, 尤其是無法正常重新開機)
a.
Download Andy's 9.6.0 kernel package:
http://www.mediafire.com/?gl1nmwjen0y

b. Download Mac OS X 10.5.7 Update:
http://support.apple.com/kb/DL826

c. 步驟:
1. Open the terminal.

2. Browse into main directory of your Mac OS partition.
"cd /Volumes/Leopard"
"ls -l"

3. You should see a file named "mach_kernel" there. Make a backup of it.
"cp mach_kernel mach_kernel_old"

4. Repair its permissions.
"sudo chmod -R 755 mach_kernel_old"
"sudo chown -R 0:0 mach_kernel_old"

#5. Now you can run Software Update, and get your update.
===> 如果執行 Software Update, 會直接更新 10.5.8 版本(更新後, 無法正常登入), 所以直接執行之前下載的 Mac OS X 10.5.7 Update 檔案.

6. After the update - restart your computer.

7. While booting, press F8 and write :
"mach_kernel_old -x" (無法登入的話, 參數改成: -v -x)

8. When your computer boots up in safe mode - just install Andy's package.

9. Restart and boot normally.

10. You have 10.5.7 running.

Well, that's it. You can of course make a backup of System.kext aswell, then instead of booting into safe mode and installing Andy's kernel - you can boot into -s mode and copy back the System.kext ( and repair permissions ), but i find this way more convenient.

PS. seatbelt.kext is needed on 10.5.6 to mount USB/DMG properly. Without it your system may fail to mount usb drives or images, or kernel panic at you when you try to do it.
-------------------------------------------------------------------------------------------------
N. Download Xcode 3.1.4(這個版本還沒有支援開發 iPhone) for Leopard
Apple’s developer website only links to the latest version of Xcode, which requires Snow Leopard (Mac OS X 10.6).

If you’re still running Leopard (10.5), you need to go to this alternative developer website:
http://connect.apple.com/

Log in with your ADC credentials, click “Downloads”, then click “Developer Tools” in the right sidebar, and then search the page for “3.1.4″.

2010年8月16日 星期一

Mac OS X: SmartGit - Git分散式版本控制系統(DVCS)的GUI客戶端。

A. 先安裝 git:
1. 下載 git-osx-installer: http://code.google.com/p/git-osx-installer/
===> 使用版本: Git Installer 1.7.2 - OS X - Leopard - Intel

2. Step 1 - Install Package:
===> This installs git to /usr/local/git. Root access is required.

3. Step 2 - Run shell script: (optional)
===> Non-terminal programs don't inherit the system wide PATH and MANPATH variables that your terminal does. If you'd like them to be able to see Git, for whatever reason, you can run this script. It will add the PATH and MANPATH to your ~/.MacOSX/environment.plist file. You'll need to log out of your user account for that to take effect.
(i.e. 在終端機下執行 "setup git PATH for non-terminal programs.sh" 檔案)

B. 安裝 SmartGit:(正式版須付費)
1. 官網: http://www.syntevo.com/
===> 使用版本: Version 1.5.5

2. 安裝過程選擇 git 執行檔的位置: /usr/local/git/bin/git. (無法瀏覽到的話, 就自己 key in)

C. 使用
SmartGit:
1. Create a new local Git working tree:
===> /Volumes/Snow Leopard/Lanli/RD/iPhone_Projects/iPodTouch/CheckNetSample
> Continue > Initialize > Project Name: CheckNetSample > Finish

2. 將以下的檔案:
.DS_Store
*.swp
build/
*.pbxuser
*.perspective
*.perspectivev3
*.mode1v3
*.mode2v3
===> 右鍵 > Ignore => 便會自動產生 .gitignore 檔案.


3. 接著, 便可以 commit 了.

2010年8月12日 星期四

iPhone 開發筆記05: UITextView “取消編輯功能” 與 “背景透明設定”

// View-Based Project

// @interface
IBOutlet UITextView *appproducer;
@property (nonatomic, retain) IBOutlet UITextView *appproducer;

// @implementation
@synthesize appproducer;

---------------------------------------------------------------------------------------------------------
接著, 將 UITextView 連到 appproducer 這個 IBOutlet, 並修改 viewDidLoad 內的程式碼:

// xxxViewController.m

- (void)viewDidLoad {
[super viewDidLoad];
....
appproducer.text = @"my company";

[appproducer setBackgroundColor:[UIColor clearColor]]; // 背景透明
[appproducer setEditable:NO]; // 取消編輯功能
....
}

2010年8月6日 星期五

iPhone 開發筆記04: 利用 NSTimer 來顯示 UIProgressView 的進度

// @interface
IBOutlet UIProgressView *progressBar;
@property (nonatomic, retain) IBOutlet UIProgressView *progressBar;
- (IBAction)startTheTimer:(id)sender;
- (void)goProgress:(NSTimer *)theTimer;

// @implementation
@synthesize progressBar;
......
---------------------------------------------------------------------------------------------------------
接著, 將 UIButton 上的 Touch Up Inside 事件, 連到以下的 startTheTimer 這個 IBAction:

- (IBAction)startTheTimer:(id)sender {
// set Progress to 0.0
[progressBar setProgress:0.0];

[NSTimer scheduledTimerWithTimeInterval:0.2f target:self selector:@selector(goProgress:) userInfo:nil repeats:YES];
}

- (void)goProgress:(NSTimer *)theTimer {
float progress = progressBar.progress;
progress = progress * 10 + 1;

[progressBar setProgress:progress * 0.1];

if (progress >= 10) {
// stop NSTimer
[theTimer invalidate];
}

}

iPhone 開發筆記03: 取得 UISlider 的值, 顯示到 TextLabel 上

將 UISlider 上的 Value Changed 事件, 連到以下的 sliderChanged 這個 IBAction:

- (IBAction) sliderChanged:(id)sender
{
UISlider *slider = (UISlider *) sender;
NSString *sliderValue = [[NSString alloc] initWithFormat:@"%d", (int)(slider.value + 0.5f)];

sliderLabel.text = sliderValue;
[sliderValue release];
}

iPhone 開發筆記02: 取得 UISwitch 的值, 顯示到 TextLabel 上

將 UISwitch 上的 Value Changed 事件, 連到以下的 switchOnOff 這個 IBAction:

- (IBAction) switchOnOff:(id)sender
{
UISwitch *switcher = (UISwitch *) sender;
switchLabel.text = [NSString stringWithFormat:@"%d", switcher.on];
}

2010年8月5日 星期四

iPhone 開發筆記01: 讓 UITextField 完成輸入後, 鍵盤自動消失

將 TextField 上的 Did End On Exit (結束後離開)事件, 連到以下的 doneEditing 這個 IBAction:

- (IBAction) doneEditing:(id)sender
{
[sender resignFirstResponder];
}

說明: resignFirstResponder, 表示要放棄目前是第一回應者的身份.

2010年8月4日 星期三

Xcode 筆記01

1. Uninstall XCode:
終端機 => sudo /Developer/Library/uninstall-devtools --mode=all

2. Changing the Company Name:
終端機 => defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Matrix";}'

p.s.
(1). 此處的 Matrix , 是自定的公司名稱.
(2). if it works, you won't see any output reply. Quit and restart Xcode.

3. 解決新版 Xcode v 3.2.3 編譯舊的 project 產生 "Base SDK Missing" 訊息.
=> 調整 Xcode 設定: Project > Edit Project Settings > Build
(1). 在 Architectures 項目下, 將 Base SDK 選取 iPhone Device 4.0
(2).在 Deployment 項目下, 將 iPhone OS Deployment Target 選取 iPhone OS 4.0

JailBreak~9: 在 Mac 端以 USB 的方式瀏覽 iPhone 的檔案與資料夾(並可drag-and-drop)

1. 先用 Cydia 安裝 afc2add.(才可用以下的軟體瀏覽到 iPhone 的根目錄)

2. 下載 iPhone Explorer Mac 版:
http://www.macroplant.com/iphoneexplorer/

3. 或安裝 DiskAid (正式版要錢)

2010年8月3日 星期二

JailBreak~8: 製作 Xcode 3.2.4 假認證,將自己的 Apps 放到 iPhone 上運行(iOS 4.1)

更新日期: 2010/10/18
適用範圍: Xcode 3.2.1 ~ Xcode 3.2.4 (只需更改適用的版本目錄位置)
參考來源: Xcode 3.2.1 假認證,將自己的Apps放上iphone運行
http://xspace.uwantx.com/space.php?uid=1&do=blog&id=264

一. 環境:
1. iOS 4.1 (JailBreak)
2. Xcode Version 3.2.4, 64 bit
3. Mac OSX 10.6.4 Snow Leopard

二. 步驟:
1. 在 Mac OS X 上, 開起終端機(Terminal), 輸入﹕
(1). cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/
(2). sudo cp SDKSettings.plist SDKSettings.plist.backup (會要求輸入密碼)
(3). sudo vi SDKSettings.plist

2. 承上, 找到:

CODE_SIGNING_REQUIRED
YES

…. 與 ....

ENTITLEMENTS_REQUIRED
YES
=> 將 YES 改成 NO 後, 保存退出(按 esc 後輸入 :wq ).

3. 承上, 然後輸入﹕
(1). cd /Developer/Platforms/iPhoneOS.platform/
(2). sudo cp Info.plist Info.plist.backup
(3). sudo vi Info.plist
=> 找到所有的 XCiPhoneOSCodeSignContext(有3個), 並將其改成 XCCodeSignContext

4. 承上, 然後輸入﹕
(1). cd ~/Desktop
(2). vi script (輸入 i 鍵,進入文本修改狀態)
(3). 將下面的內容複製到終端中 (Terminal)

#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf “\xc3\x26\x00\x00〃 >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support

(4). 保存退出(按 esc 後輸入 :wq ).
(5). chmod 777 script

(6). 執行 ./script, 可看到類似以下的輸出: (如果沒有的話可以嘗試 sudo ./script)
223+1 records in
223+1 records out
111648 bytes transferred in 0.071028 secs (1571887 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000009 secs (0 bytes/sec)

5. 調整 Xcode 的設定:
(1). Project > Edit Project Settings > Build
(2). 承上, 將 Code Signing 項目下的 Any iPhone OS Device 設定改成: Don’t Code Sign
(3). 於左上角的編譯環境, 選擇 Device, 接著執行 Build and Run 即可將 App 安裝到 iPhone 上.
(4). iPhone 上如果有裝 AppSync for OS 4.0+ (參考: JailBreak~6: 讓應用程式 (.ipa / .app) 可直接透過 iTunes 安裝) 的話, 亦可將 Xcode 該專案實體目錄下的 build > Debug-iphoneos > xxx.app 檔案, 直接 copy 拖曳到 iTunes 應用程式內, 接著執行 iPhone 的同步, 就會安裝到 iPhone 機器上了.

三. 錯誤處理:
當 Xcode 出現以下訊息: Error Starting Eexcutable: no provisioned iOS device is connected.
並且在 Xcode 左上方 "Action" 旁的下拉式選單中, Active Executable 項目顯示為: no device available.

解決方式: 執行 Xcode 的 Window > Organizer:
在 Device 下點選自己的 iPhone 名稱, 接著按下 "Using for Development" 按鈕.

四. 備註:
1. 可能是因為之前作過 Xcode 3.2.3 假認證後, 將我的 iPod Touch 從 iOS 4.0 升級到 iOS 4.1 並 JB 後, 再安裝新版的 Xcode 3.2.4 才造成此問題的吧.

2.
若遇到編譯舊的 project 產生 "Base SDK Missing" 訊息, 請參考:Xcode 筆記01 的 "3." 項目.

JailBreak~7: Cydia 好用軟體

1. CyDelete: 可直接在桌面刪除從 Cydia 下載的軟體.

2. USB Drive: 可當成 USB 硬碟來使用.
(1). 新增安裝源: http://apt.dmytro.me/
(2). 安裝 USB Drive 軟體.

JailBreak~6: 讓應用程式 (.ipa / .app) 可直接透過 iTunes 安裝

1. 開啟 Cydia > MANAGE > SOURCES > EDIT > ADD

2. 輸入 http://cydia.hackulo.us/ > 按下 Add Source 按鈕 > 若彈出提示框, 選擇 Add Anyway 即可.

3. 完成 Source Update 後, 按下 Return To Cydia, 返回 Source, 再按下剛加入的 Sources, 選擇 AppSync for OS 4.0+ 安裝.

4. 安裝完成後, 請重新啟動主機.

JailBreak~5: 備份 App Store Apps 的存檔與設定

一. AppBackup 說明: 這套軟體可以幫你備份你所下載的應用程式之存檔與設定.

二. 使用步驟:
1. 利用 Cydia 安裝 AppBackup.

2. 進入
AppBackup 後, 按下左下角的 ALL, 然後按下 Backup, 就可以一次備份全部的應用程式資料.

3. 備份好的東西會在 iPhone 上: /private/var/mobile/Library/Preferences/AppBackup 目錄裡.

4. 承上, 當你準備要重灌時, 你就先把 iPhone 目錄下的 backuptimes.plist 還有 tarballs 資料夾丟到電腦上備份.(sftp)

5. 重刷好之後, 再一次安裝 AppBackup 這個軟體.

6. 安裝好之後, 你必須先執行一次軟體(按下左下角的 ALL), 讓他產生該有的檔案.

7. 之後, 再用 SSH (sftp) 把你丟到電腦裡備份的 backuptimes.plist 還有 tarballs 資料夾, 丟回到 iPhone 有東西要覆蓋, 就覆蓋掉.

8. 然後在 AppBackup 軟體裡 按左下角的 ALL.

9. 接著, 按下 Restore 所有的紀錄就都回來囉.

JailBreak~4: 備份 Cydia installed app list

一. AptBackup 說明: 這套軟體可以幫你備份你用Cydia安裝的軟體清單.

二. 使用步驟:
1. 利用 Cydia 安裝 AptBackup.

2. 安裝一堆軟體後進入 Aptbackup 選擇 backup , 再透過 iTunes 備份 iphone(或 iPod Touch).
(因為它檔案存放位置會隨著 iTunes 的備份,存回電腦.)

3. 重刷完後, 再進 Cydia 安裝 Aptbackup.

4. 進入 Aptbackup 選擇 restore,來命令你的 Cydia 將你有安裝的軟體,一一的安裝回去.

2010年8月2日 星期一

JailBreak~3: 更改 iPod Touch 的 root 密碼

1. 利用 Cydia 安裝 OpenSSH

2. 更改密碼:
(1). Mac OS X > 系統偏好設定 > 共享 > Internet 共享 (都設定好時要勾選, 此時 Mac 本身可能無法上網) > 共享來源: 乙太網路; 對使用以下傳輸埠的電腦: AirPort

(2). iPod Touch > 設定 > Wi-Fi > 選擇網路: SnowLeopard (同時查看 IP, ex: 10.0.2.2)

(3). Mac OS X > 終端機 > ssh root@10.0.2.2 (default password: alpine)

(4). 承上, 鍵入 passwd 來輸入新密碼.

3. 亦可在 Mac 上使用 sftp client 的軟體連入 iPod Touch 系統中.

JailBreak~2: 第一次使用 Cydia 的設定

1. Cydia 開啟後, 選擇 Developer (No Filters).

2. 重開 Cydia, 若有軟件更新, 將彈出提示框, 選擇 Upgrade Essential, 再選擇 Confirm.

3. 注意軟件更新時不要譲主機自動上鎖.

4. 請再次開啟 Cydia, 按下 Change, 若有軟件更新, 選擇 Upgrade (), 再選擇 Confirm.

JailBreak~1: iPod Touch 3rd iOS4.0


1. 備份 ECID: 在 Mac OS X 下, 連結 iPod Touch 並且下載 Umbrella:
http://thefirmwareumbrella.blogspot.com/ 來執行.

2. 使用 iTunes 備份 iPod Touch 的資料.

3. iPod, iPhone and iPad Firmware Download: (在 5.(2) 中會用到)
http://www.felixbruns.de/iPod/firmware/

4. 將 iPod Touch 進入 DFU Mode:
(1). 開啟 iTunes 並將手上的 iPod Touch 連接至電腦.
(2). 開啓任何一個應用程式, 並強制關機(同時按著 "主目錄鍵" 及 "電源開關鍵"(稍先) 不放)
(3). 當 iPod Touch 重新啓動後, 放開 "電源開關鍵", 10 秒後, 再放開"主目錄鍵".
(4). 進入 DFU Mode 後及按回復之前, 主機將維持黑屏及不會顯示任何東西.

5. 使用 iTunes 回復 DFU Mode 的 iPod Touch:
(1). Mac 電腦: 按下鍵盤 Option 鍵, 並同時按下 iTunes 裏的回復按鈕.
(2). 彈出提示框後, 選取剛剛下載的 iPod Touch 3G 4.0 官方韌體, 並等侍 iTunes 回應.

6. 回復 iPod Touch 的備份資料:

7. 開啟 Safari
(1). 網址欄上輸入 http://www.jailbreakme.com/, 再按下 Go.
(2). 網站載入後, 拉動 "slide to jailbreak" 滑桿.
(3). 若無法正常執行, 請前往「設定 > Safari > 淸除快取及 Cookies」, 或嘗試連結 http://jailbreakme.modmyi.com/ 網址.