Making flashable zip files for Android devices can be… frustrating.
For those who have never tried, here are some of the more irritations:
You use a very limited scripting language called edify to write your install scripts. So limited, that some people replace the binary (update-binary) used to parse the script (updater-script) with a normal shell script that performs the installation instead. What’s the point of having update-binary and updater-script, then?
Any app installed to /system/ with bundled libraries in the apk need to have those libraries extracted in order to not crash.
Various system files need to be created to grant certain permissions to apps by default, and you need to know the syntax of each one (usually some dialect of XML).
If the correct permissions are not set on an installed file, it can cause the system to bootloop.
The Solution:
I’ve created a program in Go that reads entries from a configuration file and builds a flashable zip for you, while taking care of the implementation for you. The name is simple: Zip Builder.
Features:
Configuration files can be written in JSON, YAML, or TOML.
Supports Android versions since 5.0 Lollipop
Automatic generation of updater-script and an addon.d persistence script.
Automatically extracts libraries from apps being installed under /system/.
Can specify different file or app sources for different versions of Android and/or CPU architectures. updater-script will only install the files for that particular system.
Validate downloaded files with md5, sha1, and/or sha256.
F-Droid interoperability: Specify the repo URL and app’s package name, and zip-builder automatically gets the rest of the app’s information from F-Droid’s repository, including a download link for the latest version of the app.
Remove any files you specify, e.g. apps that you are replacing with your own version or apps/files you just don’t want on your system.
Standalone binaries available for Mac OS X, Linux, and Windows. Android binaries (to use in a terminal app) coming soon.
Linux binaries may be usable with Termux on Android, though this is not tested or supported.
Links
Latest release announcement
Download zip-builder
Example configuration files
Complete documentation
Zips built with this tool
EmojiOne Emojis - Replace the NotoSans emojis with the ones from EmojiOne
F-Droid installer - Includes the F-Droid privileged extension, allowing F-Droid to perform automatic installs and updates.
Hacker bundle - Includes the F-Droid builds of Termux with API, Float, and Widget addons, and Hacker's Keyboard.
Google swipe libs - Includes the swipe libraries for the AOSP keyboard. One zip for all Android versions since 5.0 on all architectures.
microG - Installs the FOSS replacement for Google Play Services, microG. Optionally install the Play Store for downloading apps, using the patched version from NanoDroid.
Google Play Store - choose between the vanilla Google Play Store or the patched one from NanoDroid.
Google Sync Adapters - install the Google sync adapters for use with microG. Install contacts sync, calendar sync, or both.
UnifiedNlp - If you want network-based location without Google Play Services or microG, install this zip. Comes with the Mozilla location backend and Nominatim geocoder backend.
No GAPPS app packs - FOSS replacements for Google Apps packages, provides basic system apps for ROMs running without Google Play Services.. There are multiple tiers of zips you can download, matching the OpenGapps flavors. Click on the link to view the contents of each zip.
microg.zip doesn't flash anything in my redmi 2 oreo aosp. log attached
kurtn said:
microg.zip doesn't flash anything in my redmi 2 oreo aosp. log attached
Click to expand...
Click to collapse
I'm currently working on polishing up a new release of a different project of mine, then I'll have time to look it over.
Per your PM, though, you said busybox wasn't in the location that the zip assumed it was. Can you search through your system and tell me which directories contain either busybox or toybox? (I believe busybox was found in two different folders when I flashed Lineage before)
Shadow53 said:
I'm currently working on polishing up a new release of a different project of mine, then I'll have time to look it over.
Per your PM, though, you said busybox wasn't in the location that the zip assumed it was. Can you search through your system and tell me which directories contain either busybox or toybox? (I believe busybox was found in two different folders when I flashed Lineage before)
Click to expand...
Click to collapse
Just have to search with the right tool. In twrp I see busybox in the expected location.
kurtn said:
Just have to search with the right tool. In twrp I see busybox in the expected location.
Click to expand...
Click to collapse
I had a little bit of time to flash a beta Oreo ROM for my phone and had no issues with things getting copied to my system correctly. If busybox is in the location that the script expects it to be, it's not obvious what the problem is.
The log you gave me seems to show that it mounted your system and data partitions correctly, detected that a folder did not exist, and then exited normally.
Have you tried an updated zip recently? A little while back I had the script output the found values for Android version and CPU architecture. It's possible it got fixed along with whatever I was working on at the time.
Re-downloaded microg.zip from @Shadow53's page. Now it works as expected.
Pushed a commit that should hopefully fix the issue @marcdw reported in the MicroG thread at https://forum.xda-developers.com/an...y-services-t3217616/post74531435#post74531435
@marcdw, I rebuilt the zips with a build containing the fix. Can you confirm that the libraries are now loading correctly? Things are working on my end, except for the patched Play Store requiring a reboot before working.
@rottenwheel do you really mean xposed? I have the impression magisk gets more attention.
@Shadow53,
I had actually edited the updater and add-on.d scripts to use the short names on most of your zips and all was good.
After work I'll start anew using your rebuilds. ?
ZTE Axon 7 A2017U, Dark ROM, microG (NoGAPPS), Tapatalk 4.9.5
rottenwheel said:
As read on the microG thread:
Although XDA community and most Android modders tend to side with Xposed-based solutions, I need to emphasize this is not the absolute case. I rather to stay away from it as much as I can, because it's given unstability to my devices as soon as I start tinkering with some modules; as soon as I get it removed from my setup, bugs are gone. I don't want to engage in unrelated discussions here, I just wanted to let you know your zip solutions have been working like a charm and many of us will miss if you lose enthusiasm about it. Keep it up and rocking. Thanks to you, getting microG onto our handsets is easier.
Click to expand...
Click to collapse
NanoMod is optionally a Magisk module and has nothing to do with Xposed, though I appreciate the sentiment.
*If* I were to lose interest in this project or in providing scripts, the code for the zip-builder is open source and contains the build recipes I use for all of the zips I provide, so it shouldn't be too hard for someone to pick up if they wanted to.
That said, I have no intention of stopping providing zips any time soon, though development on the zip-builder itself is slow because university is keeping me busy. I use my zips too, so I gotta be at least a little invested
Shadow53 said:
@marcdw, I rebuilt the zips with a build containing the fix. Can you confirm that the libraries are now loading correctly? Things are working on my end, except for the patched Play Store requiring a reboot before working.
Click to expand...
Click to collapse
Howdy sir. My apologies for not getting back. Work got in the way.
The zips work perfectly. I setup two ROMs on my Axon 7 with microg-playstore, no-gapps, and hacker. Not a single hiccup with the included apps or Play Store. All is good.
Must say again, I like the apps included in no-gapps.zip. Most of those I use and have to get manually from F-Droid.
Perfect with Dark ROM which has no apps or launcher and thus no worries of duplicate functionality (like two cameras, two calendars, etc.).
I see Firefox has replaced Lightning. Haven't used Firefox since v28 so I get to see what the new one is all about.
??
LG G3 D851, PAC-MAN LP ROM, MultiROM, Tapatalk 4.9.5
Awesome. Been looking into how to get F Droid and Micro G plus most other things to work for my sm-g900p!
Really not liking the way Google has been going.
So looking into HOW to get that this to work for me.
From what I had seen so far....
PLEASE keep working on this!!
Thank you Shadow 53!
marcdw said:
Howdy sir. My apologies for not getting back. Work got in the way.
The zips work perfectly. I setup two ROMs on my Axon 7 with microg-playstore, no-gapps, and hacker. Not a single hiccup with the included apps or Play Store. All is good.
Must say again, I like the apps included in no-gapps.zip. Most of those I use and have to get manually from F-Droid.
Perfect with Dark ROM which has no apps or launcher and thus no worries of duplicate functionality (like two cameras, two calendars, etc.).
I see Firefox has replaced Lightning. Haven't used Firefox since v28 so I get to see what the new one is all about.
??
LG G3 D851, PAC-MAN LP ROM, MultiROM, Tapatalk 4.9.5
Click to expand...
Click to collapse
I'm glad to hear that it's working for you. I'll be posting a new release on GitLab around the end of the week (yay finals...)
Regarding the no-gapps zip, most included apps also remove the AOSP equivalent if present, with a couple exceptions such as Silence for SMS not removing the default SMS app and Firefox not removing the built-in browser, both to avoid potential issues.
godofsalt said:
Awesome. Been looking into how to get F Droid and Micro G plus most other things to work for my sm-g900p!
Really not liking the way Google has been going.
So looking into HOW to get that this to work for me.
From what I had seen so far....
PLEASE keep working on this!!
Thank you Shadow 53!
Click to expand...
Click to collapse
Development of the zip builder is stalled right now, largely due to time. It works great for what I need at the moment, but I will work on bug fixes for things that come up. The zips are rebuilt every week by a cron job on the server, though packages containing the official Play Store may not get updated if opengapps updates their version (which changes the URL). I try to catch that, but I don't always have time to check.
I'm considering putting together a comprehensive gapps removal zip that should remove as much trace of Google as possible from the device, including any application data. That will take some investigation, though, and so it shouldn't be expected soon. If/when it comes, it'll largely be for removing installations by opengapps and Beans gapps, as I can't account for all differences between OEMs.
Hey no worries about updates being "stalled"!
I know what your going though believe me. Can be such a frickin headache!!! Not to mention anxiety that some poeple get this time of the year!
AM certainly glad to hear that you are still somewhat working on it though. Plus frim what I can see, this has not been out long, so I don't thing others may even know about it!
I believe they will!!!
Running paid apps having a license verification at runtime
I installed a recent LineageOS for microG (build date 11/29) on my Samsung Tablet SM-T800 (chagallwifi) and added root by flashing the zip provided by LineageOS.
I first tried Yalp Store (version 0.29, downloaded from fdroid), but then figured out that I cannot use any paid apps that make use of a license validation at runtime. However, there are some paid apps that I require.
I did some reading and it seems like the installation of the original Google PlayStore is a solution.
So here are my questions:
1) Can I get paid apps running when I install the original PlayStore as a system app following the procedure described on the blog shadow53 (sorry, cannot post the link cause I am a new user, but it is easy to find when searching for 'shadow53 android downloads')?
2) Is there anything I have to do in addition to flashing the PlayStore zip?
3) Does flashing the original PlayStore give rise to any conflict with the FakeStore that comes installed as part of microG? If so, how do I remove the FakeStore?
ebiel said:
I installed a recent LineageOS for microG (build date 11/29) on my Samsung Tablet SM-T800 (chagallwifi) and added root by flashing the zip provided by LineageOS.
I first tried Yalp Store (version 0.29, downloaded from fdroid), but then figured out that I cannot use any paid apps that make use of a license validation at runtime. However, there are some paid apps that I require.
I did some reading and it seems like the installation of the original Google PlayStore is a solution.
So here are my questions:
1) Can I get paid apps running when I install the original PlayStore as a system app following the procedure described on the blog shadow53 (sorry, cannot post the link cause I am a new user, but it is easy to find when searching for 'shadow53 android downloads')?
2) Is there anything I have to do in addition to flashing the PlayStore zip?
3) Does flashing the original PlayStore give rise to any conflict with the FakeStore that comes installed as part of microG? If so, how do I remove the FakeStore?
Click to expand...
Click to collapse
1. Yes, you will be able to check licenses at runtime with the Play Store installed.
3. Yes, they use the same package name, so having both apps installed causes a conflict. Depending on where the FakeStore is installed, the Play Store zip may recognize where it is and automatically remove it for you. You will see some output while flashing, something like "Deleting existing file /system/priv-app/Phoneksy" if it was discovered (file path may be different).
If it does not automatically remove FakeStore, find the directory it is installed in and delete it, then on next boot modify the playstore addon-d script to delete that directory. You should see where and what to change when you open the file. If you do not make this change,
2. You may have to manually remove FakeStore with the above process. You should also look at https://shadow53.com/android/no-gapps/faq/playstore-not-loading/ regarding other gotchas with getting the Play Store running and https://shadow53.com/android/no-gapps/faq/playstore-incorrect-signature/ if you use the patched version of the Play Store.
The addon.d survival script dosn't work on my rom (play store patched). I use lineageos with microg on nexus 7 (flo).
memarama said:
The addon.d survival script dosn't work on my rom (play store patched). I use lineageos with microg on nexus 7 (flo).
Click to expand...
Click to collapse
Whether addon.d stuff works depends on the ROM. Some ROMs have a backup feature during flashing but a lot do not. Does LOS support addon.d backups?
ZTE Axon 7 A2017U, Dirty Unicorns UNOFFICIAL v11.7.2 ROM, Tapatalk 4.9.5
memarama said:
The addon.d survival script dosn't work on my rom (play store patched). I use lineageos with microg on nexus 7 (flo).
Click to expand...
Click to collapse
LineageOS has addon.d sopport. Maybe you should post a recovery. Log
memarama said:
The addon.d survival script dosn't work on my rom (play store patched). I use lineageos with microg on nexus 7 (flo).
Click to expand...
Click to collapse
After installing the microG Lineage fork on my own device to test, I realized that the Play Store zip marks FakeStore as something to remove on initial installation, but not across system updates. The addon.d script doesn't re-remove FakeStore.
Try downloading the latest version of the zip and installing it. FakeStore should stay uninstalled now.
In other news, I've decided to make my no-gapps zip into multiple, similar to the various OpenGapps zips. This means a larger selection of open source apps that can be installed, including some more replacements for AOSP apps. I'm working through a couple bugs right now potentially related to these zips, then I'll add an update with more details.
so recently I accidentally wiped everything on my phone except TWRP. Then I managed to boot up the phone with liquid remix installed with android 9.0 and now my phone is missing the Samsung apps (which I want on my phone) how can I get them back is there a flashable file or any installable pack I really want them back
so if someone can help please tell me what to do I will really appreciate it
Aosp based roms and Samsung apps usually don't mix very well.
You could backup your Samsung apps using Titanium backup, then try to install them one by one in your android 9.
You could also Google for a site that has Samsung apps apk's.
Don't expect much success ?
Sent from my SM-J700F using Tapatalk
I have the APK s I just can't download them to my device if you know how to install them can you help me or redirect me to someone else that knows what to do
I suppose you've enabled install apps from unknown sources in settings.
Try to install as you would any apk, i.e. open in file explorer.
As mentioned before, don't expect them to install anyway (maybe 1 out of 20??); most are not compatible with aosp roms.
For your aosp custom rom - look for similar gapps or apps from the app store or XDA.