Sunday, March 10, 2024

Jailbreaking the iPod Touch


Been using the iPod Touch for many years now. Never felt the need to jailbreak it. I mainly use them to play podcasts and stream online radio stations - either through the Sony dock or using the built-in speakers.

Just the other day, my Bose SoundTouch Portable died, so I'm thinking of replacing it with an iPod Touch on an Altec Lansing dock. Interesting thing I noticed - while one iPod Touch has the TuneIn Radio app, the other one does not. Worse, it can't even connect to the App Store to download it. Both 4th-generation and running the same iOS version (6.1.6) and on the same WiFi network. The only reason I can think of is that Apple must've cut off access to the App Store for unsupported devices.

I started reading online articles about jailbreaking iOS devices and that sounds like the solution I'm looking for, so here we go.

The articles suggest using checkra1n or p0sixpwn. checkra1n is currently only macOS or Linux. Tried to download the dmg on my MacBook Pro and got blocked/deleted by the company firewall/antivirus. Used my personal PC to download p0sixpwn instead. One thing to note, p0sixpwn requires iTunes version 11.1.5 for best results. iTunes doesn't need to be set up - it just needs to be installed on the PC.

After jailbreaking the iPod Touch, it didn't feel any different. There's just a new app called Cydia and that's it. After some more research, apparently, you'll need to install the tweaks or apps that you want from the default repositories / sources. If what you're looking for is not available, you'll need to add extra repos or sideload IPAs. Heck, you can even install other package managers like Sileo, Zebra, or Installer 5.

Now, sideloading IPAs is a whole different topic. Normally, Apple wouldn't let you sideload unsigned or expired IPAs, so either you'll have to set up or install an alternate app store and download from there. Or you can use Cydia Compactor to sideload IPAs, but the software asks for your Apple credentials and the IPA will need to be re-signed every 7 days. And there's also a limit of how many IPAs you can install. People with paid developer accounts have up to 1 year before re-signing is required. Sounds like a lot of work to me. All I want to have an old version of the free TuneIn Radio app installed.

That's where Karen's AppSync Unified comes in. "AppSync Unified is a tweak that allows users to freely install ad-hoc signed, fakesigned, unsigned, or expired IPA app packages on their iOS devices that iOS would otherwise consider invalid."

One option is where you download IPA from an online library via Safari. Send the file to the Filza file manager using the share option, then install from there. 

For me, instead of installing Filza, I installed OpenSSH and MobileTerminal instead. Once the IPA file has been downloaded to the iPod Touch (or copied over via WinSCP), it's just a matter of running appinst (e.g. appinst /var/mobile/app.ipa) - either locally using MobileTerminal or remotely using OpenSSH via Putty.

In summary:

  1. Download and install iTunes version 11.1.5
  2. Download p0sixpwn
  3. Configure p0sixpwn to run in Windows 7 compatibility mode
  4. Start p0sixpwn as administrator
  5. Disable passcode lock on the iPod Touch, the connect it to the PC
  6. p0sixpwn should detect the iOS device. Click on Jailbreak to start the process
After reboot, you should now see Cydia installed. On first run, Cydia will start refreshing itself. In my case, I had to disable Pihole for Cydia to work.

Post-install steps:
  1. Install SSLPatch tweak.
  2. Download SSL certificate from https://cydia.invoxiplaygames.uk/certificates/
  3. Add Karen's Repo
  4. Install AppSync United, Appinst and MobileTerm
  5. Install OpenSSH.
  6. Change password for root (default password is alpine) and mobile users

Where to find IPA files? From your iOS device browser, you can try https://mtmdev.org/webapp/ Click on the selected app to install.

You can also find some collections on archive.org

Saturday, September 9, 2023

Pixel Experience (Android 11) on the Samsung Galaxy S6

Having recently installed Pixel Experience on the Redmi Note 4X, I might as well do the same for the Samsung Galaxy S6.

Checked out the ROMs on XDA Developers for S6 (zerofltexx) and settled on the Pixel Experience (Android 11). Not the newest one, but most of the stuff works. Latest build was released July 2021, but if you trawl through thread, famemanoan posted a newer build - August 2022.

For that, you'll need a new OrangeFox recovery. First things first, copy the recovery zip and ROM to the phone's root directory.

To flash OrangeFox recovery:

  1. boot to recovery by pressing Home+VolUp+Power
  2. flash the OrangeFox recovery zip
  3. phone will auto-reboot to recovery

