[Moto G Q&A, Help & Troubleshooting] Konpon96:
Moto X and G stock firmwares are probably the most AOSP-like ones, yet it's not perfect AOSP, like Nexus' one. However, unlike Samsung, LG, HTC and other manufacturers, Motorola apps like gallery, camera, bootanimation-changing service etc. are great - fun and sometimes even useful. I thought that because they are in Play Store, they could be downloaded after flashing CyanogenMod 11. However it shows that device is not supported. As far as I know Store recognizes devices by build.prop file, so I pulled build.prop files from both stock and CM11 (below) and noticed differences in "product.name", "product.device" and similar fields. The I tried pasting some stock values into CM file, but after pushing it to /system and rebooting it resulted in soft-brick.

My question is - is it possible to modify CM system files somehow (either place in flashable zip or copy while system is running and reboot), so that Motorola apps (especially camera and gallery with it's nice interface and HDR) would work on CM? I also pulled whole stock /system partition to computer and got list of framework files (screenshots attached below - I can also upload them if it's needed) - if proper modifying of build.prop is not enough, which of that files I have to push into CM partition to make Motorola apps downloadable from Store and fully working?

Stock build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KLB20.9-1.10-1.9
ro.build.display.id=KLB20.9-1.10-1.9
ro.build.version.incremental=5
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.build.date=Thu Dec 19 04:32:04 CST 2013
ro.build.date.utc=1387449124
ro.build.type=user
ro.build.user=hudsoncm
ro.build.host=ilclbld32
ro.build.tags=release-keys
ro.product.model=XT1032
ro.product.brand=motorola
ro.product.name=falcon_retgb
ro.product.device=falcon_umts
ro.product.board=MSM8226
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=motorola
ro.product.locale.language=en
ro.product.locale.region=GB
ro.wifi.channels=
ro.board.platform=msm8226
# ro.build.product is obsolete; use ro.product.device
ro.build.product=falcon_umts
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=falcon_retgb-user 4.4.2 KLB20.9-1.10-1.9 5 release-keys
ro.build.fingerprint=motorola/falcon_retgb/falcon_umts:4.4.2/KLB20.9-1.10-1.9/5:user/release-keys
ro.build.characteristics=nosdcard
# end build properties
#
# from device/moto/falcon_umts/system.prop
#
#
# system.prop for msm8226
#

# Use reference RIL for initial bringup
#rild.libpath=/system/lib/libreference-ril.so
rild.libpath=/vendor/lib/libril-qc-qmi-1.so
rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=
ril.subscription.types=NV,RUIM
DEVICE_PROVISIONED=1
persist.radio.msgtunnel.start=false

#
# system props for the cne module
#
persist.cne.feature=0

# Skip /sys/power/wait_for_fb_* nodes and
# force FB to be always on
debug.sf.fb_always_on=1

debug.sf.hw=1
debug.egl.hw=1
debug.composition.type=c2d
persist.hwc.mdpcomp.enable=true
debug.mdpcomp.logs=0
dalvik.vm.heapsize=36m
dev.pm.dyn_samplingrate=1

persist.demo.hdmirotationlock=false
ro.hdmi.enable=true
tunnel.decode=false
tunnel.audiovideo.decode=false
lpa.decode=true
lpa.use-stagefright=true

#system props for the MM modules

media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-fma2dp=true
media.stagefright.enable-scan=true
mmp.enable.3g2=true
mm.enable.smoothstreaming=true
#9273 is decimal sum of supported codecs in AAL
#codecs:(PARSER_)AVI AC3 ASF AAC QCP DTS 3G2 MP2TS
mm.enable.qcom_parser=37491

# VIDC: debug_levels
# 1:ERROR 2:HIGH 4:LOW 0:NOlogs 7:AllLogs
vidc.debug.level=1
#
# system props for the data modules
#
ro.use_data_netmgrd=true

#system props for time-services
persist.timed.enable=true

#
# system prop for opengles version
#
# 196608 is decimal for 0x30000 to report version 3
ro.opengles.version=196608

#
# System props for telephony
# System prop to turn on CdmaLTEPhone always
telephony.lteOnCdmaDevice=0

# simulate sdcard on /data/media
#
persist.fuse_sdcard=true
ro.crypto.fuse_sdcard=true

#
#snapdragon value add features
#
# System props for audio
ro.qc.sdk.audio.ssr=false
##fluencetype can be "fluence" or "fluencepro" or "none"
persist.audio.fluence.mode=endfire
persist.audio.handset.mic=digital
ro.config.vc_call_vol_steps=7
# FM maximum volume be between 0 and 8192 (0dB)
ro.audio.fm_max_volume=4096

