[AT&T Samsung Galaxy S II Skyrocket SGH-I727] m4570d0n:
If you wanted to add something like, for example, Titanium Backup, you could go to /vendor/cm/config/common.mk and starting on line 98 where you see:

PRODUCT_COPY_FILES += \
vendor/cm/proprietary/RomManager.apk:system/app/RomManager.apk \
vendor/cm/proprietary/Term.apk:system/app/Term.apk \
vendor/cm/proprietary/lib/armeabi/libjackpal-androidterm4.so:system/lib/libjackpal-androidterm4.so \
vendor/cm/prebuilt/common/apps/Superuser.apk:system/app/Superuser.apk

and add a line below that like this:

vendor/cm/prebuilt/common/apps/TitaniumBackup.apk:system/app/TitaniumBackup.apk

Then just place your TitaniumBackup.apk in the /vendor/cm/prebuilt/common/apps folder. You can modify that folder location to whatever folder you want to use, and you can substitute Titanium Backup with whatever apk you'd like. Take note though that this will install it as a system app in /system/app, while most apps would normally be installed as a user app in /data/apps. I think you could change the location to /data/app in that line, but I'm not positive. Someone please correct me if I'm wrong. I mean, I know you can, but I'm not sure if it would be an issue when you flash a zip without wiping /data and the zip file has files in /data.

You could also create your own github repo, name it something like vendor_onlychevys and add that repo to your local manifest with the path as vendor/onlychevys. Then you could use that as your directory path to the apps you want to add.

The slightly longer, but better way, is that you could also create your own make file in that repo by copying /device/samsung/skyrocket/cm.mk to your repo and rename it (let's say vendor_onlychevys/products/onlychevys_skyrocket.mk) and add a line in that file with something like this:

# Inherit some common onlychevys stuff.
$(call inherit-product, vendor/onlychevys/config/common_full_phone.mk)

and also editing the product name in that file near the bottom to something like this:

PRODUCT_NAME := onlychevys_skyrocket

You would need to make 3 more files.

In that same directory make a file called AndroidProducts.mk and in that file add this:

PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/onlychevys_skyrocket.mk

Next, copy /vendor/cm/config/common_full_phone.mk to your repo at vendor_onlychevys/config/common_full_phone.mk. Then edit that file by adding a line in there with something like this:

PRODUCT_COPY_FILES += \
vendor/onlychevys/prebuilt/common/apps/TitaniumBackup.apk

And make sure to put your app in that prebuilt/common/apps/ directory in your repo.

Finally, create a new file in gedit (or other text editor of your choice). In that file add this:

add_lunch_combo onlychevys_skyrocket-userdebug

Name the file vendorsetup.sh and put it in your repo at vendor_onlychevys/vendorsetup.sh

Now, when you want to build you can run:

. build/envsetup.sh
brunch onlychevys_skyrocket-userdebug

This will be the same as if you used the regular command but will also include whatever apks you want to put in your repo, since you are just copying those files and adding a line to also include your stuff. This way, though you can add apps and/or make changes to your repo and you wont get errors about having local changes to vendor/cm or wherever when you try to run repo sync. You also wont have to keep deleting and re-adding the same files over and over after every sync because they will be in your own repo.

And just for clarity, your repo would look something like this:

[COLOR="Navy"]vendor_onlychevys[/COLOR]
|-- [COLOR="RoyalBlue"]config[/COLOR]
| `-- common_full_phone.mk
|-- [COLOR="RoyalBlue"]prebuilt[/COLOR]
| `-- [COLOR="RoyalBlue"]common[/COLOR]
| | `-- [COLOR="RoyalBlue"]apps[/COLOR]
| | `-- TitaniumBackup.apk
|-- [COLOR="RoyalBlue"]products[/COLOR]
| |-- AndroidProducts.mk
| `-- onlychevys_skyrocket.mk
`-- vendorsetup.sh