diff options
-rw-r--r-- | common-proprietary-files.txt | 23 | ||||
-rwxr-xr-x | extract-files.sh | 109 | ||||
-rw-r--r-- | proprietary-files.txt | 6 | ||||
-rwxr-xr-x | setup-makefiles.sh | 246 |
4 files changed, 384 insertions, 0 deletions
diff --git a/common-proprietary-files.txt b/common-proprietary-files.txt new file mode 100644 index 0000000..7d3e8bc --- /dev/null +++ b/common-proprietary-files.txt @@ -0,0 +1,23 @@ +bin/fRom +vendor/bin/pvrsrvctl +vendor/firmware/ducati-m3.bin +vendor/firmware/libpn544_fw.so +vendor/lib/drm/libdrmwvmplugin.so +vendor/lib/egl/libEGL_POWERVR_SGX540_120.so +vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so +vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so +vendor/lib/hw/gralloc.omap4.so +vendor/lib/mediadrm/libwvdrmengine.so +vendor/lib/libfrsdk.so +vendor/lib/libglslcompiler.so +vendor/lib/libIMGegl.so +vendor/lib/libinvensense_mpl.so +vendor/lib/libpvr2d.so +vendor/lib/libpvrANDROID_WSEGL.so +vendor/lib/libPVRScopeServices.so +vendor/lib/libsrv_init.so +vendor/lib/libsrv_um.so +vendor/lib/libusc.so +vendor/lib/libwvdrm_L1.so +vendor/lib/libwvm.so +vendor/lib/libWVStreamControlAPI_L1.so diff --git a/extract-files.sh b/extract-files.sh new file mode 100755 index 0000000..e80ec47 --- /dev/null +++ b/extract-files.sh @@ -0,0 +1,109 @@ +#!/bin/bash + +if [ $# -eq 1 ]; then + COPY_FROM=$1 + test ! -d "$COPY_FROM" && echo error reading dir "$COPY_FROM" && exit 1 +fi + +test -z "$DEVICE" && echo device not set && exit 2 +test -z "$VENDOR" && echo vendor not set && exit 2 +test -z "$VENDORDEVICEDIR" && VENDORDEVICEDIR=$DEVICE +export VENDORDEVICEDIR + +BASE=../../../vendor/$VENDOR/$VENDORDEVICEDIR/proprietary +rm -rf $BASE/* + +for FILE in `egrep -v '(^#|^$)' ../$DEVICE/device-proprietary-files.txt`; do + echo "Extracting /system/$FILE ..." + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z $DEST ] + then + DEST=$FILE + fi + DIR=`dirname $FILE` + if [ ! -d $BASE/$DIR ]; then + mkdir -p $BASE/$DIR + fi + if [ "$COPY_FROM" = "" ]; then + adb pull /system/$FILE $BASE/$DEST + # if file dot not exist try destination + if [ "$?" != "0" ] + then + adb pull /system/$DEST $BASE/$DEST + fi + else + cp $COPY_FROM/$FILE $BASE/$DEST + # if file does not exist try destination + if [ "$?" != "0" ] + then + cp $COPY_FROM/$DEST $BASE/$DEST + fi + fi +done + +for FILE in `egrep -v '(^#|^$)' ../tuna/proprietary-files.txt`; do + echo "Extracting /system/$FILE ..." + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z $DEST ] + then + DEST=$FILE + fi + DIR=`dirname $FILE` + if [ ! -d $BASE/$DIR ]; then + mkdir -p $BASE/$DIR + fi + if [ "$COPY_FROM" = "" ]; then + adb pull /system/$FILE $BASE/$DEST + # if file dot not exist try destination + if [ "$?" != "0" ] + then + adb pull /system/$DEST $BASE/$DEST + fi + else + cp $COPY_FROM/$FILE $BASE/$DEST + # if file does not exist try destination + if [ "$?" != "0" ] + then + cp $COPY_FROM/$DEST $BASE/$DEST + fi + fi +done + +BASE=../../../vendor/$VENDOR/tuna/proprietary +rm -rf $BASE/* +for FILE in `egrep -v '(^#|^$)' ../tuna/common-proprietary-files.txt`; do + echo "Extracting /system/$FILE ..." + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z $DEST ] + then + DEST=$FILE + fi + DIR=`dirname $FILE` + if [ ! -d $BASE/$DIR ]; then + mkdir -p $BASE/$DIR + fi + if [ "$COPY_FROM" = "" ]; then + adb pull /system/$FILE $BASE/$DEST + # if file dot not exist try destination + if [ "$?" != "0" ] + then + adb pull /system/$DEST $BASE/$DEST + fi + else + cp $COPY_FROM/$FILE $BASE/$DEST + # if file does not exist try destination + if [ "$?" != "0" ] + then + cp $COPY_FROM/$DEST $BASE/$DEST + fi + fi +done + +echo "This is designed to extract files from an official cm-11 build" +../tuna/setup-makefiles.sh diff --git a/proprietary-files.txt b/proprietary-files.txt new file mode 100644 index 0000000..11d6c51 --- /dev/null +++ b/proprietary-files.txt @@ -0,0 +1,6 @@ +# put anything that is present on all devices, but is device specific in this file +lib/libdrmdecrypt.so +lib/libsecril-client.so +vendor/etc/sirfgps.conf +vendor/firmware/bcm4330.hcd +vendor/lib/hw/gps.omap4.so diff --git a/setup-makefiles.sh b/setup-makefiles.sh new file mode 100755 index 0000000..6360fa0 --- /dev/null +++ b/setup-makefiles.sh @@ -0,0 +1,246 @@ +OUTDIR=vendor/$VENDOR/$DEVICE +MAKEFILE=../../../$OUTDIR/$DEVICE-vendor-blobs.mk + +(cat << EOF) > $MAKEFILE +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +PRODUCT_COPY_FILES += \\ +EOF + +LINEEND=" \\" +COUNT=`wc -l device-proprietary-files.txt | awk {'print $1'}` +DISM=`egrep -c '(^#|^$)' device-proprietary-files.txt` +COUNT=`expr $COUNT - $DISM` +for FILE in `egrep -v '(^#|^$)' ../$DEVICE/device-proprietary-files.txt`; do + COUNT=`expr $COUNT - 1` + if [ $COUNT = "0" ] && [ -f ../tuna/proprietary-files.txt ]; then + LINEEND=" \\" + elif [ $COUNT = "0" ]; then + LINEEND="" + fi + # Split the file from the destination (format is "file[:destination]") + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z "$DEST" ]; then + if [[ $FILE != app/* ]]; then + echo " $OUTDIR/proprietary/$FILE:system/$FILE$LINEEND" >> $MAKEFILE + fi + else + if [[ $DEST != app/* ]]; then + echo " $OUTDIR/proprietary/$DEST:system/$DEST$LINEEND" >> $MAKEFILE + fi + fi +done + +LINEEND=" \\" +COUNT=`wc -l ../tuna/proprietary-files.txt | awk {'print $1'}` +DISM=`egrep -c '(^#|^$)' ../tuna/proprietary-files.txt` +COUNT=`expr $COUNT - $DISM` +for FILE in `egrep -v '(^#|^$)' ../tuna/proprietary-files.txt`; do + COUNT=`expr $COUNT - 1` + if [ $COUNT = "0" ]; then + LINEEND="" + fi + # Split the file from the destination (format is "file[:destination]") + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z "$DEST" ]; then + echo " $OUTDIR/proprietary/$FILE:system/$FILE$LINEEND" >> $MAKEFILE + else + echo " $OUTDIR/proprietary/$DEST:system/$DEST$LINEEND" >> $MAKEFILE + fi +done + +(cat << EOF) > ../../../$OUTDIR/$DEVICE-vendor.mk +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +# Pick up overlay for features that depend on non-open-source files +DEVICE_PACKAGE_OVERLAYS += vendor/$VENDOR/$DEVICE/overlay + +\$(call inherit-product, vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk) +\$(call inherit-product, vendor/samsung/tuna/tuna-vendor.mk) +EOF + +(cat << EOF) > ../../../$OUTDIR/BoardConfigVendor.mk +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh +EOF + +if [ -d ../../../${OUTDIR}/proprietary/app ]; then +(cat << EOF) > ../../../${OUTDIR}/proprietary/app/Android.mk +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +LOCAL_PATH:= \$(call my-dir) + +EOF + +echo "ifeq (\$(TARGET_DEVICE),$DEVICE)" >> ../../../${OUTDIR}/proprietary/app/Android.mk + +for APK in `ls ../../../${OUTDIR}/proprietary/app/*apk`; do + apkname=`basename $APK` + modulename=`echo $apkname|sed -e 's/\.apk$//gi'` + if [[ $apkname == VZW* ]]; then + ownername=vzw + certificate=PRESIGNED + else + ownername=samsung + certificate=platform + fi + (cat << EOF) >> ../../../${OUTDIR}/proprietary/app/Android.mk +include \$(CLEAR_VARS) +LOCAL_MODULE := $modulename +LOCAL_MODULE_OWNER := $ownername +LOCAL_SRC_FILES := \$(LOCAL_MODULE).apk +LOCAL_MODULE_CLASS := APPS +LOCAL_MODULE_TAGS := optional +LOCAL_CERTIFICATE := $certificate +LOCAL_MODULE_SUFFIX := \$(COMMON_ANDROID_PACKAGE_SUFFIX) +include \$(BUILD_PREBUILT) + +EOF + +echo "PRODUCT_PACKAGES += $modulename" >> ../../../$OUTDIR/$DEVICE-vendor.mk +done +echo "endif" >> ../../../${OUTDIR}/proprietary/app/Android.mk +fi + +export DEVICE=tuna +OUTDIR=vendor/$VENDOR/$DEVICE +MAKEFILE=../../../$OUTDIR/$DEVICE-vendor-blobs.mk + +(cat << EOF) > $MAKEFILE +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +PRODUCT_COPY_FILES += \\ +EOF + +LINEEND=" \\" +COUNT=`wc -l ../tuna/common-proprietary-files.txt | awk {'print $1'}` +DISM=`egrep -c '(^#|^$)' ../tuna/common-proprietary-files.txt` +COUNT=`expr $COUNT - $DISM` +for FILE in `egrep -v '(^#|^$)' ../tuna/common-proprietary-files.txt`; do + COUNT=`expr $COUNT - 1` + if [ $COUNT = "0" ]; then + LINEEND="" + fi + # Split the file from the destination (format is "file[:destination]") + OLDIFS=$IFS IFS=":" PARSING_ARRAY=($FILE) IFS=$OLDIFS + FILE=${PARSING_ARRAY[0]} + DEST=${PARSING_ARRAY[1]} + if [ -z "$DEST" ]; then + echo " $OUTDIR/proprietary/$FILE:system/$FILE$LINEEND" >> $MAKEFILE + else + echo " $OUTDIR/proprietary/$DEST:system/$DEST$LINEEND" >> $MAKEFILE + fi +done + +(cat << EOF) > ../../../$OUTDIR/$DEVICE-vendor.mk +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +# Pick up overlay for features that depend on non-open-source files + +\$(call inherit-product, vendor/$VENDOR/$DEVICE/$DEVICE-vendor-blobs.mk) +EOF + +(cat << EOF) > ../../../$OUTDIR/BoardConfigVendor.mk +# Copyright (C) 2013 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh +EOF |