To flash the ROM:

  1. ROM install instructions say to wipe cache, system and vendor partitions
  2. However, OrangeFox wiki says to NEVER wipe system
  3. As a compromise, I only wiped dalvik cache, cache, and data. Format data. Boot to recovery.
  4. After reboot, the files on the internal storage are gone, so no ROM to flash. Good thing MTP is enabled (and works), so I was able to re-copy the ROM to /sdcard. Whew!
  5. Flash ROM
  6. Boot to recovery
  7. Wipe cache again. Format data again.
  8. Boot to system.

Checked Google Photos, and this ROM is able to upload unlimited photos in Storage Saver quality. Not bad!

Friday, September 8, 2023

Pixel Experience (Android 13) on the Redmi Note 4X

The wife hasn't been using the Xiaomi Redmi Note 4X (mido) ever since she got the Samsung Galaxy S10. I upgraded it to LineageOS 18.1 (Android 11) a long time ago and haven't been used since. Was planning to sell the phone, so it's time to upgrade again.

Even though there is updated / latest LineageOS for mido, I decided to go with Pixel Experience because I've never tried that ROM before. And since there is official support for mido, why not?

On XDA Developers, this is the official thread for Pixel Experience (Android 13) for mido: https://forum.xda-developers.com/t/rom-official-stable-13-mido-pixelexperience-aosp.4423487/

You can download the ROM here: https://get.pixelexperience.org/mido

Recommended custom recovery here: https://sourceforge.net/projects/nranjan-17/files/RETROFIT%20OrangeFox/OrangeFox-R11.1-A12-RETROFIT-Unofficial-mido.zip/download

Install guide here: https://raw.githubusercontent.com/NRanjan-17/Pixel-Experience-Releases/main/RETROFIT_GUIDE.md

Pixel Experience website itself has a wiki and install notes for mido.

In any case, basic steps are below.

1) Flash RETROFIT recovery

  • Reboot to your existing recovery (VolUp + Power)
  • Wipe cache, data, system, vendor and Format Data
  • Flash the RETROFIT Supported Recovery zip
  • Reboot to Recovery (If flashing OrangeFox, it will be automatically rebooted to OrangeFox Recovery)

2) Wipe and format device


  • After you flash and boot into the new OrangeFox recovery, format data and reboot to the recovery again. 
  • Now, wipe all the partitions (i.e. cache, metadata, data, internal storage). Wiping Internal might throw an error because of missing /data/media/ which is okay, reboot to recovery again.  
  • This format data and wiping of other partitions is required only once every clean flash.
  • NB : encryption is now enabled by default and that is why a clean flash would cost you a data format.

