目前日期文章:201601 (5)

瀏覽方式: 標題列表 簡短摘要
大家都知道,長時間使用滑鼠會導致肩膀痠痛,我也不能倖免
所以我很久之前就改用軌跡球,酸痛問題就不再發生了

這幾天M570的左鍵開始不靈光,點一下變兩下,這真的很困擾,我只是要移動視窗變成放大視窗,可惡!

二話不說,動手換左鍵!!

以下為拆解步驟

首先將M570翻過來,先取出 軌跡球、電池蓋、電池並關閉電源

這時你可能以為只有一個螺絲,那就大錯特錯,總共會有五個螺絲
一個螺絲目前可以看到位置了
三個螺絲在止滑墊下
另一個就經典了,是在電池放置處的貼紙下面,你必須破壞電池下面的貼紙才看的到


之前第一次拆,我還天真地以為是在產品標籤處下,結果哩,被耍了,產品標籤下面是八個焊點(可能是用來檢測的吧?)
所以我只能用膠帶將它貼起來(哭)。

有沒有看到,下圖就是五個螺絲的分布,千萬不要跟我一樣,將產品標籤撕了才發現根本沒螺絲啊(X處),可惡!
沒有拆掉這五個螺絲,是無法將上蓋拆下的,硬拆可是會拆壞M570的,請注意。


將五個螺絲全部轉起來放置好,接下來要將主板拆下來瞜

這次總共會有四個螺絲 跟 一個排線


排線拆除時,要先將兩側的卡榫輕輕往上提,再用鑷子小心的將排線拉出


排線拉出之後,先將軌跡球碗型塑膠件放置在一旁,將額外的四個螺絲轉下


小心將電池的導線拉出,將主板拿出來,接下來就是要解焊微動開關了


M570舊的微動開關為 OMRON D2FC-F-7N(CHINA)
將跟換為新的微動開關,型號為  D2F-01F(JAPAN)

這兩者之間的差別可以參考

http://blog.dabinn.net/%E6%AD%90%E5%A7%86%E9%BE%8Domron%E5%BE%AE%E5%8B%95%E6%AF%94%E8%BC%83/

微動開關有三個焊點,用焊槍跟吸錫器將舊的微動開關解焊下來


之後再把新的微動開關焊上去,這邊要注意,微動開關要貼平主板,不要懸空,不然會太高,組裝會有問題
焊接完畢清潔一下,在將主板組回去,就大功告成


終於,M570左鍵不再雙點。

工本費:
----
D2F-01F(JAPAN): NT 22元(露天購買,運費含在裡面)
節省率:
M570 一個 1450 現在只花22 元就修好 1450-22/1450 x100% = 98.48%
----


CuteParrot 發表在 痞客邦 PIXNET 留言(0) 人氣()


完成圖。


之前去 IKEA時,看到一個價格 479的 酒瓶架,感覺不錯
看看家裡的松木剩料,發現只夠做兩層
於是馬上畫了設計圖,將松木剩料裁切一下
再去美工材料行買了 9mm粗的 90CM 圓木棍(一支20元) 四隻,裁切成26cm 圓木棍

所需木料如下:
----
12 支 26 cm  9mm 粗 圓木棍
4 支 25 cm 木桿
4 支 20 cm 木桿
---


鑽孔,將圓木棍組裝成以下這樣


然後再組合一下,並上木工膠,進行膠合




最後可能在上個木漆讓他好看一點

就這樣家裡的紅酒就有一個歸宿了。

費用:
----
松木剩料: 之前用剩的
9mm圓木棍 x4 : 80 元
----
共計 80元。

CuteParrot 發表在 痞客邦 PIXNET 留言(0) 人氣()

conventional (OPEN LOOP)AF 與 CLOSED LOOP AF差異

OPEN LOOP AF :必須常保持一個電力來維持AF的位置
CLOSED LOOP AF: 只有當要移動時才需要電力,AF不動時不用電力來維持位置。


CuteParrot 發表在 痞客邦 PIXNET 留言(0) 人氣()

android APP 無法開啟 device file 解決方式(Qualcomm MSM8992 Android 5.1.1)

狀況:
---
寫了一隻APK呼叫JNI library要開啟/dev/v4l-subdev16,但卻失敗
debug message出現以下錯誤訊息
--
[  207.905424] type=1400 audit(2013.599:10): avc: denied { read write } for pid=6248 comm=".yps.cameratest" name="v4l-subdev16" dev="tmpfs" ino=11488 scontext=u:r:platform_app:s0 tcontext=u:object_r:camera_device:s0 tclass=chr_file permissive=0
--

