Last active
October 29, 2018 15:46
-
-
Save agran/30e28c3012836d38556d3062e17d7a55 to your computer and use it in GitHub Desktop.
Исправление оптической стабилизации в gCam для Zenfone 5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# virtual methods | |
.method public final a(I)Liia; | |
.locals 2 | |
:try_start_0 | |
new-instance v0, Liia; | |
iget-object v1, p0, Lifa;->a:Landroid/hardware/camera2/CameraDevice; | |
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder; | |
move-result-object v1 | |
invoke-direct {v0, v1}, Liia;-><init>(Landroid/hardware/camera2/CaptureRequest$Builder;)V | |
:try_end_0 | |
.catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_1 | |
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_2 | |
return-object v0 | |
:catch_0 | |
move-exception v0 | |
:goto_0 | |
new-instance v1, Lief; | |
invoke-direct {v1, v0}, Lief;-><init>(Ljava/lang/Throwable;)V | |
throw v1 | |
:catch_1 | |
move-exception v0 | |
goto :goto_0 | |
:catch_2 | |
move-exception v0 | |
goto :goto_0 | |
.end method |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# virtual methods | |
.method public final a(I)Liia; | |
.locals 4 | |
:goto_0 | |
:try_start_0 | |
iget-object v1, p0, Lifa;->a:Landroid/hardware/camera2/CameraDevice; | |
new-instance v0, Liia; | |
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder; | |
move-result-object v1 | |
invoke-direct {v0, v1}, Liia;-><init>(Landroid/hardware/camera2/CaptureRequest$Builder;)V | |
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key; | |
const/4 v1, 0x1 | |
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; | |
move-result-object v2 | |
invoke-virtual {v0, v3, v2}, Liia;->a(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V | |
:try_end_0 | |
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 | |
return-object v0 | |
:catch_0 | |
move-exception v0 | |
if-gtz p1, :cond_0 | |
move v0, p1 | |
add-int/lit8 v0, v0, 0x1 | |
move p1, v0 | |
goto :goto_0 | |
:cond_0 | |
move v0, p1 | |
add-int/lit8 v0, v0, -0x1 | |
move p1, v0 | |
goto :goto_0 | |
.end method |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.method public final a(I)Lkvr; | |
.locals 2 | |
:try_start_0 | |
new-instance v0, Lkvr; | |
iget-object v1, p0, Lkrm;->a:Landroid/hardware/camera2/CameraDevice; | |
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder; | |
move-result-object v1 | |
invoke-direct {v0, v1}, Lkvr;-><init>(Landroid/hardware/camera2/CaptureRequest$Builder;)V | |
:try_end_0 | |
.catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_1 | |
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_2 | |
return-object v0 | |
:catch_0 | |
move-exception v0 | |
:goto_0 | |
new-instance v1, Lkkb; | |
invoke-direct {v1, v0}, Lkkb;-><init>(Ljava/lang/Throwable;)V | |
throw v1 | |
:catch_1 | |
move-exception v0 | |
goto :goto_0 | |
:catch_2 | |
move-exception v0 | |
goto :goto_0 | |
.end method |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.method public final a(I)Lkvr; | |
.locals 4 | |
:goto_0 | |
:try_start_0 | |
iget-object v1, p0, Lkrm;->a:Landroid/hardware/camera2/CameraDevice; | |
new-instance v0, Lkvr; | |
invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder; | |
move-result-object v1 | |
invoke-direct {v0, v1}, Lkvr;-><init>(Landroid/hardware/camera2/CaptureRequest$Builder;)V | |
sget-object v3, Landroid/hardware/camera2/CaptureRequest;->LENS_OPTICAL_STABILIZATION_MODE:Landroid/hardware/camera2/CaptureRequest$Key; | |
const/4 v1, 0x1 | |
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; | |
move-result-object v2 | |
invoke-virtual {v0, v3, v2}, Lkvr;->a(Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)V | |
:try_end_0 | |
.catch Ljava/lang/RuntimeException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Ljava/lang/IllegalStateException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Landroid/hardware/camera2/CameraAccessException; {:try_start_0 .. :try_end_0} :catch_0 | |
.catch Ljava/lang/SecurityException; {:try_start_0 .. :try_end_0} :catch_0 | |
return-object v0 | |
:catch_0 | |
move-exception v0 | |
if-gtz p1, :cond_0 | |
move v0, p1 | |
add-int/lit8 v0, v0, 0x1 | |
move p1, v0 | |
goto :goto_0 | |
:cond_0 | |
move v0, p1 | |
add-int/lit8 v0, v0, -0x1 | |
move p1, v0 | |
goto :goto_0 | |
.end method |
Функция которую нужно править только одна, я привёл функцию два раза для лучшего понимания.
Сравнить две версии на отличия можно с помощью программы WinMerge.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
1 - Функция без стабилизации.
2 - Она же с исправленной стабилизацией.
3 - Функция без стабилизации.
4 - Она же с исправленной стабилизацией.
Функцию можно найти с помощью поиска по файлам в программе Notepad++ по запросу "Landroid/hardware/camera2/CameraDevice;->createCaptureRequest(I)Landroid/hardware/camera2/CaptureRequest$Builder;"
Будет всего несколько результатов.
Нужно следить за именами. Просто так скопировать функцию со стабом - мало, нужно заменить в ней имена на те которые были изначально.
Для декомпиляции apk файла я использовал APK Easy Tool portable.