Skip to content

Commit

Permalink
Merge pull request #412 from Mahmud0808/beta
Browse files Browse the repository at this point in the history
Merge beta into stable
  • Loading branch information
Mahmud0808 committed Jan 29, 2024
2 parents 4a91a94 + 5b349e6 commit 561e094
Show file tree
Hide file tree
Showing 947 changed files with 43,627 additions and 14,241 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,6 @@ body:
attributes:
label: Additional context
description: Add any other context about the problem here.
placeholder: If this is a crash report, you can paste or link the crash message in here.
placeholder: If this is a crash report, you can paste or link the crash message in here. Include LSPosed logs if you are using xposed mods.
validations:
required: false
4 changes: 2 additions & 2 deletions .github/workflows/build_debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: set up JDK 18
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '18'
distribution: 'temurin'
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
run: ./gradlew assembleDebug

- name: Upload a Build Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: "Iconify v${{ env.VERSION_NAME }} Dev (#${{github.run_number}})"
path: app/build/outputs/apk/debug/*.apk
Expand Down
84 changes: 44 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div align="center">
<img src="https://raw.githubusercontent.com/Mahmud0808/Iconify/beta/.github/resources/banner.png" width="100%" alt="Banner">

# v6.6.0 is out!
# v6.7.0 is out!
</div>
<p align="center">
<a href="https://github.com/Mahmud0808/Iconify/releases"><img src="https://img.shields.io/github/downloads/Mahmud0808/Iconify/total?color=%233DDC84&logo=android&logoColor=%23fff&style=for-the-badge" alt="Downloads"></a>
Expand All @@ -28,9 +28,9 @@ Furthermore, the open-source nature of Iconify encourages community contribution
<img src="https://raw.githubusercontent.com/Mahmud0808/Iconify/beta/.github/resources/features.png" width="100%" alt="Features">
</div>

```diff
- NOTE: This app requires Magisk or KernelSU for root access. Any alternative methods won't work.
```
> [!CAUTION]
>
> This app requires Magisk or KernelSU for root access. Any alternative methods won't work.
# 🛠 Requirements

Expand All @@ -42,28 +42,46 @@ Furthermore, the open-source nature of Iconify encourages community contribution

- Decryption Supported Custom Recovery (Just in case)

> KSU users must flash OverlayFS Module from [**HERE**](https://github.com/HuskyDG/magic_overlayfs/releases) before installing iconify.
>
> Remember to edit _mode.sh_ file inside the module and change these values before flashing:
>
> `OVERLAY_MODE=1`
> `DO_UNMOUNT_KSU=true`
>
> Note: If one of the above variable doesn't exist, skip that particular variable.
>
> If the customizations are still not taking effect, ensure that SystemUI has been granted root permission. After granting root access, reboot your device for the changes to take effect.
# 👨‍💻 Installation

1. Go to [Releases](https://github.com/Mahmud0808/Iconify/releases) section.
### Installation for Magisk Users:​

1. Download and install the Iconify app.

2. Open the app, grant root permission and follow the instructions.

3. Wait for it to finish generating rom specific module.

4. Reboot the device when prompted, profit!

> [!NOTE]
>
> If some or most of the customizations are still not working for Magisk users, you might need to follow step 1 of KernelSU users' installation steps.
### Installation for KernelSU Users:​

1. Flash [Magic Overlayfs](https://github.com/HuskyDG/magic_overlayfs/releases) module (to make read-only system read-write)

> [!IMPORTANT]
>
> Remember to edit _mode.sh_ file inside the module and change these values before flashing:
>
> `OVERLAY_MODE=1`
> `DO_UNMOUNT_KSU=true`
>
> Note: If one of the above variable doesn't exist, skip that particular variable.
2. Flash [ZygiskOnKernelSU](https://github.com/Dr-TSNG/ZygiskOnKernelSU/releases/latest) module (only if you want to use LSPosed features)

2. Download the `.apk` file.
3. Grant SuperSU/root permission for SystemUI from KernelSU app

3. Install and open the application.
4. Reboot your device to get the modules installed successfully

4. Follow the instructions, wait for finishing overlay building process.
5. Now follow the installation steps of magisk users and voila!

5. Reboot the device when prompted, profit.
> [!TIP]
>
> KernelSU doesn't show root prompt. You will have to manually enable root access for Iconify from KernelSU app itself.
# 🤫 Roadmap

Expand All @@ -90,7 +108,7 @@ You can help translate Iconify [on Crowdin](https://crowdin.com/project/iconify)
# 🤓 FAQ

- How does Iconify work?
- Iconify uses Android overlays that allows modifications to be applied to the user interface (UI) of the device without directly modifying the underlying system files.
- Iconify uses Android overlays and Xposed framework that allows modifications to be applied to the user interface (UI) of the device without directly modifying the underlying system files.
- Do I need a root access for Iconify to work?
- Yes, root access is required for Iconify to function properly. While Iconify does support KernelSU, it is highly recommended to use Magisk for the best compatibility.
- Why is LSPosed listed as an optional requirement?
Expand Down Expand Up @@ -127,25 +145,11 @@ You can help translate Iconify [on Crowdin](https://crowdin.com/project/iconify)
- [AOSPMods](https://github.com/siavash79/AOSPMods), [@siavash79](https://t.me/siavash7999) for helping me with Xposed mods.
- [@Sanely_insane](https://t.me/sanely_insane), [@Jaguar](https://t.me/Jaguar0066) for support and motivation.
- [HideNavBar](https://github.com/Magisk-Modules-Repo/HideNavBar) for the navbar tweaks.
- And everyone who contributed... :)

### Translators:

- Arabic [@MRX7014](https://github.com/mrx7014), [@Mohamed Bahaa](https://github.com/muhammadbahaa2001)
- French [@MXC48](https://github.com/MXC48)
- Indonesian [@KaeruShi](https://github.com/KaeruShi)
- Italian [@Danilo Belmonte](https://crowdin.com/profile/steve.burnside)
- Persian [@Faceless1999](https://github.com/Faceless1999)
- Polish [@SK00RUPA](https://github.com/SK00RUPA)
- Portuguese [@ElTifo](https://github.com/ElTifo)
- Russian [@B1ays](https://github.com/B1ays)
- Simplified Chinese [@Cccc-owo](https://github.com/Cccc-owo)
- Spanish [@luckkmaxx](https://github.com/luckkmaxx)
- Turkish [@serhat-demir](https://github.com/serhat-demir), [@Emre](https://crowdin.com/profile/khapnols), [@WINZORT](https://crowdin.com/profile/linuxthegoat)
- Vietnamese [@viettel1211](https://t.me/viettel1211)
- And everyone who [contributed](https://github.com/Mahmud0808/Iconify/graphs/contributors) and [translated](https://crowdin.com/project/iconify/members)... :)

# 📝 Disclaimer

- Please note that Iconify may not be fully compatible with all custom ROMs. It is discouraged to use on heavily modified ROMs.
- I cannot be held responsible for any potential damage or issues that may occur to your device while using Iconify.
- It is highly recommended to have a custom recovery installed on your device to revert any changes in case of unexpected problems.
> [!WARNING]
> - Please note that Iconify may not be fully compatible with all custom ROMs. It is discouraged to use on heavily modified ROMs.
> - I cannot be held responsible for any potential damage or issues that may occur to your device while using Iconify.
> - It is highly recommended to have a custom recovery installed on your device to revert any changes in case of unexpected problems.
37 changes: 17 additions & 20 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,10 @@ android {
applicationId "com.drdisagree.iconify"
minSdk 31
targetSdk 34
versionCode 16
versionName "6.6.0"
versionCode 17
versionName "6.7.0"
setProperty("archivesBaseName", "Iconify v" + versionName)
buildConfigField "int", "MIN_SDK_VERSION", "$minSdkVersion.apiLevel"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

final def keystorePropertiesFile = rootProject.file("keystore.properties")
Expand Down Expand Up @@ -104,13 +102,13 @@ android {

dependencies {
// Magisk libsu version
def libsuVersion = '5.2.1'
def libsuVersion = '5.2.2'

// Kotlin
implementation 'androidx.core:core-ktx:1.12.0'

// Data Binding
implementation 'com.android.databinding:library:8.1.3'
implementation 'com.android.databinding:library:8.2.2'

// Xposed API
compileOnly files('libs/api-82.jar')
Expand All @@ -130,7 +128,7 @@ dependencies {
implementation 'androidx.core:core-splashscreen:1.0.1'

// Material Components
implementation 'com.google.android.material:material:1.10.0'
implementation 'com.google.android.material:material:1.12.0-alpha03'

// APK Signer
implementation 'org.bouncycastle:bcpkix-jdk18on:1.76'
Expand All @@ -154,7 +152,7 @@ dependencies {
implementation "androidx.recyclerview:recyclerview-selection:1.1.0"

// ViewPager2
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation 'androidx.viewpager2:viewpager2:1.0.0'

// Circle Indicator
implementation 'me.relex:circleindicator:2.1.6'
Expand All @@ -163,33 +161,32 @@ dependencies {
implementation 'com.airbnb.android:lottie:6.1.0'

// HTML Parser
implementation 'org.jsoup:jsoup:1.16.1'
implementation 'org.jsoup:jsoup:1.17.2'

// Collapsing Toolbar with subtitle
implementation "com.hendraanggrian.material:collapsingtoolbarlayout-subtitle:1.5.0"

// Naviation Component
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.5'
// Navigation Component
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.6'

// Concurrency
implementation 'androidx.work:work-runtime:2.8.1'
implementation 'androidx.work:work-runtime:2.9.0'
implementation "androidx.concurrent:concurrent-futures:1.1.0"
implementation 'com.google.guava:guava:29.0-jre'

// Event Bus
implementation 'org.greenrobot:eventbus:3.3.1'

// Dots Indicator
implementation 'com.tbuonomo:dotsindicator:4.3'

// Misc
implementation 'androidx.appcompat:appcompat:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.work:work-runtime:2.8.1'
implementation 'androidx.work:work-runtime-ktx:2.8.1'
implementation 'androidx.work:work-runtime:2.9.0'
implementation 'androidx.work:work-runtime-ktx:2.9.0'
implementation 'org.slf4j:slf4j-api:2.0.9'

// Test Implementation
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

tasks.register('printVersionName') {
Expand Down
14 changes: 3 additions & 11 deletions app/proguard-android-optimize.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
-allowaccessmodification
-dontoptimize
-dontpreverify
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-keepattributes Exceptions,LineNumberTable,Signature,SourceFile

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable

-keepclasseswithmembernames class * {
-keepclasseswithmembernames,allowoptimization,allowobfuscation class * {
native <methods>;
}

-keepclassmembers enum * {
-keepclassmembers,allowoptimization,allowobfuscation enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
66 changes: 32 additions & 34 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,48 +1,46 @@
# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Kotlin
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void check*(...);
public static void throw*(...);
}
-assumenosideeffects class java.util.Objects {
public static ** requireNonNull(...);
}

# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
-dontusemixedcaseclassnames
-verbose
# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize and preverify steps (and performs some
# of these optimizations on its own).
#-dontoptimize
-dontobfuscate
# If you want to enable optimization, you should include the
# following:
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
# Strip debug log
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int d(...);
}

-keep class de.robv.android.xposed.** { *; }
-keep class com.drdisagree.iconify.xposed.** { *; }
-keep class com.drdisagree.iconify.config.XPrefs { *; }
# Xposed
-keep class de.robv.android.xposed.**
-keep class com.drdisagree.iconify.xposed.InitHook
-keepnames class com.drdisagree.iconify.xposed.**
-keepnames class com.drdisagree.iconify.config.XPrefs
-keep class com.drdisagree.iconify.xposed.** {
<init>(android.content.Context);
}

# EventBus
-keepattributes *Annotation*
-keepclassmembers class * {
-keepclassmembers,allowoptimization,allowobfuscation class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
-keep,allowoptimization,allowobfuscation enum org.greenrobot.eventbus.ThreadMode { *; }

# If using AsyncExecutord, keep required constructor of default event used.
# Adjust the class name if a custom failure event type is used.
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
-keepclassmembers,allowoptimization,allowobfuscation class org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}

# Accessed via reflection, avoid renaming or removal
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl
-keep,allowoptimization,allowobfuscation class org.greenrobot.eventbus.android.AndroidComponentsImpl

# Keep the ConstraintLayout Motion class
-keep,allowoptimization,allowobfuscation class androidx.constraintlayout.motion.widget.** { *; }

# Obfuscation
-repackageclasses
-allowaccessmodification
6 changes: 3 additions & 3 deletions app/proguard.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
-keep class com.jaredrummler.android.colorpicker.**
-keep class javax.annotation.Nullable
-keep,allowoptimization,allowobfuscation class com.jaredrummler.android.colorpicker.**
-keep,allowoptimization,allowobfuscation class javax.annotation.Nullable
-dontwarn sun.security.internal.spec.**
-dontwarn sun.security.provider.**
-dontwarn com.jaredrummler.android.colorpicker.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.Nullable
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@
android:theme="@style/Theme.Iconify"
tools:targetApi="tiramisu">
<activity
android:name=".ui.activities.Onboarding"
android:name=".ui.activities.OnboardingActivity"
android:exported="false" />
<activity
android:name=".ui.activities.HomePage"
android:name=".ui.activities.MainActivity"
android:exported="false" />
<activity
android:name=".SplashActivity"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="config_icon_mask">M50.00,0.00C77.61,-0.00,100.00,22.39,100.00,50.00C100.00,77.61,77.61,100.00,50.00,100.00C22.39,100.00,0.00,77.61,0.00,50.00C0.00,22.39,22.39,0.00,50.00,0.00z</string>
<bool name="config_useRoundIcon">false</bool>
</resources>
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@*android:color/system_neutral2_500"
android:lStar="4.0" />
android:color="@*android:color/system_neutral1_500"
android:lStar="5.0" />
</selector>
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
android:start="4.5dip">
<shape android:tintMode="multiply">
<corners android:radius="@*android:dimen/harmful_app_name_padding_left" />
<solid android:color="?android:colorBackgroundFloating" />
<solid android:color="@color/surface_header_dark_sysui" />
<size
android:width="40.0dip"
android:height="40.0dip" />
Expand Down
Loading

0 comments on commit 561e094

Please sign in to comment.