3) Flash Pixel Experience ROM

  • Flash the ROM
  • Format data 
  • Reboot to system (it may show no os installed ignore it, if it doesn't boot then flash the ROM again and reboot to system)

As far as I can tell, that Xiaomi phone became a Pixel device, except for the Camera app.

With Google Photos, it detects the handset as a Pixel and allows unlimited photo/video uploads at original quality. Bonus!

Thursday, August 24, 2023

How I Got Myself a Pixel 6a


I've been using the Samsung Galaxy S9+ for more than four years now. Do I really need a new phone? Not really. Everything still works fine. Except that I noticed that the battery now lasts only a day (with minimal use). The camera app stutters once in a while when taking pictures. Some apps also take a few microseconds longer to start. Not a dealbreaker, but it got me looking around.

Just the other day, Telstra was selling the Pixel 7 for $499.50. Now that's a cracker deal. Only issue is I'm not a Telstra subscriber, so I'm not gonna be able to get it for that price. Checked with my siblings and parents. None of them used Telstra before - not even Telstra's cheaper MVNOs like Belong or Boost Mobile. I mean, there's so many cheaper alternatives out there, why would you? I checked with my sister-in-law, and turns out she's a Telstra subscriber. Yes!

Got her username and password and tried to place an order. Ordering page wants to verify the home address and 2FA for the account. Passed through that hurdle; now it wants to see some identification. In the interest of privacy and saving time, I went over to SIL's place during lunch break to get this sorted out. Unfortunately, Telstra won't accept her driver's license - the same ID she used to set up the account. Bummer.

Next opportunity came up when Google Store itself had the Pixels on sale - $399 for the Pixel 6a (down from $699) and $699 for the Pixel 7 (down from $999). Stack that with a 10% StudentBeans discount ON THE RRP, you can get the Pixel 6a for just $339.10! Was supposed to be working, but just can't let this pass.

Of course, the key here is to get a StudentBeans code in order to get that special price. Not being a student myself, I (and hundreds of other OzBargainers) are relying on the Code Giveaway Megathread to get a working code. The tricky thing is, you're not allowed to ask for a code. Someone will just post a code if they feel like it. After hundreds of page refreshes, I managed to snag a code that wasn't used within 5 seconds of it being posted. Paid and checked out successfully! Checked the delivery address on the invoice. Wrong address! Cancelled the order and quickly put in the correct address, and of course the code is now invalid.

After what seemed like an eternity, I got another working code. Verified the address this time and paid. Google Store says session has expired. Refreshed, checked the address again, paid, and went through succcessfully. Looked at the invoice - paid full price! For some reason, the discount code didn't get applied after the page refresh. Cancelled the order again.

At this point, there's less and less students posting codes on the thread. Every new code posted gets used literally within seconds. I've resorted to downloading a browser extension that refreshes the page very 3 seconds. A few desparate/brave souls started asking for codes openly, and their comments get removed. The smarter ones simply comment that it's so hard to get codes, etc. etc. Out of the blue, I get a DM with a code from a kind soul. By now, the Sage and Chalk options are out-of-stock. And just like that, I got myself a Charcoal Pixel 6a.

Tuesday, September 20, 2022

Resurrecting the 2009 iMac

Got hold of a 2009 21.5" unibody iMac.

Powered it on and was greeted by the startup chime and the Apple logo. Looking good so far. Progress bar steadily moving all the way till the end. Waited for more than 10 minutes, but still not loading the OS. It's most likely a really old CPU, but this is too long.

Suspecting a corrupted OS, I booted into macOS Recovery using Ctrl-R. There's a 1TB hard disk with 1.3GB used. Doesn't look like there is a proper OS on this thing though. Ran the Disk Utility to erase the disk - said "Unable to unmount disk". Chose the Install macOS option, but the 1TB hard disk does not show up as an option. First Aid reports the hard disk to be fine.

My guess is that because I'm running the recovery image from the HDD itself, Disk Utility is not able to unmount the disk. So the next step is to build a bootable USB stick, and run the erase/install from there. 

Downloaded a bunch of DMGs and APPs, tried TransMac and command-line, but the USB sticks either won't be detected during boot-time, or getting a forbidden sign as soon as selected, or won't even get created by the createinstallmedia utility.

Another option is to replace the hard disk and try Internet Recovery, which bypasses the hard disk altogether. However, this requires me to open up the iMac, which doesn't look easy (if you don't have the right tools).

So I simply took the easy way out. Created a bootable installer of CloudReady (now ChromeOS Flex) and boom! Mission accomplished.


Sunday, June 12, 2022

Reinstalling Windows on Lenovo IdeaPad Miix 320-10ICR

My wife has been using the Lenovo IdeaPad Miix 320 for many years for one thing and one thing only - watching videos on KissAsian and YouTube.

It's a neat little tablet that does the job well. She doesn't even need to have the physical keyboard attached. Any typing required is done on the onscreen keyboard. The only complaint is that it's starting to get a little bit sluggish. All those Windows updates have used up all the free disk space, and the thing can't take any more new updates. The 32GB eMMC wasn't much to begin with.

I've always reinstalled the latest Windows 10 Pro to get around the updates issue, but looks like I need a more permanent solution. Given that the tablet is only used for media consumption, I've decided to just install Windows 7 on it. No performance degradation as there are no expected Windows updates. Turns out Windows 7 won't install as it's missing/asking for some device driver that it can't find.

Bumped it up to Windows 8.1. The operating system installed just fine, but the touchscreen does not work. Same goes for Peppermint OS. Need the touchscreen to work, so that we won't need to have the physical keyboard attached.


Looks like my only option is to just install Windows 10, then disable Windows Update. Version 21H2 didn't work. The ISO booted just fine, but the screen was all garbled. I can move the mouse and see something moving, but no way to complete the install. Then I read somewhere that Version 2004 and up won't work on the Miix 320. Tried Version 1909 and that one installed just fine. Took a looong time to set up though because every time I tried to create an offline account and set up the password, the system would switch to the "Just a moment..." screen then power off or hang.

I reckon this is because I've already set up the wireless network and it's trying to install drivers, while I was finishing the setup. After what felt like a dozen forced reboots, I managed to log in to Windows and set up my account. As for disabling Windows Updates, lots of tutorials out there, but none of them supposedly work anymore. Will just just reinstall the latest Windows the next time it slows down again.

