본문 바로가기

정보공유/팁/강좌

SystemUI All Transparent(상단바 완전 투명화)

SystemUI All Transparent(상단바 완전 투명화하기)

안녕하세요. SPAPA입니다.

이번엔 상단바 투명화하는 방법에 대해 알려드리겠습니다.

이방법을 사용하면 홈화면 잠금화면 어플실행시 모두 상단바 투명이 적용됩니다.

일단 기본적으로 디컴파일/컴파일, deodex,odex작업이 가능하셔야합니다.

수정할 파일은 SystemUI.apk와 android.policy.odex 입니다.

* 이 강좌는 KT노트를 기준으로 작성하였습니다. 타기종이나 타통신사는 구문이 일부 다를수도 있습니다.

 

 

먼저 android.policy.odex 수정입니다.

com\android\internal\policy\impl\PhoneWindowManager.smali 에서

.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I 를 검색한후 약간 아래로 내려보시면

아래와 구문이 있습니다.

 

    .line 4475
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I

    iput v0, p1, Landroid/graphics/Rect;->bottom:I

    .line 4476
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_0

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    .line 4478
    :goto_0
    return v0

    .line 4477
    :cond_0
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_1

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    goto :goto_0

    .line 4478
    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method

.method goHome()Z
    .locals 15

 

위의 구문중 빨간색으로 표시된 구문을 지워버리고 아래처럼 파란 구문을 추가해줍니다.

    .line 4476
    const/4 v0, 0x0

    return v0
.end method

.method goHome()Z
    .locals 15

android.policy.odex 수정은 이게 끝입니다.

다음은 SystemUI.apk수정입니다.

res\values\drawables.xml 에서 아래 구문 하나만 수정하시면됩니다.

    <item type="drawable" name="status_bar_background">#00000000</item>

위처럼 status_bar_background의 색상코드를 바꿔주시면 됩니다.

이제 수정한 android.policy.odex와 SystemUI.apk를 폰에 적용하시면되겠습니다~

 

 

여기서 잠깐!!

다만, 한가지 단점은 어플실행시 일부어플에선 어플자체에서 상단 기본베이스가

흰색계열로 되어있는것들이 있는데.. 그런경우 상단 아이콘이나 글씨가 잘 보이지 않는다는 문제가 생깁니다.

 

이문제를 조금이나마 해결하기위해선 상단아이콘과 알림글,시계에

위처럼 그림자 효과를 넣어 어느정도 아이콘이나 글자 윤곽이 드러나도록 하는방법이 있습니다.

어차피 일부어플이고, 어플사용하면서 상단바만 쳐다보고 있는건 아니기에...

전 그냥 이렇게 만족하고 쓰고 있습니다^^;;

 

그럼 이만 상단바 투명화하기를 마치겠습니다.

 

제 글이 도움이 되셨다면 하단의 "ViewON" 한번씩

클릭해주시고 응원의 댓글들도 남겨주세요^^