Skip to content

Download

The latest stable version of Mihon was released and the latest beta version was released .

Beta releases are intended for testing upcoming changes and may not be a stable experience.

Requires Android 8.0 or higher.

Changelog

Added

  • Option to disable reader zoom out (@Splintorien) (#302)
  • Source name and tracker urls to app generated ComicInfo.xml file (@Shamicen) (#459)
  • Option to migrate in Duplicate entry dialog (@sirlag) (#492)
  • Upcoming screen to visualize expected update dates (@sirlag) (#420)
  • Crash screen error message to the top of the crash log generated from that screen (@FooIbar) (#742)
  • Support for 7Zip and RAR5 archives (@FooIbar) (#949)
  • Extra configuration options to e-ink page flashes (@sirlag) (#625)
  • 8-bit+ AVIF image support (@WerctFourth) (#971)
  • Smart update dialog message when no predicted released date exists (@Animeboynz) (#977)
  • Option to copy reader panel to clipboard (@Animeboynz) (#1003)
  • Copy Tracker URL option to tracker sheet (@mm12) (#1101)
  • A button to exclude all scanlators in exclude scanlators dialog (@AntsyLich) (84b2164)
  • Open in browser option to reader menu (@mm12) (#1110)
    • Reorder reader menu overflow items (@AntsyLich) (788235f)
  • Option to skip downloading duplicate read chapters (@shabnix) (#1125)
  • Add confirmation dialog when adding repo via URI (@Animeboynz) (#1158)
  • Add "show entry" action to download notifications (@mm12, @AntsyLich) (#1159)
  • Option to update trackers when chapter marked as read (@Animeboynz, @AntsyLich) (#1177, #1365, #1374)
  • Toast to restart app when User-Agent is changed (@NGB-Was-Taken) (#1204)
  • Added more profile compilation status (p) (c8bb78d)
  • Add option to opt out of Analytics and Crashlytics (@Animeboynz) (#1237)
  • Added random library sort (@jackhamilton) (#1317)
    • Make sure random library sort is at the bottom (@AntsyLich) (2e2c8d3)
  • Confirmation dialog when removing privately installed extensions (@Animeboynz, @AntsyLich) (#1320)
  • Option to backup non-library read entries (@Animeboynz, @jobobby04, @AntsyLich) (#1324)

Changed

  • Read archive files from memory instead of temporarily extracting to internal storage (@FooIbar) (#326)
  • Bump default user agent (@AntsyLich) (8160b47)
  • Wait for sources to be initialized before performing source related tasks (@jobobby04) (a08e03f)
  • Duplicate entry dialog UI (@sirlag) (#492)
  • Extension trust system
    • Store extension repo details from repo.json in database (@sirlag) (#506)
      • Fix extension repo migration not triggering (@AntsyLich) (9672ea8)
      • Refactor the ExtensionRepoService to use DTOs (@MajorTanya) (#573)
      • Fix extension repo name is used to construct URL instead of baseUrl (@MajorTanya) (#572)
      • Fix crash with TypeReference issue when creating extension repo (@AntsyLich) (#574, e020ae5)
      • Backup and Restore (@Animeboynz) (#1057)
    • Trust extension by repo (@AntsyLich) (#570)
  • From M2 ripple to M3 (@FooIbar) (#675)
  • Increased continue reading button size (@AntsyLich, @Animeboynz) (e17f70f)
  • Global search "Has result" choice is now sticky (@AntsyLich) (5a61ca5)
  • Make category backup/restore not dependant on library backup (@AntsyLich) (56fb4f6)
  • Rename backup restore error log file (@AntsyLich) (2858ef8)
  • Keyboard type in add extension repo dialog (@xbjfk) (#764)
  • Adjust collapse/open animation on manga description (@AntsyLich, @ivaniskandar) (1c16fc7)
  • Kitsu domain to kitsu.app (@MajorTanya) (#1106)
  • Respect privacy settings in extension update notification (@Animeboynz) (#1156)
  • Hide keyboard when a Tracker SearchResultItem is clicked (@Animeboynz) (#1168)
  • Enable 'Split Tall Images' by default (@Smol-Ame) (#1185)
  • Ignore "intent://" urls on webview (@bapeey) (#1193)
  • Make reader chapter navigator slightly wider on small screens (p) (#1202)
  • Re-enable fetching chapters list for entries with licenced status (@Animeboynz) (#1230)
  • Change casing for Extention Repos String (@Animeboynz) (#1248)
  • Retain remote last chapter read if it's higher than the local one for EnhancedTracker (@brewkunz) (#1301)
  • Adjust expandable fab animation (p) (eb6092b)
  • "Invalidate downloads index" to "Reindex downloads" (@AntsyLich) (d2afbfe)

Improved

  • Reader performance
    • Avoid unnecessary copying when processing reader image (@FooIbar) (#691)
    • Significantly improve performance when loading extremely long images in long strip mode (@FooIbar) (#692)
    • Use Bitmap.Config.HARDWARE if possible to improve image loading speed (@wwww-wwww) (#687)
    • Improve preloading in long strip mode (@FooIbar) (#1076)
  • Performance when looking up specific files (@raxod502) (#728)
  • Chapter number parsing (@Naputt1) (6a80305)
  • Error message on restoring if backup decoding fails (@vetleledaal) (#1056)

Removed

  • Legacy download folder names no longer supported (@AntsyLich) (e55e5f6)
  • Remove legacy broken source and history backup (@AntsyLich) (518abf0)
  • Remove more unnecessary permissions from Firebase dependency (@AntsyLich) (02af9b1)

Fixed

  • Extracting ComicInfo.xml from local source archives (@FooIbar) (#325)
  • Chapter download indicator (@ivaniskandar) (d8b9a9f)
  • Issues with shizuku in a multi user setup (@Redjard) (#494)
  • Fix reader page image not being decoded until it's visible (@FooIbar) (#563)
  • Reader chapter progress slider visuals (@FooIbar) (#674)
  • Extension being marked as not installed instead of untrusted after updating with private installer (@AntsyLich) (2114514)
  • Extension update counter not updating due to extension being marked as untrusted (@AntsyLich) (2114514)
  • Key "extension-XXX-YYY" was already used crash (@AntsyLich) (2114514)
  • Navigation layout tap zones shifting after zooming out in webtoon readers (@FooIbar) (#767)
  • Some extension not loading due to missing classes (@AwkwardPeak7) (#783)
  • Theme colors in accordance to upstream changes (@CrepeTF, @AntsyLich) (#766, #963, #976, 9a34ace)
  • Crash when requesting folder access on non-conforming devices (@mainrs) (#726)
  • Fix unexpected skips in strong skipping mode (@FooIbar) (#940)
  • Bugged color for Date/Scanlator in chapter list for read chapters (@ivaniskandar) (15d9992)
  • Categories having same order after restoring backup (@Cologler) (119bcbf)
  • Filter by "Tracking" temporarily stuck after signing out of tracker (@AntsyLich) (#987)
    • Fix login prompts despite being logged in to trackers in Manga screen (@AntsyLich) (cbcd8bd)
  • JXL image downloading and loading (@FooIbar) (#993)
  • Crash when using % in category name (@Animeboynz, @FooIbar) (#1030)
  • Fix item disappearing when fast scrolling (@cuong-tran) (#1035)
  • Library is backed up while being disabled (@AntsyLich) (56fb4f6)
  • Crash on list with only sticky header (@cuong-tran) (#1083)
  • Crash when trying to clear cookies of some source (@FooIbar) (#1084)
  • MAL search results not showing start dates (@MajorTanya) (#1098)
  • Android SDK 35 API collision (@AntsyLich) (fdb9617)
  • Manga next update calculation when considering custom fetch interval (@cuong-tran) (#1206)
  • WheelPicker Manual Input (@Animeboynz) (#1209)
  • EnhancedTracker not auto binding when adding manga to library (@brewkunz) (#1298)
  • Step count in settings slider (@abdurisaq) (#1356)
  • Freezing in some screens due to blocking call (@cuong-tran) (#1364)
  • Crash when removing non-existent tracked entry from tracker (@cuong-tran) (#1380)

Other

  • Code cleanup
    • Minor refactor of theming when expressions (@MajorTanya) (#396)
    • Inside WorkerInfoScreen (@AntsyLich) (5aec8f8)
    • Inside ChapterDownloadIndicator, MangaChapterListItem (@AntsyLich) (b7e091d)
    • MangaCoverFetcher (@ivaniskandar) (1365695)
  • Cleanup LibraryScreenModel LibraryMap.applySort and some more (@AntsyLich) (2beb89d)
  • Address overridePendingTransition deprecation (@MajorTanya) (#410)
  • Prioritize extension classes and files over app (@beer-psi) (#433)
  • Use compose pager implementation (@ivaniskandar) (84984ef)
  • Switch to coil3 from coil2 (@ivaniskandar) (f72b6e4)
  • Accommodate db for sync support (@kaiserbh) (#450)
  • Fix webtoon last visible item position calculation (@FooIbar) (#562)
  • Migrate from com.google.accompanist:accompanist-webview to io.github.kevinnzou:compose-webview (@sirlag) (#569)
  • Rewrite migrations (@ghostbear) (#577)
  • Add ProGuard rule to keep mihon namespace classes (@MajorTanya) (#605)
  • Use gradle plugins to share build configuration instead of subprojects (@AntsyLich) (e448e40)
  • Remove dependency on compose material 2 components (@AntsyLich) (fb94230)
  • Upload PR build artifacts to GitHub (@FooIbar) (#941)
  • Refactor archive support with libarchive (@FooIbar) (#949)
    • Add safeguard to prevent ArchiveInputStream from being closed twice (@null2264) (#967)
    • Move archive related code to :core:archive (@AntsyLich) (bd7b354)
  • Replace detekt with ktlint via spotless (@AntsyLich) (#1130, #1136, #1138)
    • Refrain from running spotless on weblate files (@AntsyLich) (32d2c2a)
  • Use feature flags in compose compiler plugin (@AntsyLich) (8f9a325)- PagerPageHolder: lazy init loading indicator (@AntsyLich, @ivaniskandar) (a45eb5e)
  • Collect MangaScreen state with lifecycle (@AntsyLich, @ivaniskandar) (03eb756)
  • Add stable marker to Manga data class (@AntsyLich, @ivaniskandar) (03eb756)
  • Use DTOs to parse tracking API responses (@MajorTanya) (#1103)
    • Fix Kitsu ratingTwenty being typed as String (@MajorTanya) (#1191)
    • Fix Kitsu synopsis nullability (@MajorTanya) (#1233)
    • Fix AniList ALSearchItem.status nullibility (@Secozzi) (#1297)
  • Migrate some classpaths to gradle plugins (@AntsyLich) (fc1c804)
  • Add crashlytics to standard builds (@AntsyLich) (3c611b9)
  • Switch to stable compose (@AntsyLich) (2baffa6)
  • Switch from inorichi injekt to kohesive Injekt (@AntsyLich) (#1205)
    • Use custom injekt register with inorichi patch (@AntsyLich) (83fd474)
  • Use TextFieldState in BasicTextField where applicable (p) (#1201)
  • Bump NDK version (@AntsyLich) (#1203)
  • Move firebase permission removal to standard flavor (@AntsyLich) (be671b4)
  • Adjust distinct checker in WidgetManager and run on default dispatcher (p) (9b8ab6a)
  • Update resources exclusion rules (p) (481cfed)
  • Bump compile sdk to 35 (p) (37419cd)
  • ChapterNavigator: dispatch page change only when needed (p) (f84d9a0)
  • Remove usage of deprecated accompanist SystemUiController (@AntsyLich) (2ba3f06)
  • Run PR check when base strings are changed (@AntsyLich) (4051f18)
  • Cleanup .gitignore files (@AntsyLich) (afa5002)
  • Pass uncaught exception to default handler in GlobalExceptionHandler (so it's reported to crashlytics) (@AntsyLich) (f3a2f56)

Checksums

Variant SHA-256
Universal dc0770673982236eb572a2f801705b2f719ef9147e3abeeff10b0b29f7557f80
arm64-v8a 45899c41516daf34b710ee9d523bf07f56d9fa714c576677b7108229858c7acb
armeabi-v7a a3a4917e9677c63e59ac8ccfa04163810ea00406bbfa24a1c386785e71ddf5e3
x86 18c6b31d126f9bcd258ebe4a9362c0046293ec9405f77beac7a9828099ea4d78
x86_64 7fc299a3165c8782603c44f41c7ce5301cab3336ecbbe07d765e42c4dd1871b3

If you are unsure which version to choose then go with mihon-v0.17.0.apk

Contributors

  • @AntsyLich profile picture
  • @Splintorien profile picture
  • @Shamicen profile picture
  • @sirlag profile picture
  • @Animeboynz profile picture
  • @FooIbar profile picture
  • @WerctFourth profile picture
  • @mm12 profile picture
  • @shabnix profile picture
  • @NGB-Was-Taken profile picture
  • @jackhamilton profile picture
  • @jobobby04 profile picture
  • @MajorTanya profile picture
  • @xbjfk profile picture
  • @ivaniskandar profile picture
  • @Smol-Ame profile picture
  • @bapeey profile picture
  • @brewkunz profile picture
  • @wwww-wwww profile picture
  • @raxod502 profile picture
  • @Naputt1 profile picture
  • @vetleledaal profile picture
  • @Redjard profile picture
  • @AwkwardPeak7 profile picture
  • @CrepeTF profile picture
  • @mainrs profile picture
  • @Cologler profile picture
  • @cuong-tran profile picture
  • @abdurisaq profile picture
  • @beer-psi profile picture
  • @kaiserbh profile picture
  • @ghostbear profile picture
  • @null2264 profile picture
  • @Secozzi profile picture
AntsyLich, Splintorien, and 32 other contributors

View the full release here