# Enable/disable cabl
ro.qualcomm.cabl=0

# system prop for NFC DT
ro.nfc.port=I2C

#
# system property for Bluetooth hci transport
#
ro.qualcomm.bt.hci_transport=smd

#
# system property for Bluetooth HFP version
#
ro.bluetooth.hfp.ver=1.6

#
# system property for Bluetooth SAP support
# Motorola disabled SAP
#
ro.qualcomm.bluetooth.sap=false

# Bluetooth LE power class
qcom.bt.le_dev_pwr_class=1

#property to enable user to access Google WFD settings
persist.debug.wfd.enable=0
##property to choose between virtual/external wfd display
persist.sys.wfd.virtual=0
# Motorola, ams087, 09/24/2013, IKJBMR2-6432 : disable tunnel audio encode
#tunnel.audio.encode = true

# Enable SSR
persist.sys.ssr.restart_level=3
persist.sys.qc.sub.rdump.on=1

# For TCMD debug level
persist.tcmd.log.limit=0

# Disable QCOM net early sockets feature
net.early.sockets=0

# Radio RIL properties
persist.radio.no_wait_for_card=1
persist.radio.call_type=1
persist.radio.apm_sim_not_pwdn=1
persist.radio.dfr_mode_set=1

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.build.version.full=Blur_Version.174.44.9.falcon_umts.Retail.en.GB
ro.mot.build.customerid=RTGB
ro.mot.build.version.sdk_int=19
ro.product.display=Moto G
ro.build.version.qcom=AU_LINUX_ANDROID_JB_3.2.3.04.03.00.166.006
persist.radio.plmn_name_cmp=1
ro.telephony.default_network=3
ro.com.android.dataroaming=false
ro.config.ringtone=Moto.ogg
ro.config.notification_sound=Moto.ogg
ro.config.alarm_alert=Oxygen.ogg
ro.MAX_HIDDEN_APPS=12
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=96m
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=2m
dalvik.vm.heapmaxfree=8m
ro.vendor.extension_library=/vendor/lib/libqc-opt.so
ro.usb.mtp=0x2e82
ro.usb.mtp_adb=0x2e76
ro.usb.ptp=0x2e83
ro.usb.ptp_adb=0x2e84
ro.usb.bpt=0x2e28
ro.usb.bpt_adb=0x2e29
ro.usb.bpteth=0x2e2a
ro.usb.bpteth_adb=0x2e2b
ro.bug2go.magickeys=24,26
persist.sys.qc.sub.rdump.max=0
ro.adb.secure=1
ro.sf.lcd_density=320
keyguard.no_require_sim=true
ro.zygote.capsuid=0
mdc_initial_max_retry=10
persist.radio.apn_delay=5000
drm.service.enabled=true
ro.com.google.clientidbase=android-motorola
ro.com.google.clientidbase.ms=android-motorola
ro.com.google.clientidbase.am=android-motorola
ro.com.google.clientidbase.gmm=android-motorola
ro.com.google.clientidbase.yt=android-motorola
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.setupwizard.mode=OPTIONAL
ro.com.google.gmsversion=4.4.2_r1
ro.carrier=unknown
ro.media.enc.aud.fileformat=amr
ro.media.enc.aud.codec=amrnb
persist.sys.dalvik.vm.lib=libdvm.so
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.qc.sdk.izat.premium_enabled=0
ro.qc.sdk.izat.service_mask=0x4
persist.gps.qc_nlp_in_use=0
ro.gps.agps_provider=1

