#android, fsck /data, /system


루팅(rooting) 폰이고 Recovery로 PhilZ Touch 6.46.2를 사용하고 있다.

Recovery로 진입 후 PC에서 adb로 접근이 가능하다.

% adb devices
List of devices attached
4XXXXXX2598f15 recovery

adb shell로 들어가서 fsck 를 진행한다.
% adb shell
~ # cat /etc/fstab
/dev/block/mmcblk0p8 /cache ext4 rw
/dev/block/mmcblk0p12 /data ext4 rw
/dev/block/mmcblk0p9 /system ext4 rw
/dev/block/mmcblk0p10 /preload ext4 rw
/dev/block/mmcblk1p1 /external_sd auto rw
~ # e2fsck -fv /dev/block/mmcblk0p9
e2fsck 1.41.14 (22-Dec-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

1689 inodes used (1.29%)
9 non-contiguous files (0.5%)
2 non-contiguous directories (0.1%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 1342
110636 blocks used (21.10%)
0 bad blocks
0 large files

1266 regular files
75 directories
0 character device files
0 block device files
0 fifos
0 links
339 symbolic links (339 fast symbolic links)
0 sockets
--------
1680 files
~ # e2fsck -fv /dev/block/mmcblk0p10
e2fsck 1.41.14 (22-Dec-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

16 inodes used (0.04%)
0 non-contiguous files (0.0%)
0 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 8
5482 blocks used (3.57%)
0 bad blocks
0 large files

1 regular file
6 directories
0 character device files
0 block device files
0 fifos
0 links
0 symbolic links (0 fast symbolic links)
0 sockets
--------
7 files

– 끝 –

참고 :[Q]How to fsck /data or /system?
http://forum.xda-developers.com/showthread.php?t=1396366

#PasswordBox LastPass를 대체할 PasswordBox


Chrome, Firefox, Safari, IE, Android, iOS 에서 패스워드 25개 저장 한정으로 무료로 사용할 수 있음.
5명 초대하면 무제한으로 사용 가능함.

사용방법 동영상 보면 모바일에서도 자동으로 로그인 해주고 기능은 괜찮아 보인다.

LastPass는 모바일 무조건 Premium 사용자만 가능하니… 25개 한정이지만 괜찮아 보이네요.

PasswordBox 추천 & 다운로드 URL:
http://j.pbox.io/K40ze5HB

이미지

이미지

이미지

이미지

이미지

– 끝 –

 

Android, Play Store 앱 설치 에러(-24)


갤3 내가 막 써서 그런지 한 2번 정도 폰이 초기화(공장 초기화까지는 아님.)가 된 적이 있다.
각종 앱이 로그인도 다시 해야 하고 일부 앱들은 날아가기(삭제)까지 하기도 한다.

이번에도 비슷한 경험을 하고
초기화로 삭제 된 앱을 설치하려고 하니 “-24” 코드 에러가 나면서 설치가 되지 않는다.

Play store 에서 앱 설치 시 아래와 같은
난해한 오류 메세지 창을 띄우면서 앱 설치가 되지 않는다.

애플리케이션을 설치하는 중에 알 수 없는 오류코드(‘-24’)가 발생했습니다.

Screenshot_2014-04-02-13-49-48

루팅이 돼 있다면,

1) /data/data 에 남아있는 apk 의 package 의 잔재를 없애 준다.

나는 아래와 같이 sshdroid 를 이용해서 ssh 로 접속해서 삭제 했다.
root@c1skt:/data/data # ls | grep dialer
com.modoohut.dialer
com.modoohut.dialer.donate
com.modoohut.dialer.plugin.connectvibrate
com.modoohut.dialer.plugin.geocoder
com.modoohut.dialer.plugin.shortcut
com.modoohut.dialer.plugin.xmissedcall
root@c1skt:/data/data # rm -rf com.modoohut.dialer.donate

2) Play store 에서 앱 설치가 된다. 성공!!!

– 끝 –

Mac OS X, heimdall (odin), ERROR: Claiming interface failed!


Heimdall : http://glassechidna.com.au/heimdall/

#1 에러상황



Nate-Jangs-iMac-5@x% heimdall flash --no-reboot --RECOVERY recovery.img
Heimdall v1.4.0

Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
libusbx: error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access
ERROR: Claiming interface failed!

마지막 두 줄을 보면,

libusbx: error [darwin_claim_interface] USBInterfaceOpen: another process has device opened for exclusive access
ERROR: Claiming interface failed!

이미 다른 프로세스가 독점적으로 디바이스를 오픈하고 있다고 나와있음.

#2 상황파악


아래와 같이 apple 관련 드라이버를 빼고 보면, (kext : kernel extension)

Nate-Jangs-iMac-5@x% kextstat | grep -v apple
Index Refs Address Size Wired Name (Version) <Linked Against>
65 1 0xffffff7f80b86000 0x46000 0x46000 com.Logitech.Control Center.HID Driver (3.9.1) <64 62 36 29 5 4 3>
66 0 0xffffff7f80bdc000 0x18000 0x18000 com.Logitech.Unifying.HID Driver (1.3.1) <65 62 36 29 5 4 3>
86 1 0xffffff7f80885000 0x46000 0x46000 org.virtualbox.kext.VBoxDrv (4.0.8) <7 5 4 3 1>
87 0 0xffffff7f808d0000 0x8000 0x8000 org.virtualbox.kext.VBoxUSB (4.0.8) <86 43 36 7 5 4 3 1>
94 0 0xffffff7f80e1f000 0xe000 0xe000 com.usboverdrive.driver.hid (3.0.2) <64 62 36 29 5 4 3>
96 0 0xffffff7f80a4c000 0x5000 0x5000 com.cyberic.SmoothMouse (8.16) <29 5 4 3>
126 0 0xffffff7f81784000 0x2000 0x2000 com.nvidia.CUDA (1.1.0) <4 1>
127 0 0xffffff7f82707000 0x1b000 0x1b000 org.pqrs.driver.KeyRemap4MacBook (9.3.0) <29 5 4 3 1>
128 0 0xffffff7f82722000 0x18000 0x18000 com.magican.iokit.netmon (1) <5 4 3 1>
129 0 0xffffff7f8273a000 0x6000 0x6000 com.magican.iokit.filemon (1) <5 4 3 1>
130 0 0xffffff7f82740000 0x4000 0x4000 com.devguru.driver.SamsungComposite (1.4.14) <36 4 3>
132 0 0xffffff7f82748000 0x3000 0x3000 com.devguru.driver.SamsungACMControl (1.4.14) <36 4 3>
134 0 0xffffff7f8274f000 0xc000 0xc000 com.devguru.driver.SamsungACMData (1.4.14) <117 36 5 4 3>

확인해 보면, 아래쪽 3줄 삼성관련 드라이버가 사용되는 것을 볼 수 있음.

#3 해결


아래와 같이 kextunload를 사용해서 samsung 관련 드라이버 사용을 해제 시킴.

Nate-Jangs-iMac-5@x% sudo kextunload -b com.devguru.driver.SamsungComposite
Nate-Jangs-iMac-5@x% sudo kextunload -b com.devguru.driver.SamsungACMControl
Nate-Jangs-iMac-5@x% sudo kextunload -b com.devguru.driver.SamsungACMData

#4 결과


아래와 같이 정상적으로 flash 되는 것을 볼 수 있음.

Nate-Jangs-iMac-5@x% heimdall flash --no-reboot --RECOVERY recovery.img
Heimdall v1.4.0

Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
http://www.glassechidna.com.au/

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Setting up interface...

Initialising protocol...
Protocol initialisation successful.

Beginning session...

Some devices may take up to 2 minutes to respond.
Please be patient!

Session begun.

Downloading device's PIT file...
PIT file download successful.

Uploading RECOVERY
100%
RECOVERY upload successful

Ending session...
Rebooting device...
Releasing device interface...

Nate-Jangs-iMac-5@x%

※ 참고 : “–no-reboot” 옵션을 줘서 자동으로 재부팅 되는 것을 방지함. 이유는 flashing 후 바로 recovery 로 들어가야 recovery flashing 이 된다고 함.

출처 : http://blog.scott.wallace.sh/2012/03/getting-heimdall-to-work-on-your-mac.html

Mac OS v10.9, Android Source 컴파일 하기


참고 URL:

1. 요구사항 :

1.1 Sun Java 1.6

현재 JAVA 버전
% /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

Java 1.6 버전의 홈(home) 디렉토리
% /usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Java 1.6 버전 bin 디렉토리를 $PATH에 추가.
% export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

1.2 디스크 준비 (대소문자 구분 파일시스템 디스크)


$ hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 60g ~/mydroid.dmg

자동으로 마운트 하기($HOME/.zshrc 에 추가)
# mount the android file image
function mountAndroid { hdiutil attach ~/mydroid.dmg -mountpoint /Volumes/mydroid; }

마운트 하기.
% open ~/mydroid.dmg

1.3 MacPorts, 필요한 Utils 설치

% POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg

2. 선택 사항

2.1 ccache

컴파일 시간 절약하기 위한 cache 기능 활용.
export USE_CCACHE=1
export CCACHE_DIR=$HOME/.ccache
% pwd
/Volumes/mydroid
% prebuilts/misc/darwin-x86/ccache/ccache -M 50G

참고:
http://ccache.samba.org/manual.html

3. source 받기 (크기 : 20GB)

http://source.android.com/source/downloading.html
/Volumes/mydroid 에 소스를 다운 받는다.
% mkdir ~/bin
% PATH=~/bin:$PATH
% curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
% chmod a+x ~/bin/repo
% cd /Volumes/mydroid
% repo init -u https://android.googlesource.com/platform/manifest
% repo sync

4. build 하기 (총크기 : 37GB)

http://source.android.com/source/building-running.html
% source build/envsetup.sh
% lunch aosp_arm-eng
% make -j4

5. emulator 실행하기

% which emulator
/Applications/Android Studio.app/sdk/tools/emulator
% emulator

– 끝 –

Android, logcat 에서 특정 tag 제외. (exclude with the tag)


출처 : http://stackoverflow.com/questions/5511433/how-to-exclude-certain-messages-by-tag-name-using-android-adb-logcat

You can do this from within DDMS Monitor (and also Eclipse or Android Studio) with the regular expression input box and negative look-ahead assertions, for example I am excluding a lot of noise from my log with the following:
tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

예) StrictMode tag 제외
tag:^(?!(StrictMode))

screenshot_2013-09-02_12.42.24

screenshot_2013-09-02_11.03.35

– 끝 –