갤포 펌웨어가 MF3로 업데이트되면서 이전대로 feature.xml 수정을 통해 ShutterSoundMenu를 활성화시킬 경우

카메라에서 촬영음 토글이 활성화되긴하지만, '꺼짐'을 선택할 수가 없어 무음 설정이 불가능해졌습니다.

카메라가 대폭 수정되면서 셔터음메뉴 부분이 설정할 수 없게 건드려져 있더군요.

이 문제를 해결하기 위해서는 ME7펌의 카메라 파일을 넣어주는 방법도 있겠지만,

그렇게 할 경우 업데이트가 되지 않은 예전 카메라를 사용하게 되는 것이기 때문에

MF3펌 카메라의 dex 수정을 통해 무음 설정이 가능하도록 바꿔주는 방법을 써보겠습니다.


셔터음메뉴 부분만 예전과 같은 코드로 바꿔주면 되는 작업입니다.

디오덱스/오덱스나 baksmaling/smaling 과정은 강좌가 많이 있기 때문에 생략하겠습니다.

---

1) 디오덱스된 SamsungCamera2.apk에서 classes.dex를 추출하여 baksmali 해줍니다.


2) com/sec/android/app/camera/CameraSettings.smali를 편집기로 열어줍니다.


3) .method public getCameraShutterSound()I 를 검색한 다음, 해당 메서드함수 전체를 아래의 코드로 교체해줍니다.
.method public getCameraShutterSound()I
    .registers 4

    .prologue
    iget-object v0, p0, Lcom/sec/android/app/camera/CameraSettings;->mActivityContext:Lcom/sec/android/app/camera/Camera;

    invoke-virtual {v0}, Lcom/sec/android/app/camera/Camera;->isCalling()Z

    move-result v0

    if-eqz v0, :cond_a

    const/4 v0, 0x0

    :goto_9
    return v0

    :cond_a
    invoke-virtual {p0}, Lcom/sec/android/app/camera/CameraSettings;->getPreferences()Lcom/sec/android/app/camera/ComboPreferences;

    move-result-object v0

    const-string v1, "pref_camera_shuttersound_key"

    const/4 v2, 0x1

    invoke-virtual {v0, v1, v2}, Lcom/sec/android/app/camera/ComboPreferences;->getInt(Ljava/lang/String;I)I

    move-result v0

    goto :goto_9
.end method
(apktool이나 apkmanager를 사용하여 디컴파일했을 경우 위 코드에서 registers 4를 locals 3으로 바꿔주세요.)


4) .method public setCameraShutterSound(I)V 를 검색한 다음 마찬가지로 메서드 전체를 아래의 코드로 교체해줍니다.
.method public setCameraShutterSound(I)V
    .registers 6
    .parameter "shuttersound"

    .prologue
    invoke-virtual {p0}, Lcom/sec/android/app/camera/CameraSettings;->getPreferences()Lcom/sec/android/app/camera/ComboPreferences;

    move-result-object v1

    const-string v2, "pref_camera_shuttersound_key"

    const/4 v3, 0x1

    invoke-virtual {v1, v2, v3}, Lcom/sec/android/app/camera/ComboPreferences;->getInt(Ljava/lang/String;I)I

    move-result v1

    iput v1, p0, Lcom/sec/android/app/camera/CameraSettings;->mShutterSound:I

    iget v1, p0, Lcom/sec/android/app/camera/CameraSettings;->mShutterSound:I

    if-eq v1, p1, :cond_42

    const-string v1, "CameraSettings"

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;->()V

    const-string v3, "setCameraShutterSound "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-static {v1, v2}, Landroid/util/Log;->secV(Ljava/lang/String;Ljava/lang/String;)I

    iput p1, p0, Lcom/sec/android/app/camera/CameraSettings;->mShutterSound:I

    invoke-virtual {p0}, Lcom/sec/android/app/camera/CameraSettings;->getPreferences()Lcom/sec/android/app/camera/ComboPreferences;

    move-result-object v1

    invoke-virtual {v1}, Lcom/sec/android/app/camera/ComboPreferences;->edit()Landroid/content/SharedPreferences$Editor;

    move-result-object v0

    .local v0, editor:Landroid/content/SharedPreferences$Editor;
    const-string v1, "pref_camera_shuttersound_key"

    iget v2, p0, Lcom/sec/android/app/camera/CameraSettings;->mShutterSound:I

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;

    invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->apply()V

    const/16 v1, 0x15

    invoke-virtual {p0, v1, p1}, Lcom/sec/android/app/camera/CameraSettings;->notifyCameraSettingsChanged(II)V

    .end local v0           #editor:Landroid/content/SharedPreferences$Editor;
    :cond_42
    return-void
.end method
(마찬가지로 apktool이나 apkmanager를 사용하여 디컴파일했을 경우 위 코드에서 registers 6를 locals 4로 바꿔주세요.)


코드 수정은 여기까지고,

이제 소스를 다시 classes.dex로 컴파일해준 다음, SamsungCamera2.apk에 넣어주면 끝입니다.

---

앞으로 있을 업뎃에서도 마찬가지로 셔터음 설정이 안된다면 계속 이 방법으로 수정해주면 되겠죠..

직접 수정하기 어려우신 분들을 위해 MF3펌의 카메라를 수정한 파일 첨부해두겠습니다.

첨부파일은 오덱스용과 디오덱스용, 두가지입니다.

Extra Form
첨부
(디오덱스용)SamsungCamera2.apk  [File Size:18.09MB/Download:246]
(오덱스용)SamsungCamera2.odex  [File Size:1.88MB/Download:194]
댓글을 남겨야 다운로드가 가능합니다. 감사의 댓글을 달고 오른쪽 확인버튼을 눌러주세요.
다운로드시 일주일에 한개 이상의 게시물 작성이 필요합니다. 지금 자유게시판에 회원님의 하루를 남겨보세요.
추천♡버튼을 잊지 마세요. 추천인과 회원님 모두 포인트가 적립됩니다.
댓글 46
댓글 쓰기 권한이 없습니다.
정렬 목록 검색 쓰기
등록된 글이 없습니다.
1 - 2