And CyanogenMod 11 (http://xdaforums.com/showthread.php?t=2608377) build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KOT49H
ro.build.display.id=cm_xt1032-userdebug 4.4.2 KOT49H 893f1e5b41 test-keys
ro.build.version.incremental=893f1e5b41
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.2
ro.build.date=Tue Jan 28 00:59:56 CET 2014
ro.build.date.utc=1390867196
ro.build.type=userdebug
ro.build.user=dhacker29
ro.build.host=androidhosting
ro.build.tags=test-keys
ro.product.model=XT1032
ro.product.brand=motorola
ro.product.name=XT1032
ro.product.device=xt1032
ro.product.board=MSM8226
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=motorola
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=msm8226
# ro.build.product is obsolete; use ro.product.device
ro.build.product=xt1032
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=cm_xt1032-userdebug 4.4.2 KOT49H 893f1e5b41 test-keys
ro.build.fingerprint=motorola/falcon_retuglb/falcon_umts:4.3/14.10.0Q3.X-84-16/6:user/release-keys
ro.build.characteristics=default
ro.cm.device=xt1032
# end build properties
#
# from device/motorola/xt1032/system.prop
#
rild.libargs=-d /dev/smd0
persist.rild.nitz_plmn=
persist.rild.nitz_long_ons_0=
persist.rild.nitz_long_ons_1=
persist.rild.nitz_long_ons_2=
persist.rild.nitz_long_ons_3=
persist.rild.nitz_short_ons_0=
persist.rild.nitz_short_ons_1=
persist.rild.nitz_short_ons_2=
persist.rild.nitz_short_ons_3=

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.rommanager.developerid=cyanogenmod
ro.com.google.clientidbase=android-motorola
keyguard.no_require_sim=true
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.build.selinux=1
persist.sys.root_access=1
ro.cm.version=11-20140127-UNOFFICIAL-xt1032
ro.modversion=11-20140127-UNOFFICIAL-xt1032
ro.cmlegal.url=http://www.cyanogenmod.org/docs/privacy
ro.cm.display.version=11-20140127-UNOFFICIAL-xt1032
ro.config.ringtone=Orion.ogg
ro.config.notification_sound=Argon.ogg
ro.config.alarm_alert=Hassium.ogg
ro.carrier=unknown
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=256m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=2m
dalvik.vm.heapmaxfree=8m
debug.sf.fb_always_on=1
ro.hdmi.enable=true
media.stagefright.enable-player=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-fma2dp=true
media.stagefright.enable-scan=true
mmp.enable.3g2=true
ro.audio.fm_max_volume=4096
ro.qualcomm.cabl=0
use.voice.path.for.pcm.voip=true
qcom.bt.le_dev_pwr_class=1
ro.qc.sdk.audio.ssr=false
persist.audio.fluence.voicecall=true
ro.qc.sdk.audio.fluencetype=fluence
audio.offload.buffer.size.kb=32
audio.offload.gapless.enabled=true
av.offload.enable=true
ro.usb.mtp=0x2e82
ro.usb.mtp_adb=0x2e76
ro.usb.ptp=0x2e83
ro.usb.ptp_adb=0x2e84
ro.usb.bpt=0x2e28
ro.usb.bpt_adb=0x2e29
ro.usb.bpteth=0x2e2a
ro.usb.bpteth_adb=0x2e2b
persist.gps.qc_nlp_in_use=0
persist.fuse_sdcard=true
ro.crypto.fuse_sdcard=true
ro.nfc.port=I2C
rild.libpath=/system/vendor/lib/libril-qc-qmi-1.so
ro.opengles.version=196608
ro.sf.lcd_density=320
ro.vendor.extension_library=/system/vendor/lib/libqc-opt.so
debug.egl.hw=1
debug.sf.hw=1
persist.sys.ui.hw=true
debug.composition.type=dyn
persist.hwc.mdpcomp.enable=true
debug.mdpcomp.logs=0
debug.enabletr=0
mm.enable.smoothstreaming=true
com.qc.hardware=true
persist.audio.fluence.mode=endfire
persist.audio.vr.enable=false
persist.audio.handset.mic=digital
ro.bluetooth.hfp.ver=1.6
ro.qualcomm.bluetooth.sap=true
ro.qualcomm.bt.hci_transport=smd
ro.bluetooth.request.master=true
ro.bluetooth.remote.autoconnect=true
lpa.decode=false
tunnel.decode=true
tunnel.audiovideo.decode=true
qcom.hw.aac.encoder=true
af.resampler.quality=255
persist.audio.lowlatency.rec=false
persist.sys.qc.sub.rstrtlvl=3
persist.sys.qc.sub.rdump.on=1
persist.sys.qc.sub.rdump.max=20
ril.subscription.types=NV,RUIM
ro.use_data_netmgrd=true
ro.ril.transmitpower=true
persist.radio.apm_sim_not_pwdn=1
persist.radio.call_type=1
ro.config.vc_call_vol_steps=7
ro.modem.no_wdog_chk=1
persist.timed.enable=true
telephony.lteOnGsmDevice=0
telephony.lteOnCdmaDevice=0
ro.telephony.default_network=3
persist.radio.no_wait_for_card=1
persist.radio.dfr_mode_set=1
ro.mot.build.customerid=RTGB
persist.sys.dalvik.vm.lib=libdvm.so
dalvik.vm.lockprof.threshold=500
dalvik.vm.dexopt-flags=m=y
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt