@echo off
chcp 65001 >nul
title HarclikGo - Tum Android ve Cin Modelleri (HyperOS 3, Xiaomi, Huawei, Oppo, Vivo) Koruma Araci
color 0B

echo ===============================================================================
echo            HARCLIKGO UNIVERSAL DEVICE OWNER VE JEST KALKANI ARACI
echo   (Android 14, 15, 16, Xiaomi HyperOS 1/2/3, Huawei, Oppo, Vivo, Samsung)
echo ===============================================================================
echo.
echo Bu arac, cihazinizda HarclikGo'yu 'Device Owner' (Cihaz Sahibi) seviyesine
echo yukseltir ve Cin modellerindeki alt yatay cizgi (jest cubugu) kacisini engeller.
echo.
echo Saglanan Guvenlik Kalkanlari:
echo   [+] Alttaki uzun cizgiyi yukari itme (gesture) telefon masaustune ASLA cikamaz.
echo   [+] Cin OEM (HyperOS, EMUI, ColorOS) jest cubuklari OS duzeyinde gizlenir.
echo   [+] HarclikGo kalici olarak Varsayilan Ana Ekran (Home Launcher) atanir.
echo   [+] Ebeveyn / Admin panelinden izin verilmedikce uygulama ASLA KALDIRILAMAZ.
echo.
echo ===============================================================================
echo.

:: 1. ADB Konumu Bulma
set "ADB_PATH="
where adb >nul 2>nul
if %errorlevel% equ 0 (
    set "ADB_PATH=adb"
) else if exist "%LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe" (
    set "ADB_PATH=%LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe"
) else if exist "%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe" (
    set "ADB_PATH=%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools\adb.exe"
) else if exist "C:\Program Files\Android\platform-tools\adb.exe" (
    set "ADB_PATH=C:\Program Files\Android\platform-tools\adb.exe"
) else if exist "C:\Android\platform-tools\adb.exe" (
    set "ADB_PATH=C:\Android\platform-tools\adb.exe"
)

if "%ADB_PATH%"=="" (
    color 0C
    echo [HATA] adb.exe bulunamadi!
    echo Lutfen Android SDK veya platform-tools yuklu oldugundan emin olun.
    echo.
    pause
    exit /b 1
)

echo [OK] ADB bulundu: "%ADB_PATH%"
echo.

:: 2. Cihaz Baglantisi Kontrolu
:check_device
echo [*] Bagli Android cihazlar araniyor...
"%ADB_PATH%" get-state >nul 2>nul
if %errorlevel% neq 0 (
    color 0E
    echo.
    echo [!] Henuz bagli veya USB Hata Ayiklamasi acik bir Android cihaz bulunamadi.
    echo Lutfen:
    echo   1. Telefonunuzu USB kablosuyla bilgisayara baglayin.
    echo   2. Telefonda: Ayarlar ^> Telefon Hakkinda ^> 'Derleme Numarasi'na 7 kez basarak Gelistirici Seceneklerini acin.
    echo   3. Ayarlar ^> Gelistirici Secenekleri ^> 'USB Hata Ayiklama' (USB Debugging) ozelligini acin.
    echo   4. (Xiaomi / HyperOS kullanicilari): Ayarlar ^> Gelistirici Secenekleri ^> 'USB Uzerinden Guvenlik Ayarlari'ni da acin.
    echo   5. Telefon ekraninda 'Bu bilgisayara her zaman izin ver' uyarisi cikarsa 'Tamam' secin.
    echo.
    echo Hazir oldugunuzda devam etmek icin bir tusa basin...
    pause >nul
    color 0B
    goto check_device
)

for /f "tokens=1,2" %%A in ('"%ADB_PATH%" devices ^| findstr /v "List" ^| findstr "device$"') do (
    set "DEVICE_ID=%%A"
)

if "%DEVICE_ID%"=="" (
    color 0E
    echo [!] Cihaz 'unauthorized' (yetkisiz) veya baska bir modda.
    echo Lutfen telefon ekranindaki 'USB Hata Ayiklamaya izin verilsin mi?' sorusunu ONAYLAYIN.
    echo.
    pause
    color 0B
    goto check_device
)

for /f "tokens=*" %%M in ('"%ADB_PATH%" shell getprop ro.product.manufacturer 2^>nul') do set "DEVICE_MFR=%%M"
for /f "tokens=*" %%D in ('"%ADB_PATH%" shell getprop ro.product.model 2^>nul') do set "DEVICE_MODEL=%%D"
for /f "tokens=*" %%R in ('"%ADB_PATH%" shell getprop ro.build.version.release 2^>nul') do set "DEVICE_OS=%%R"

echo [OK] Bagli cihaz tespit edildi: %DEVICE_ID%
echo      Uretici: %DEVICE_MFR% ^| Model: %DEVICE_MODEL% ^| Android Surumu: %DEVICE_OS%
echo.

:: 3. HarclikGo Yuklu mu?
echo [*] HarclikGo uygulamasi kontrol ediliyor...
"%ADB_PATH%" shell pm path com.harclikgo.app >nul 2>nul
if %errorlevel% neq 0 (
    color 0E
    echo [!] Cihazda com.harclikgo.app (HarclikGo) bulunamadi!
    echo Lutfen once telefona HarclikGo APK'sini yukleyin.
    set "FOUND_APK="
    if exist "%~dp0harclikgo.apk" set "FOUND_APK=%~dp0harclikgo.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0harclikgo-android.apk" set "FOUND_APK=%~dp0harclikgo-android.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0harclikgo-android-15.apk" set "FOUND_APK=%~dp0harclikgo-android-15.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0..\downloads\HarclikGo-2.9.75.apk" set "FOUND_APK=%~dp0..\downloads\HarclikGo-2.9.75.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0..\downloads\harclikgo.apk" set "FOUND_APK=%~dp0..\downloads\harclikgo.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0..\downloads\harclikgo-android.apk" set "FOUND_APK=%~dp0..\downloads\harclikgo-android.apk"
    if "%FOUND_APK%"=="" if exist "%~dp0..\downloads\harclikgo-android-15.apk" set "FOUND_APK=%~dp0..\downloads\harclikgo-android-15.apk"

    if not "%FOUND_APK%"=="" (
        echo.
        echo Guncel APK bulundu: %FOUND_APK%
        set /p "INSTALL_NOW=Simdi bu cihaza yuklensin mi? (E/H): "
        if /i "%INSTALL_NOW%"=="E" (
            echo [*] APK yukleniyor...
            "%ADB_PATH%" install -r -d "%FOUND_APK%"
            echo [*] Yukleme tamamlandi.
        )
    )
    echo.
)

:: 4. Cin OEM Jest Cubuklarini Gizleme ve Izinleri Duzenleme (Her durumda calisir)
echo [*] Cin OEM (Xiaomi HyperOS, Huawei, Oppo, Vivo) jest cubugu kalkanlari ayarlaniyor...
:: Xiaomi / HyperOS / Redmi / Poco
"%ADB_PATH%" shell settings put global hide_gesture_line 1 >nul 2>&1
"%ADB_PATH%" shell settings system hide_gesture_line 1 >nul 2>&1
"%ADB_PATH%" shell settings secure hide_gesture_line 1 >nul 2>&1
"%ADB_PATH%" shell settings global full_screen_gesture_line 0 >nul 2>&1
"%ADB_PATH%" shell settings system full_screen_gesture_line 0 >nul 2>&1
"%ADB_PATH%" shell settings secure gesture_line_type 0 >nul 2>&1
:: Huawei / Honor (EMUI / MagicOS)
"%ADB_PATH%" shell settings secure hide_gesture_navigation_bar 1 >nul 2>&1
"%ADB_PATH%" shell settings system navigationbar_is_min 1 >nul 2>&1
:: Oppo / Realme / OnePlus (ColorOS)
"%ADB_PATH%" shell settings secure hide_gesture_bar 1 >nul 2>&1
"%ADB_PATH%" shell settings global hide_gesture_bar 1 >nul 2>&1
:: Vivo / iQOO (FuntouchOS / OriginOS 5 & Foldable Taskbar)
"%ADB_PATH%" shell settings put secure navigation_gesture_hide_bar 1 >nul 2>&1
"%ADB_PATH%" shell settings put system hide_navigation_gesture_bar 1 >nul 2>&1
"%ADB_PATH%" shell settings put global navigation_gesture_hide_bar 1 >nul 2>&1
"%ADB_PATH%" shell settings put secure vivo_taskbar_enabled 0 >nul 2>&1
"%ADB_PATH%" shell settings put global vivo_taskbar_enabled 0 >nul 2>&1
"%ADB_PATH%" shell settings put system taskbar_enabled 0 >nul 2>&1
"%ADB_PATH%" shell settings put global taskbar_enabled 0 >nul 2>&1
"%ADB_PATH%" shell settings put secure hide_taskbar 1 >nul 2>&1
"%ADB_PATH%" shell settings put system smart_dock 0 >nul 2>&1
"%ADB_PATH%" shell settings put secure dock_bar_state 0 >nul 2>&1
"%ADB_PATH%" shell settings put secure vivo_nav_bar_type 2 >nul 2>&1
"%ADB_PATH%" shell settings put system navigation_bar_type 2 >nul 2>&1
:: Android Global Immersive Navigation (Tam Ekran Bar Kilitleme)
"%ADB_PATH%" shell settings put global policy_control "immersive.navigation=*" >nul 2>&1
:: Stock Android / Samsung / Motorola
"%ADB_PATH%" shell settings put secure navigation_bar_gesture_hint 0 >nul 2>&1
"%ADB_PATH%" shell settings put global navigation_bar_gesture_hint 0 >nul 2>&1

:: HarclikGo Varsayilan Ana Ekran yap:
"%ADB_PATH%" shell cmd package set-home-activity com.harclikgo.app/.FreeDesktopActivity >nul 2>&1

:: Kalkan ve Arka Plan Izinleri
"%ADB_PATH%" shell appops set com.harclikgo.app SYSTEM_ALERT_WINDOW allow >nul 2>&1
"%ADB_PATH%" shell appops set com.harclikgo.app OP_BACKGROUND_START_ACTIVITY allow >nul 2>&1
"%ADB_PATH%" shell appops set com.harclikgo.app POST_NOTIFICATION allow >nul 2>&1
"%ADB_PATH%" shell appops set com.harclikgo.app WRITE_SETTINGS allow >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.WRITE_SECURE_SETTINGS >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.POST_NOTIFICATIONS >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.ACCESS_FINE_LOCATION >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.ACCESS_COARSE_LOCATION >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.ACCESS_BACKGROUND_LOCATION >nul 2>&1
"%ADB_PATH%" shell pm grant com.harclikgo.app android.permission.READ_CALL_LOG >nul 2>&1
"%ADB_PATH%" shell settings put secure enabled_accessibility_services com.harclikgo.app/.KioskAccessibilityService >nul 2>&1
"%ADB_PATH%" shell settings put secure accessibility_enabled 1 >nul 2>&1

:: 5. Device Owner Atamasi
echo.
echo ===============================================================================
echo  HarclikGo, Cihaz Sahibi (Device Owner) olarak ataniyor...
echo ===============================================================================
echo.

"%ADB_PATH%" shell dpm set-device-owner com.harclikgo.app/.HarclikGoDeviceAdmin > "%TEMP%\hg_dpm_output.txt" 2>&1
type "%TEMP%\hg_dpm_output.txt"

findstr /i "Success" "%TEMP%\hg_dpm_output.txt" >nul
if %errorlevel% equ 0 (
    color 0A
    echo.
    echo ===============================================================================
    echo                       TEBRIKLER! ISLEM BASARILI!
    echo ===============================================================================
    echo HarclikGo artik cihazin en yetkili yoneticisidir (Device Owner).
    echo.
    echo Kazanilan Tam Guvenlik Ozellikleri:
    echo   1. Alttaki yatay uzun cizgi (jest cubugu) sistem ayarlarinda gizlendi.
    echo   2. HarclikGo kalici Varsayilan Ana Ekran (Home Launcher) olarak kilitlendi.
    echo   3. HarclikGo kaldirilamaz hale getirildi (Ayarlar veya masaustunden ASLA silinemez).
    echo   4. Cin OEM arka plan acilir pencere ve dokunus yutma kalkani devrede.
    echo   5. Ebeveyn / Admin panelinden 'Cihazi Serbest Birak' dendiginde kilitler kalkar.
    echo ===============================================================================
    echo.
    pause
    exit /b 0
)

findstr /i "already some accounts" "%TEMP%\hg_dpm_output.txt" >nul
if %errorlevel% equ 0 (
    color 0E
    echo.
    echo ===============================================================================
    echo             BILGI: CIHAZDA GOOGLE VEYA BASKA HESAP BULUNUYOR
    echo ===============================================================================
    echo NOT: Alt cizgi gizleme, ana ekran kilidi ve tum kalkan izinleri basariyla verildi!
    echo.
    echo Ancak HarclikGo'yu 'Tam Cihaz Sahibi (Device Owner)' yaparak kaldirilamaz hale
    echo getirmek icin Android mimarisi hesaplarin gecici kaldirilmasini ister:
    echo.
    echo COZUM (VERILERINIZ SILINMEZ):
    echo   1. Ayarlar ^> Hesaplar bolumunden Google hesabini GECICI olarak kaldirin.
    echo   2. Bu pencerede bir tusa basarak kurulumu tekrar calistirin.
    echo   3. 'Success' gordukten sonra Google hesabinizi tekrar ekleyebilirsiniz.
    echo ===============================================================================
    echo.
    pause
    goto check_device
)

findstr /i "already some users" "%TEMP%\hg_dpm_output.txt" >nul
if %errorlevel% equ 0 (
    color 0E
    echo [!] Cihazda baska bir kullanici veya Misafir profili tanimli.
    echo Lutfen Ayarlar ^> Kullanicilar bolumunden Misafir profilini silin ve tekrar deneyin.
    echo.
    pause
    goto check_device
)

color 0C
echo.
echo [!] Device Owner atamasi sirasinda bir uyari olustu.
echo Ancak jest cubugu gizleme ve kalkan izinleri basariyla tanimlandi.
echo.
pause
exit /b 0