解決方法:
---
1.因為android 5.0之後有啟動 SEAndroid機制,這是是一種安全性存取機制,詳細了解可以看以下網址
  http://blog.csdn.net/Luoshengyang/article/details/...
  錯誤訊息
  type=1400 audit(2013.599:10): avc: denied { read write } for pid=6248 comm=".yps.cameratest" name="v4l-subdev16" dev="tmpfs" ino=11488 scontext=u:r:platform_app:s0 tcontext=u:object_r:camera_device:s0 tclass=chr_file permissive=0
  就是因為SEAndroid不允許 APK 去存取 /dev/v4l-subdev16所產生的錯誤訊息
  所以要 allow APK去存取 /dev/v4l-subdev16
 
  首先先了解一下debug message- [scontext=u:r:platform_app:s0]
  scontext 四個欄位分別表示:[ SElinux用戶、角色、類型、安全級別],用戶固定為u,角色固定為r,級別固定為s0,會變動的為 [類型],在這邊是 [platform_app]
  [platform_app]表示的是 在AOSP source code下編譯並使用平台簽名的APP,所以獲得的seinfo為"platform",如果是第三方簽名的APP獲得的seinfo簽名為 "default"
  (check \external\sepolicy\mac_permissions.xml)
    
  再來了解一下devug message-[tcontext=u:object_r:camera_device:s0 tclass=chr_file]
  從檔案
  \device\qcom\sepolicy\common\file_contexts
  可以看到這一行
  /dev/v4l-subdev.*                               u:object_r:camera_device:s0
  表示"/dev/v4l-subdev*" 他的 [類型]名稱為 [camera_device]
 
  所以我們加入 allow APK去存取 /dev/v4l-subdev* 的規則
  修改檔案
  \device\qcom\sepolicy\common\platform_app.te
  加上
  allow platform_app camera_device:chr_file {write read open ioctl};
  重新編譯發現會有錯誤訊息
  所以還要修改檔案  \external\sepolicy\app.te
 
  將camera_device 的 neverallow 拿掉
      --
      # Access to any of the following character devices.
      neverallow appdomain {
          audio_device
          dm_device
          radio_device
          gps_device
          rpmsg_device
      }:chr_file { read write };
      ---
  重新編譯更新到裝置上
  這樣就可以允許APK 去存取 /dev/v4l-subdev*   
  就不會出現以下錯誤訊息
  --
  [  207.905424] type=1400 audit(2013.599:10): avc: denied { read write } for pid=6248 comm=".yps.cameratest" name="v4l-subdev16" dev="tmpfs" ino=11488 scontext=u:r:platform_app:s0 tcontext=u:object_r:camera_device:s0 tclass=chr_file permissive=0
  --
 
2.解決了 andorid 5.0 的 SEAndroid存取設定問題後,你會發現 APK仍是無法開啟  /dev/v4l-subdev16
  我們先用 adb shell切換成 su看一下 /dev/v4l-subdev16 檔案權限,發現為 /dev/v4l-subdev16 檔案權限0660如下:
  crw-rw---- system   camera    81,  21 1970-01-01 00:13 v4l-subdev16
  這樣是無法讓 APK去存取,所以  我們必須將/dev/v4l-subdev16 更改為 0666才可以讓 APK 存取    
  修改
  \device\qcom\common\rootdir\etc\ueventd.qcom.rc
  將
  /dev/v4l-subdev*          0660   system     camera
  改為
  /dev/v4l-subdev*          0666   system     camera
  重新編譯更新到裝置上
  這樣一來APK就可以順利存取/dev/v4l-subdev16。
 
 
  以上給大家參考!
 
 
文章標籤

CuteParrot 發表在 痞客邦 PIXNET 留言(1) 人氣()

將 APK ,so 等文件打包進 system.img 的方法

假設我有 CameraTest.apk 與 linscanhwl.so 要包進 system.img

作法區分為兩種狀況:

1.單獨為編譯好的 APK 與 so 檔案
.將 CameraTest.apk 檔案複製到 AOSP
device/qcom/msm8992/app/CameraTest/app 下
.將 linscanhwl.so 檔案複製到 AOSP
device/qcom/msm8992/app/CameraTest/lib 下
.修改 device\qcom\msm8992\msm8992.mk 檔案,加入以下內容
----
PRODUCT_COPY_FILES += \
device/qcom/msm8992/app/CameraTest/app/CameraTest.apk:system/app/CameraTest/CameraTest.apk
device/qcom/msm8992/app/CameraTest/lib/linscanhwl.so:system/lib/linscanhwl.so
----
之後 make -j6 ,就可以在 out 路徑下 system/app/CameraTest/ 與
system/lib/ 看到這兩個檔案
表示已經成功包進 system.img中

2.為APK、so的source code
.將所有 source code放置到 AOSP device\qcom\msm8992\scanner_hil\ 路徑
下,並確定都可以成功 mm 出檔案
.修改 device\qcom\msm8992\msm8992.mk 檔案,加入以下內容
---
PRODUCT_PACKAGES += \
libscanhwl \
CameraTest
---
.在APP部分,修改 device\qcom\msm8992\scanner_hil\app\Android.mk 檔案
要確定 LOCAL_MODULE_TAGS 是設定為 optional,這樣才會在 system/app/ 產出
---
LOCAL_MODULE_TAGS := optional
---
完整 device\qcom\msm8992\scanner_hil\app\Android.mk 內容如下:
--
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional # must set optional
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := CameraTest
LOCAL_REQUIRED_MODULES := libscanhwl libscanapi
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))
--
之後 make -j6 ,就可以在 out 路徑下 system/app/CameraTest/ 與
system/lib(64)/ 看到這兩個檔案
表示已經成功包進 system.img中

CuteParrot 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論