How can I install Google Apps on Cyanogenmod for the Samsung Galaxy S2 (i9100)? When I try to install the latest version of Open GApps onto my phone using adb sideload, and the default CM Recovery that comes with CM 13 for the Samsung Galaxy SII (i9100). However, I get the error message, "Failed to set up busybox."  The suggested solution, which is to use TWRP recovery instead of CM, I have no idea how to do because I don't know where to find a kernel, with TWRP recovery, that is compatible with CM13. I can't find kernels for CM12, since many of the download links on sites like xda-developers.com are dead. 

I tried to install with CM12 and CM13 and I get the same result.

I successfully installed a copy of busybox onto /system/bin. I first tried installing Open GApps via adb sideload however, this failed. Running adb shell, I saw that perhaps busybox was runnable, so I ran chmod +x, and ran busybox, after which I saw busybox's help message. Surprisingly, Open GApps still didn't install for the same reason. 

How can I install the Google Apps onto my phone?
Okay, I add another answer because the protocol I am attaching differs from what I posted above. This worked for me, I cannot tell if this will work for you; please don't point your finger on me ;) This is meant for all who have a CM CM12.1 Nightly build  2016-01-19 or later installed - including Cyanogenmod's recovery which IS NOT ABLE to install Zip Files. The Procedure also reorganizes your Partition structure.

== Resizing Partitions, Installing TWRP 3.0.2-0, CyanogenMod 13 nightly and OpenGApps Pico on Samsung's Galaxy S2 i9100 using Windows 10. Phone has CM12.1 nightly build 2016-01-19 or later, but no busybox. ==

CAUTION: Following these instructions may brick your device. All steps are performed at your own risk. This protocol was successfully tested on two independent i9100 devices. Initially both devices had CyanogenMod 12.1 with CyanogenMod's "stock" recovery installed (which lacks the busybox). Build > 2016-01-19. This protocoll will install CyanogenMod 13, OpenGApps and TWRP 3.0.2-0 recovery. This recovery should persist even after updating CyanogenMod to the next nightly build (not tested yet, would be nice if soeone could feedback on this!).

NOTE: All steps were performed on a Windows 10 PC. You may encounter different events using an other OS.

PREPARATIONS:


