Archive of

Applications I am using on LikeBook S61's android 4.2 system

Although the Android 4.2.2 system that comes with the S61 is outdated, KOReader still runs very well on it (remember to turn off the full-screen switch). The following list is the result of many nights spent searching and trying various versions before finally deciding to keep them. Even if it can be useful to a friend, I am very pleased.

APK FileDescription Reader, just installed it out of habit as a backup reader. Personally, I find its reformatting of scanned PDFs to be better than KOReader's.
com.gacode.relaunchx_200106000.apkA file manager friendly to e-ink screens.
com.UCMobile.intl_11.4.0.982-10384_minAPI14_apkmirror.apkUC Browser, better than the stock browser, allows easy page scrolling when browsing web pages.
english-dictionary-offline-4-2.apkA classic offline dictionary.
GoldenDict-1.6.7-Android-4.1+-free.apkA domestic dictionary that supports Stardict format, so you can use the dictionaries you have for KOReader directly with it. Why the need for a separate dictionary program? Because the OCR part of KOReader for Android 4.2.2 has a bug and can't OCR before looking up words. When encountering unfamiliar words while reading scanned PDFs, having an independent dictionary to look them up means you don't have to reach for your phone again.
koreader-v2023-06-1.apkThe main reading program, I use it for reading every day. the stock launcher.
SimpleSSHD-27.apkA small SSH server, convenient for syncing ebooks with the rsync program.
tusky.apkThe only Mastodon client version I found that still works for Android 4.2, needs to be used with a account.

For ease of downloading, I have compressed the above APK files into a zip package, feel free to download if needed.

中文版 (Chinese version)

虽然S61自带的 android 4.2.2 系统已经老态龙钟,然而 KOReader在上面跑得还是非常好(记着关掉 full screen开关)。以下清单是我花了不少个夜晚寻找尝试各种版本之后最后决定留用的结果,哪怕能对一个朋友有用,我也很欣慰了。

  • 多看阅读,只是出于以前的习惯装了它做为备用的阅读器。我个人觉得它的扫描版pdf重排比koreader的要好用。
  • com.gacode.relaunchx_200106000.apk 一个对 e ink 屏友好的文件管理器
  • com.UCMobile.intl_11.4.0.982-10384_minAPI14(armeabi-v7a)(nodpi) UC 浏览器,比自带的那个好用,在浏览器网页时可以方便的上下翻页
  • english-dictionary-offline-4-2.apk 一个经典的离线词典
  • GoldenDict-1.6.7-Android-4.1+-free.apk 一个国产词典,支持 stardict 格式,所以你用于 koreader的词典,能直接另拷贝一份给它用。为什么需要单独的词典程序?因为支持android 4.2.2 的koreader程序ocr那部分有bug,没法先ocr再取词。在读扫描版pdf时遇到的生词,有个独立的词典查词,就不用再去摸手机了。
  • koreader-v2023-06-1.apk 主阅读程序,日常都用它看书
  • 代替自带的launcher
  • SimpleSSHD-27.apk 一个小巧的ssh server,方便我用 rsync 程序同步ebook
  • tusky.apk 我找到的唯一尚可用于android 4.2的mastodon 客户端版本,需要配合 账号服用。


A reliable/fast way to know an APK file's api level

I googled quite a while and found the following way is the best:

If you have Android Studio installed, using the "Build > Analyze APK" menu command is indeed a convenient way to quickly determine the supported API level of an APK file. Here are the steps:

Open Android Studio.

Go to "Build" in the top menu.

Choose "Analyse APK..."

Navigate to and select the APK file you want to analyze.

Android Studio will display information about the APK, including the minimum and target API levels.

Surely if you don't have Android Studio installed, then this way cannot help.

Moq Tips 2 - check if a log message with a specific prefix/suffix and call a method with an object having a specific field value

  1. To check if a log message with a specific prefix is logged, you can use Moq's Verify method along with an appropriate assertion.
_logger.Verify(logger => logger.logInformation(
    It.Is<string>(s => s.StartsWith("specific prefix"))), Times.Once);
  1. To verify that a method is called with an object containing a specific property value, you can use Moq's It.Is<T> matcher along with a lambda expression. Here's an example:

    _mockObject.Verify(x => x.MyMethod(It.Is<MyObject>(
     obj => obj.PropertyValue == expectedPropertyValue)), Times.Once);
  2. Correctly returns null: Sometimes we need to set up a Moq mock to return null but cannot directly do it as Moq doesn't allow. Please check the following way that you should use:

    b => b.GetBookStoreAccountByUserName(It.IsAny<string>()))

