[General Questions and Answers] andyli386:
I built CWM-based Recovery and this is my install-recovery.sh in /system/etc/

#!/system/bin/sh
stop
cat /dev/input/event5 > /dev/keycheck &
sleep 3
kill -9 $!
if [ -s /dev/keycheck -o -e /cache/recovery/command ];then
mount -o remount,rw rootfs /
mount -o remount,rw /system
mkdir /tmp
chmod a+rw /dev/tty0
/system/xbin/recovery
else
start
fi

and I got last_log in /cache/recovery/

Starting recovery on Tue Feb 25 05:05:49 2014
can't open /dev/tty0: No such file or directory
framebuffer: fd 3 (1080 x 1800)
CWM-based Recovery v6.0.3.7
recovery filesystem table
=========================
0 /tmp ramdisk (null) (null) 0
1 /system ext4 /dev/block/mmcblk0p1 (null) 0
2 /cache ext4 /dev/block/mmcblk0p2 (null) 0
3 /data ext4 /dev/block/mmcblk0p3 (null) 0
4 /misc emmc /dev/block/mmcblk0p10 (null) 0
5 /ram0 vfat /dev/block/ram0 (null) 0

W:Unable to get recovery.fstab info for /datadata during fstab generation!
W:Unable to get recovery.fstab info for /emmc during fstab generation!
W:Unable to get recovery.fstab info for /sdcard during fstab generation!
W:Unable to get recovery.fstab info for /sd-ext during fstab generation!
W:Unable to get recovery.fstab info for /external_sd during fstab generation!
I:Completed outputting fstab.
I:Processing arguments.
I:Got arguments from /cache/recovery/command
stat /dev/block/mmcblk0p10 try 1: No such file or directory
stat /dev/block/mmcblk0p10 try 2: No such file or directory
stat /dev/block/mmcblk0p10 try 3: No such file or directory
stat /dev/block/mmcblk0p10 try 4: No such file or directory
stat /dev/block/mmcblk0p10 try 5: No such file or directory
stat /dev/block/mmcblk0p10 try 6: No such file or directory
stat /dev/block/mmcblk0p10 try 7: No such file or directory
stat /dev/block/mmcblk0p10 try 8: No such file or directory
stat /dev/block/mmcblk0p10 try 9: No such file or directory
stat /dev/block/mmcblk0p10 try 10: No such file or directory
failed to stat /dev/block/mmcblk0p10
I:Checking arguments.
Warning: No file_contexts
Warning: No file_contexts
I:device_recovery_start()
Command: "/system/xbin/recovery"