Read this first before executing ;)
Backup all your personal data.
Eject your extra SD-card from your phone.
Get the latest CyanogenMod Nightly Build: http://download.cyanogenmod.org/?device=i9100 -> store the zip on your extra SD-card you just ejected
Get OpenGApps pico: http://opengapps.org/ Make sure that the build date matches the CyanogenMod nightly build date. Store the zip on the SD-card you just ejected.
Get HeimdallSuite_v1.4.0.zip: http://forum.xda-developers.com/attachment.php?attachmentid=3713767&amp;d=1460278689 -> Extract it to a local folder (from now on called c:\localFolder)
Get Samsung_Galaxy_S2_Pit-Files_Collection_All-In-One_2015-05-04.rar - http://forum.xda-developers.com/attachment.php?attachmentid=3293884&amp;d=1430622849 -> store it in c:\localFolder
Extract yor desired system storage layout from the jujst downloaded pit collection archive. I strongly recommend to pick a file from the "I9100_512MB_Preload" subfolder, because those most likely won't cause trouble with CyanogenMod installation. I decided for the following configuration: I9100_2.0GB_Sys-08GB_Data-512MB_Preload.pit --> store this file in c:\localFolder. This file will be called myPit.pit from now on.
Get SAMSUNG_USB_Driver_for_Mobile_Phones.zip: http://forum.xda-developers.com/attachment.php?attachmentid=3713769&amp;d=1460278744 -> double click to install. When you don't install this, you might won't be able to establish a connection between your phone and your PC.
Get MSVC++ 2012 Redistributable x86, vcredist_x86.exe (Heimdall won't open with x64 installed): https://www.microsoft.com/de-de/download/details.aspx?id=30679 -> double click to install. If you don't install this, you most probably will get a dll not found exception when launching Heimdall.
Get latest TWRP recovery: https://dl.twrp.me/i9100/ -> store the img in c:\localFolder. This file will be called as myRecovery.img from now on.


PROTOCOL:


Connect your device (and unlock it, if locked).
Open windows device manager (enter "device manager" in start). In the device manager, ensure that hidden devices will be shown ("View" menu).
Navigate to "Modem" -> "Samsung Modem". Right click -> "Uninstall".
Enter "change device installation settings" in start end select not to auto install drivers at all. This is necessary to prevent Windows 10 using any cached drivers for the setup.
Disconnect your device.
Reboot your system into advanced startup settings menue: Click the Start menu and select "Settings" -> Click "Update and Security" -> Click on "Recovery" -> Click "Restart now" under "Advanced Startup". When after the system reboot the boot menu appears, click "Troubleshoot" -> Click "Advanced options" -> Click "Startup Settings" -> Click on "Restart" -> On the "Startup Settings" screen press 7 or F7 to disable driver signature enforcement. (taken from: http://acer.custhelp.com/app/answers/detail/a_id/38289/~/windows-10%3A-disable-signed-driver-enforcement)
Turn off your phone. Bring it into download mode by holding "Volume Down" + "Home" + "Power" at the same time. A warning screen will appear. Acknowledge with "Volume Up".
Connect your device to your PC. The device is now in download mode.
Open explorer and change to c:\localFolder\Heimdall Suite\Drivers and open zadig.exe
In the "Options" menu tick "List All Devices"
Select "Gadget Serial" from the drop down menu.
Select "WinUSB v6.1.x.x.x" from the value picker and click "Install Driver". The installation should be confirmed with a success dialog.
Close zadig.exe
Bring your phone in the donwload mode again: Disconnect in from power. Reconnect it. Bring it into download mode by holding "Volume Down" + "Home" + "Power" at the same time. A warning screen will appear. Acknowledge with "Volume Up".
Open c:\localFolder\Heimdall\Heimdall Suite\heimdall-frontend.exe
Open the "Utilities" tab.
Click the "Detect" button in the "Detect Device" panel. Make sure the status message says "Device detected"
In the "Download Pit" panel click the "Save As" button. Enter a name like "backup". This is a backup file of your current phone partitioning. Because you are going to change its size, you will not use this file later on. However, this step is necessary to make the phone communicate with your PC, I don't know why...
Then klick the "Download" button in the same panel. If everything was set up correctly, no errors will appear in the status log. Please check.
Bring your phone in the donwload mode again. Disconnect in from power. Reconnect it. Bring it into download mode by holding "Volume Down" + "Home" + "Power" at the same time. A warning screen will appear. Acknowledge with "Volume Up". Yes, this is necessary.
Open the "Flash" tab.
In the "PIT" panel click the "Browse" button and select your myPit.pit (which you extracted from the pit files collection) and tick the "Repartition" checkbox.
In the "Partitions(Files)" panel click the "Add" button.
In the "Partition Details" panel at the "Partition Name" dropdown menu select "Recovery". Ensure that the "Partition ID" field reads "7". Click the "Browse" button in the "File" panel next to it and select myRecovery.img
In the "Sessions" panel, make sure that neither the "No Reboot" nor the "Resume (...)" checkboxes are ticked.
Now click the "RECOVERY" entry in the "Partitions(Files)" panel so that it is highlighted blue.
Click "Start". Hopefully the recovery will be flashed now. You will see progress when the status bar changes. Also check the output for errors. If just nothing will happen, check again if the the "No Reboot" nor the "Resume (...)" checkboxes are unchecked and/or retry.
Bring your phone in the recovery (!) mode. Disconnect it from power. Reconnect it. Bring it into recovery mode by holding "Volume Up" (!) + "Home" + "Power" at the same time.  The TWRP Recovery screen will appear.
Navigate to "Wipe" -> "Advanced Wipe". A list of available partitions will appear. (It is important to reformat at least "SDCard" (/emmc) so that it will be recognized by CyanogenMod later (otherwise it will most likely be marked as defect).) Check "Cache", tap "Repair Or Change File System" -> "Change File System" -> "EXT4" -> Swipe. This will force reformatting the partition.
Repeat this step with all other available partitions (some of them like "Android Secure" or "Dalvik" won't work. WARNING: when you still have your extra SD-card inserted, you may see two "SDCard" entries in that list. One of them is your extra SD-card. If you format it, your personal data (as well as the cyanogenmod-nightly and OpenGApps zip files) on it will be lost. At this step, I assume you have no extra SD-card inserted...
Finally, just to be sure that all necessary partitions are clean, navigate to "Home" -> "Wipe" -> "Swipe To Factory Reset". 
Navigate to "Home" -> "Reboot" -> "Power Off" to tun off your device. 
Insert your extra SD-card with the OpenGApps and CyanogenMod nightly build zip files on it. 
Bring your phone again in the recovery mode: Disconnect it from power. Reconnect it. Bring it into recovery mode by holding "Volume Up" (!) + "Home" + "Power" at the same time.  The TWRP Recovery screen will appear.
Navigate to "Install" -> "Select Storage" and pick you extra SD-card. Select your CyanogenMod nightly build zip file and swipe to install.
Repeat this step with your OpenGApps zip file. 
Navgiate to "Home" -> "Reboot" -> "Power Off".
Turn on your device and let CyanogenMod complete its work. This may take a while (about 10mins).
In CyanogenMod enable development options. Go to "Settings" -> "About This Phone" -> hit "Build Number" seven times.
Protect your recovery from being overwritten: "Settings" -> "Developer Options" -> disable "Update CM Recovery" 
Restore your personal data. That should be it.