The key is to use (BookStoreAccount)null to explicitly cast null to the expected return type.

My New 'Toy' - E-ink Screen E-reader BOYUE LikeBook S61

As a software developer, I spend my working hours glued to screens, and in my downtime, it's either scrolling through social media or reading e-books, all on screens big and small. Often, before it's even time for a break, my eyes are already dry and strained. I can't help but reminisce about my old Kindle from years ago, lost goodness knows where. I need to get myself an e-ink device solely for reading, and it must run on Android so I can use my beloved KOReader on the ink screen.

With a limited budget and primarily for reading, my expectations aren't high: the screen doesn't need to be large, the CPU doesn't need to be powerful, but it'd be nice to have ample storage for books.

A search on AliExpress caught my eye with this BOYUE e-reader.

BOYUE LikeBook S61, 6-inch, 4-core 1.6G CPU, 1GB RAM, 16GB Storage NZ$ 102.97, with shipping $4.25 plus 15% GST, totaling $122.42.

Surely, this is a clearance sale of old machines. Because the description stated that the system is Android 4.4, quite outdated. But optimistically, I thought, there should be third-party ROMs for flashing, so I placed the order. The logistics were quite efficient this time, and after only about a dozen days, I received it on March 1st. The system is not 4.4 but even older, 4.2.2. After searching online, I couldn't find a suitable ROM for flashing. So, in the days after receiving the device, I had to make do and find software online that still supports Android 4.2.2 and meets my needs. This process wasn't smooth, and at one point, I even considered giving up and returning it. However, after the initial setbacks, things started to go more smoothly.

After some tinkering, using this device has become quite comfortable, dare I say, even enjoyable!

I'll spare you the details of the hardships endured during repeated attempts. Today's main purpose is to share my findings. If it helps any fellow buyer of this brand-new old machine, then I couldn't be happier.

  • Main reading program: koreader-v2023-06-1.apk
  • Launcher:
  • SSH server: SimpleSSHD-27.apk
  • Browser: com.UCMobile.intl_11.4.apk
  • File Manager es-file-explorer-4-2.apkrelaunchx_200106000.apk
  • Mastodon client: tusky.apk

I'll find some time to bundle these APKs and throw them onto a rickety VPS for everyone to download. After all, finding these installation packages took quite a bit of my time.

2024-03-24 Update I've revised this list, packaged these APK files, and written a brief explanation. The download link is also in this explanation, so feel free to download if needed. Link to the explanation

我的新“玩具” - 电子墨水屏阅读器 BOYUE LikeBook S61 (Chinese Version)

身为软件开发者,我工作时盯着屏幕,工作之余除了刷社交媒体就是看电子书,还是大大小小的屏幕。往往不等到休息时间,眼睛就干涩得不行。我不禁怀念起我那台多年前就不知道丢到哪里的老Kindle。还是要整一台e-ink 设备专门读书,而且一定得是安卓系统,这样我就能在墨水屏上用我最爱的 KOReader阅读器读书了。


AliExpress 上一通搜索,这台BOYUE 阅读器吸引住我的眼球。

BOYUE LikeBook S61 6 inch 4核1.6G CPU 1G RAM 16G Storage NZ$ 102.97 运费 $4.25 再加上 15% 的GST,到手价才 $122.42。

这定然是老机器清仓甩卖。因为描述里写系统是Android 4.4,相当老了。但乐观的我想,应该总能找到第三方ROM刷机吧,于是乎就下单了。这次物流蛮给力,只等了十几天,我3月1日就收到货了。系统不是 4.4, 而是更老的 4.2.2。网上一通搜索,并没有找到合适的ROM刷机。于是乎拿到机器这几天,我只能因陋就简,在网上找能满足我需要的尚支持 Android 4.2.2 版本的软件。这个过程并不顺利,我甚至一度考虑别折腾了,要不干脆退货算了。然而在最初的挫折之后,后面却是越来越顺利。


中间反复尝试的艰辛略去不提,今天这篇主要是分享一下我的成果, 如果能帮到也买了这台全新的老机器的网友,那我就再开心不过了。

  • 主阅读程序 koreader-v2023-06-1.apk
  • Launcher
  • SSH server, SimpleSSHD-27.apk
  • Browser, com.UCMobile.intl_11.4.apk
  • File Manager es-file-explorer-4-2.apkrelaunchx_200106000.apk
  • Mastodon client tusky.apk


2024-03-24 Update 我修订了这个列表打包了这些apk文件,并写了一个简要的说明, 下载链接也在这个说明里,欢迎需要的朋友下载。