ro.boot.console=ttySAC3
ro.serialno=XXXXXXXXXXXX
ro.bootmode=unknown
ro.baseband=unknown
ro.bootloader=unknown
ro.hardware=mx3
ro.revision=21520
ro.meizu.hardware.version=1
ro.meizu.hardware.nfc=false
ro.meizu.hardware.modem=td-scdma
ro.meizu.hardware.soc=exynos5410
ro.factorytest=0
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.sys.usb.config=mtp,adb
init.svc.ueventd=running
ro.crypto.state=unencrypted
ro.crypto.fuse_sdcard=true
init.svc.scripts=stopped
vold.post_fs_data_done=1
ro.build.cta=noncta
ro.build.id=JOP40D
ro.build.display.id=Flyme OS 3.4.1 (A17444)
ro.build.mask.id=4.2.1-17444
ro.build.version.incremental=M35X.Flyme_OS_3.4.1.1390447667
ro.build.version.sdk=17
ro.build.version.codename=REL
ro.build.version.release=4.2.1
ro.build.date=2014... 01... 23... ......... 11:30:59 CST
ro.build.date.utc=1390447859
ro.build.type=user
ro.build.user=flyme
ro.build.host=Flyme-Mz
ro.build.tags=release-keys
ro.product.model=M355
ro.product.brand=Meizu
ro.product.name=meizu_mx3
ro.product.device=mx3
ro.product.board=mx3
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Meizu
ro.product.locale.language=zh
ro.product.locale.region=CN
ro.wifi.channels=
ro.board.platform=exynos5
ro.build.product=mx3
ro.build.description=meizu_mx3-user-17444 4.2.1 JOP40D M35X.Flyme_OS_3.4.1.1390447667 release-keys 3225R1
ro.build.fingerprint=Meizu/meizu_mx3/mx3:4.2.1/JOP40D/M35X.Flyme_OS_3.4.1.1390447667:user/release-keys
ro.build.characteristics=phone
ro.arch=exynos5410
persist.sys.strictmode.visual=0
persist.sys.strictmode.disable=1
persist.demo.hdmirotationlock=false
persist.sys.log-kernel.enable=1
persist.sys.ui.hw=false
ro.hwui.drop_shadow_cache_size=5
ro.hwui.gradient_cache_size=1
ro.hwui.layer_cache_size=40
ro.hwui.path_cache_size=24
ro.hwui.r_buffer_cache_size=4
ro.hwui.text_large_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_small_cache_height=1024
ro.hwui.text_small_cache_width=1024
ro.hwui.texture_cache_flushrate=0.5
ro.hwui.fbo_cache_size=20
ro.hwui.texture_cache_size=72
net.dns1=8.8.8.8
net.change=net.tcp.buffersize.evdo
net.dns2=8.8.4.4
keyguard.no_require_sim=true
ro.com.android.dateformat=MM-dd-yyyy
ro.config.ringtone=Flyme_Tune_Dream.ogg
ro.config.notification_sound=VideoRecord.ogg
ro.config.mms_sound=Ripples.ogg
ro.config.email_sound=VideoRecord.ogg
ro.config.calendar_sound=Jump.ogg
ro.config.alarm_alert=Morning_Dew.ogg
ro.carrier=unknown
ro.opengles.version=131072
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
ro.sf.lcd_density=400
persist.sys.log-main.enable=0
persist.sys.log-system.enable=0
persist.sys.log-events.enable=0
persist.sys.log-radio.enable=0
debug.hwui.render_dirty_regions=false
persist.sys.timezone=Asia/Shanghai
persist.sys.meizu.region=cn
persist.sys.meizu.codepage=gbk
ro.meizu.region.enable=true
ro.meizu.contactmsg.auth=false
ro.meizu.customize.pccw=false
ro.meizu.autorecorder=true
ro.meizu.visualvoicemail=true
ro.meizu.permanentkey=false
ro.meizu.setupwizard.flyme=true
ro.meizu.setupwizard.setlang=true
ro.meizu.security=true
ro.meizu.mtpname=MX3
ro.meizu.has_smartbar=true
sys.meizu.m35x.white.config=false
ro.meizu.customize=true
persist.sys.meizu.dim.input=false
sys.meizu.white.config=false
dalvik.vm.dexopt-flags=m=y
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
persist.sys.meizu.ringer.mute=1
persist.sys.profiler_ms=0
persist.service.bdroid.bdaddr=22:22:fc:03:1b:06
persist.sys.language=zh
persist.sys.country=CN
persist.sys.localevar=
net.tcp.buffersize.default=4094,87380,704512,4096,16384,262144
net.tcp.buffersize.wifi=524288,1048576,2097152,262144,524288,1048576
net.tcp.buffersize.lte=524288,1048576,2097152,262144,524288,1048576
net.tcp.buffersize.umts=4094,87380,1220608,4096,16384,110208
net.tcp.buffersize.hspa=4094,87380,1220608,4096,16384,262144
net.tcp.buffersize.hsupa=4094,87380,1220608,4096,16384,262144
net.tcp.buffersize.hsdpa=4094,87380,1220608,4096,16384,262144
net.tcp.buffersize.hspap=4094,87380,1220608,4096,16384,1220608
net.tcp.buffersize.edge=4093,26280,35040,4096,16384,35040
net.tcp.buffersize.gprs=4092,8760,11680,4096,8760,11680
net.tcp.buffersize.evdo=4094,87380,262144,4096,16384,262144
system_init.startsurfaceflinger=0
init.svc.console=running
init.svc.servicemanager=running
init.svc.vold=running
init.svc.akmd=running
init.svc.setup_fs=stopped
init.svc.pvrsrvctl=stopped
init.svc.netd=running
init.svc.debuggerd=running
init.svc.vchanneld-daemon=running
init.svc.surfaceflinger=stopped
init.svc.zygote=stopped
init.svc.drm=running
init.svc.media=running
init.svc.installd=running
init.svc.flash_recovery=running
init.svc.keystore=running
init.svc.gps-daemon=running
ro.radio.noril=yes
sys.config.virtualpath=yes
init.svc.sdcard=running
init.svc.logcat-main=stopped
init.svc.logcat-system=stopped
init.svc.logcat-radio=stopped
init.svc.logcat-events=stopped
sys.usb.config=mtp,adb
vchanneld.retry.count=0
dev.tty.one=/dev/pts/3
dev.tty.two=/dev/pts/1
dev.tty.second=/dev/pts/2
dev.tty.three=/dev/pts/5
dev.tty.four=
dev.tty.five=/dev/pts/4
vchanneld.status=start
init.svc.ril-daemon=running
ril.ecclist=112,911,999,000,08,110,118,119,120,122
vchanneld.syncatd=start
init.svc.syncatd-daemon=running
service.syncat.status=start
gsm.device.sn=355BBHS2DRKN
gsm.device.psn=68116B00C109

I:Checking for extendedcommand...
I:Skipping execution of extendedcommand, file not found...

How can build a normal recovery?