Saturday, January 29, 2022

Field of Mars Reserve and Buffalo Creek Reserve

Field of Mars Reserve is a protected bushland reserve in East Ryde. Best way to start exploring the reserve is to use the main entrance along Pittwater Road. There's ample free parking when you get off the roundabout. There is a Visitors Centre nearby, which is open during weekends.

From the reserve entrance, you have a choice of four walking trails. The shortest is Doyle Loop, which 1.2 kilometers, 45 minutes return with a grade of medium. Next shortest is the Warada Loop - 1.9 kilometers, 60 minutes return, easy grade, which is the one we tried. You can find the walking trail map here.

We found the track (relatively) slow-going, and the kids didn't like the occasional spider web. So instead of taking the return loop, we pushed on north and took the Cressy Road exit. From there, we took the long way to the parking lot. If you intend to do the same, there is a cafe called Fox and Bird along Moncrieff Drive, in case you need some refreshments along the way.

Across the street is the Buffalo Creek Reserve. Had to give this a visit, as the kids spotted the shaded playground. Further beyond is a walking/bicycle track around a cricket oval. We almost missed it as we walked around the oval, but I knew what I was looking for.

On one side of the oval, you'll find access to The Great North Walk, which goes from Sydney to Newcastle. Of course, no 250-km. walk for us. We took the mangrove boardwalk loop and headed back to the oval.

Saturday, October 9, 2021

TomTom Map 2021 Update

Can't believe it's been over two years since I last updated my TomTom maps. To be honest, since the last update back in 2019, I've never used my TomTom PND even once.

Most of the time, I just use Google Maps on my Android phone. Cellular connectivity used to be an issue on long drives (depending on where you're going), but not anymore. And even then, you can download Google Maps for offline use.

In any case, let's see where things stand. Seems to be GPS Underground is no more. Good thing Navitotal is still around.

Got the latest 1075 maps here: https://www.navitotal.com/topic22415.html

And the meta codes here: https://www.navitotal.com/topic22420.html

Downloaded the newest 1075 map that is compatible with my v9.530 navcore.

Basically same upgrade procedure as before:

  1. Make a backup of the TomTom drive.
  2. Remove the old Australia maps folder and copy over the new one.
  3. Copy over the street cam files (from the backup folder) or new ones if you have.
  4. Run FastActivate (with the latest meta codes) to activate the maps.

In my case, activation was successful, but device was not able to detect the new map. Had to downgrade to an older map (one that is actually shown on the compatibility chart) for it to work.

Monday, October 4, 2021

Xiaomi Mijia Temperature and Humidity Monitor 2


Bought a few of these to place around the house to check the temperature once in a while.

Xiaomi has released different temperature and humidity sensors, but the ones I got are the LYWSD03MMC model. Instead of a AAA battery, these uses a CR2032 battery, which is included. Just pull out the clear plastic tab to turn them on.

First impression is that these things are deceptively small (43 x 43 x 12.5mm). The marketing pictures always make them look like they're as big as your hand, while in fact, you can probably fit 3 or 4 of these on your palm.

The square LCD display shows the temperature and the humidity and a smiley face and not much else. You can use the Mi Home app to view historical data and supposedly integrates with home automation hubs / IFTT to switch on humidifier when indoor humidity is too low or air-conditioner when indoors temperature is too high. Me, I just want to know the temperature.

Looks like these Xiaomi Mijia sensors are popular enough that someone took the trouble to hack them. Can use this to flash custom firmware on the device to unlock additional customization options.

The neat thing about the project is that everything is done over-the-air on a browser. No need to open up the device or make any hardware changes.

Everything is explained in detail on the Github page, but in summary:

  1. Use a browser to access the webupdater page
  2. Press "Connect" and pair with the target device once detected.
  3. Activate, then flash custom firmware, which takes a couple of minutes.
  4. Once flashed, reconnect to view or change configuration.

In my case, I do the following:

  • Change device name, as I have a few of these sensors, so I name them differently - "Set New Name"
  • Tick "Comfort," "Show batt," and "Clock" to make the LCD display cycle through the different LCD screens.
  • "Set Time" to set the device to the local machine time

I thought of monitoring these babies by running Home Assistant on my Raspberry Pi Zero W, but I seriously doubt the Pi has the grunt to make it work. Oh, well.