First commit

此提交包含在:
linuxxxxx
2015-04-20 15:22:46 +02:00
當前提交 ee8b7e1415
共有 67 個檔案被更改,包括 449 行新增0 行删除

12
LICENSE 一般檔案
查看文件

@@ -0,0 +1,12 @@
For the following files:
* Makefile
* build/main.mk
* build/create.sh
* build/meta/com/google/android/updater-script
GNU License v2
(https://www.gnu.org/licenses/gpl-2.0.html for more information)
Any other file:
These are closed source/propietary/prebuit files, I do not own them, these are just here
to make your life easier when compiling the package.
Contacts their own authors for information about their license.

3
Makefile 一般檔案
查看文件

@@ -0,0 +1,3 @@
### DO NOT EDIT THIS FILE ###
include build/main.mk
### DO NOT EDIT THIS FILE ###

30
README.md 一般檔案
查看文件

@@ -0,0 +1,30 @@
# vendor_google
**GApps for android devices**
Information
------------------
These are Google Apps for who want to install Google Packages on a custom rom.
Remember Apks and Jars files are prebuilt from Google.
All closed source files come from Nexuses' factory images.
This contains just the core files needed to setup a fully working Google account, users will choose wich apps they want on their devices.
Downloads
------------------
https://github.com/linuxxxxx/vendor_google/releases
Build
-------------------
You can compile your GApps package with GNU make (realpath also needed)
_make distclean_
- Remove output directory
_make gapps_
- compile flashable GApps package for most of devices

88
build/gapps.sh 一般檔案
查看文件

@@ -0,0 +1,88 @@
#!/bin/bash
# (c) Joey Rizzoli, 2015
# Released under GPL v2 License
##
# var
#
DATE=$(date +%F-%H-%M-%S)
TOP=$(realpath .)
ANDROIDV=5.1
BUILDZIP=gapps-$ANDROIDV-$DATE.zip
OUT=$TOP/out
TARGETZIP=$OUT/target-zip
METAINF=$TOP/build/meta
PREBUILTGAPPS=$TOP/prebuilt/gapps
##
# functions
#
function printerr(){
echo "$(tput setaf 1)$1$(tput sgr 0)"
}
function printdone(){
echo "$(tput setaf 2)$1$(tput sgr 0)"
}
function create(){
if [ -d $PREBUILTGAPPS ]; then
if [ -d $OUT ]; then
echo "Previous build found"
else
echo "No previous build found"
mkdir $OUT
mkdir $TARGETZIP
mkdir $TARGETZIP/tmp
fi
echo "Getting prebuilts..."
cp -r $PREBUILTGAPPS $TARGETZIP/gapps
return 0
else
printerr "Couldn't find prebuilts, sync again"
return 1
fi
}
function zipit(){
if [ "$LASTRETURN" == 0 ]; then
echo "Importing installation scripts..."
cp -r $TARGETZIP/gapps $TARGETZIP/tmp/system
cp -r $METAINF $TARGETZIP/tmp/META-INF
echo "Creating package..."
cd $TARGETZIP/tmp
zip -r /tmp/$BUILDZIP . &>/dev/null
cd $TOP
if [ -f /tmp/$BUILDZIP ]; then
echo "Signing zip..."
java -Xmx2048m -jar $TOP/build/sign/signapk.jar -w $TOP/build/sign/testkey.x509.pem $TOP/build/sign/testkey.pk8 /tmp/$BUILDZIP $OUT/$BUILDZIP
else
printerr "Couldn't zip files!"
return 1
fi
if [ "$?" == 0 ]; then
return 0
else
return 1
fi
else
return 1
fi
}
##
# main
#
create
LASTRETURN=$?
zipit
LASTRETURN=$?
if [ "$LASTRETURN" == 0 ]; then
printdone "Build completed: $OUT/$BUILDZIP"
exit 0
else
printerr "Build failed, check /tmp/gapps_log"
exit 1
fi

14
build/main.mk 一般檔案
查看文件

@@ -0,0 +1,14 @@
# build paths
TOPDIR := .
BUILD_SYSTEM := $(TOPDIR)/build
BUILD_GAPPS := $(BUILD_SYSTEM)/gapps.sh
OUTDIR := $(TOPDIR)/out
LOG_BUILD := /tmp/gapps_log
distclean :
@rm -fr $(OUTDIR)
@echo "$(tput setaf 2)Output removed! Ready for a clean build$(tput sgr 0)"
gapps :
@echo "Compiling GApps..."
@bash $(BUILD_GAPPS) 2>&1 | tee $(LOG_BUILD)

二進制
build/meta/CERT.RSA 一般檔案

未顯示二進位檔案。

2
build/meta/CERT.SF 一般檔案
查看文件

@@ -0,0 +1,2 @@
Signature-Version: 1.0
Created-By: 1.0 (Android SignApk)

2
build/meta/MANIFEST.MF 一般檔案
查看文件

@@ -0,0 +1,2 @@
Manifest-Version: 1.0
Created-By: 1.0 (Android SignApk)

查看文件

@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM
qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4
wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy
4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU
RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s
zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw
HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ
AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa
J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y
LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe
+ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX
31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr
sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=
-----END CERTIFICATE-----

未顯示二進位檔案。

查看文件

@@ -0,0 +1,18 @@
ui_print("Installing GApps...");
run_program("/sbin/busybox", "mount", "/system");
show_progress(1, 15);
package_extract_dir("system", "/system");
set_perm(0, 0, 0755, "/system/addon.d/30-gapps.sh");
package_extract_file("system/faceunlock.sh", "/tmp/faceunlock.sh");
set_perm(0, 0, 0777, "/tmp/faceunlock.sh");
run_program("/tmp/faceunlock.sh", "");
show_progress(1, 15);
set_metadata_recursive("/system/addon.d", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/priv-app", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/etc/permissions", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/framework", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/vendor/pittpatt", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
delete("/system/faceunlock.sh");
run_program("/sbin/busybox", "umount", "/system");
ui_print("Done!");

二進制
build/sign/signapk.jar 一般檔案

未顯示二進位檔案。

二進制
build/sign/testkey.pk8 一般檔案

未顯示二進位檔案。

27
build/sign/testkey.x509.pem 一般檔案
查看文件

@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIEqDCCA5CgAwIBAgIJAJNurL4H8gHfMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4g
VmlldzEQMA4GA1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UE
AxMHQW5kcm9pZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAe
Fw0wODAyMjkwMTMzNDZaFw0zNTA3MTcwMTMzNDZaMIGUMQswCQYDVQQGEwJVUzET
MBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4G
A1UEChMHQW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9p
ZDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCASAwDQYJKoZI
hvcNAQEBBQADggENADCCAQgCggEBANaTGQTexgskse3HYuDZ2CU+Ps1s6x3i/waM
qOi8qM1r03hupwqnbOYOuw+ZNVn/2T53qUPn6D1LZLjk/qLT5lbx4meoG7+yMLV4
wgRDvkxyGLhG9SEVhvA4oU6Jwr44f46+z4/Kw9oe4zDJ6pPQp8PcSvNQIg1QCAcy
4ICXF+5qBTNZ5qaU7Cyz8oSgpGbIepTYOzEJOmc3Li9kEsBubULxWBjf/gOBzAzU
RNps3cO4JFgZSAGzJWQTT7/emMkod0jb9WdqVA2BVMi7yge54kdVMxHEa5r3b97s
zI5p58ii0I54JiCUP5lyfTwE/nKZHZnfm644oLIXf6MdW2r+6R8CAQOjgfwwgfkw
HQYDVR0OBBYEFEhZAFY9JyxGrhGGBaR0GawJyowRMIHJBgNVHSMEgcEwgb6AFEhZ
AFY9JyxGrhGGBaR0GawJyowRoYGapIGXMIGUMQswCQYDVQQGEwJVUzETMBEGA1UE
CBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEQMA4GA1UEChMH
QW5kcm9pZDEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDEiMCAG
CSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbYIJAJNurL4H8gHfMAwGA1Ud
EwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHqvlozrUMRBBVEY0NqrrwFbinZa
J6cVosK0TyIUFf/azgMJWr+kLfcHCHJsIGnlw27drgQAvilFLAhLwn62oX6snb4Y
LCBOsVMR9FXYJLZW2+TcIkCRLXWG/oiVHQGo/rWuWkJgU134NDEFJCJGjDbiLCpe
+ZTWHdcwauTJ9pUbo8EvHRkU3cYfGmLaLfgn9gP+pWA7LFQNvXwBnDa6sppCccEX
31I828XzgXpJ4O+mDL1/dBd+ek8ZPUP0IgdyZm5MTYPhvVqGCHzzTy3sIeJFymwr
sBbmg2OAUNLEMO6nwmocSdN2ClirfxqCzJOLSDE4QyS9BAH6EhY6UFcOaE0=
-----END CERTIFICATE-----

查看文件

@@ -0,0 +1,76 @@
#!/sbin/sh
#
# /system/addon.d/70-gapps.sh
#
. /tmp/backuptool.functions
list_files() {
cat <<EOF
addon.d/30-gapps.sh
app/GoogleCalendarSyncAdapter/GoogleCalendarSyncAdapter.apk
app/GoogleContactsSyncAdapter/GoogleContactsSyncAdapter.apk
etc/permissions/com.google.android.camera2.xml
etc/permissions/com.google.android.maps.xml
etc/permissions/com.google.android.media.effects.xml
etc/permissions/com.google.widevine.software.drm.xml
etc/permissions/features.xml
framework/com.google.camera2.jar
framework/com.google.android.maps.jar
framework/com.google.android.media.effects.jar
framework/com.google.widevine.software.drm.jar
lib/libfilterpack_facedetect.so
lib/libgoogle_hotword_jni.so
lib/libgoogle_recognizer_jni_l.so
lib/libjni_latinimegoogle.so
priv-app/GoogleBackupTransport/GoogleBackupTransport.apk
priv-app/GoogleFeedback/GoogleFeedback.apk
priv-app/GoogleLoginService/GoogleLoginService.apk
priv-app/GoogleOneTimeInitializer/GoogleOneTimeInitializer.apk
priv-app/GooglePartnerSetup/GooglePartnerSetup.apk
priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
priv-app/Phonesky/Phonesky.apk
priv-app/PrebuiltGmsCore/PreBuiltGmsCore.apk
priv-app/PrebuiltGmsCore/lib/arm/libAppDataSearch.so
priv-app/PrebuiltGmsCore/lib/arm/libconscrypt_gmscore_jni.so
priv-app/PrebuiltGmsCore/lib/arm/libgames_rtmp_jni.so
priv-app/PrebuiltGmsCore/lib/arm/libgcastv2_base.so
priv-app/PrebuiltGmsCore/lib/arm/libgcastv2_support.so
priv-app/PrebuiltGmsCore/lib/arm/libgmscore.so
priv-app/PrebuiltGmsCore/lib/arm/libgms-ocrclient.so
priv-app/PrebuiltGmsCore/lib/arm/libjgcastservice.so
priv-app/PrebuiltGmsCore/lib/arm/libsslwrapper_jni.so
priv-app/PrebuiltGmsCore/lib/arm/libWhisper.so
priv-app/SetupWizardSetupWizard.apk app/Provision/Provision.apk
priv-app/Velvet/Velvet.apk app/QuickSearchBox/QuickSearchBox.apk
priv-app/Velvet/lib/arm/libgoogle_hotword_jni.so
priv-app/Velvet/lib/arm/libgoogle_recognizer_jni_l.so
priv-app/Velvet/lib/arm/libvcdecoder_jni.so
EOF
}
case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/$FILE
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R
done
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
# Stub
;;
esac

查看文件

@@ -0,0 +1,53 @@
#!/sbin/sh
#
# /system/addon.d/71-gapps-faceunlock.sh
#
. /tmp/backuptool.functions
list_files() {
cat <<EOF
app/FaceLock/FaceLock.apk
app/FaceLock/lib/arm/libfacelock_jni.so
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.8/landmark_group_meta_data.bin
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.8/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-tree7-wmd.bin
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.8/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32-tree7-wmd.bin
vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.8/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-3-tree7-wmd.bin
vendor/pittpatt/models/detection/yaw_roll_face_detectors.7.1/head-y0-yi45-p0-pi45-r0-ri30.4a-v24-tree7-2-wmd.bin
vendor/pittpatt/models/detection/yaw_roll_face_detectors.7.1/head-y0-yi45-p0-pi45-rn30-ri30.5-v24-tree7-2-wmd.bin
vendor/pittpatt/models/detection/yaw_roll_face_detectors.7.1/head-y0-yi45-p0-pi45-rp30-ri30.5-v24-tree7-2-wmd.bin
vendor/pittpatt/models/detection/yaw_roll_face_detectors.7.1/pose-r.8.1.bin
vendor/pittpatt/models/detection/yaw_roll_face_detectors.7.1/pose-y-r.8.1.bin
vendor/pittpatt/models/recognition/face.face.y0-y0-71-N-tree_7-wmd.bin
EOF
}
case "$1" in
backup)
list_files | while read FILE DUMMY; do
backup_file $S/$FILE
done
;;
restore)
list_files | while read FILE REPLACEMENT; do
R=""
[ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
[ -f "$C/$S/$FILE" ] && restore_file $S/$FILE $R
done
;;
pre-backup)
# Stub
;;
post-backup)
# Stub
;;
pre-restore)
# Stub
;;
post-restore)
# Stub
;;
esac

未顯示二進位檔案。

查看文件

@@ -0,0 +1 @@
/system/lib/libfacelock_jni.so

查看文件

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source 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.
-->
<permissions>
<library name="com.google.android.camera2"
file="/system/framework/com.google.android.camera2.jar" />
</permissions>

查看文件

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source 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.
-->
<permissions>
<library name="com.google.android.maps"
file="/system/framework/com.google.android.maps.jar" />
</permissions>

查看文件

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 The Android Open Source 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.
-->
<permissions>
<library name="com.google.android.media.effects"
file="/system/framework/com.google.android.media.effects.jar" />
</permissions>

查看文件

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2011 Google, Inc. All Rights Reserved
-->
<permissions>
<library name="com.google.widevine.software.drm"
file="/system/framework/com.google.widevine.software.drm.jar"/>
</permissions>

查看文件

@@ -0,0 +1,24 @@
#!/sbin/sh
good_ffc_device() {
if cat /proc/cpuinfo |grep -q Victory; then
return 1
fi
if cat /proc/cpuinfo |grep -q herring; then
return 1
fi
if cat /proc/cpuinfo |grep -q sun4i; then
return 1
fi
return 0
}
if good_ffc_device && [ -e /system/etc/permissions/android.hardware.camera.front.xml ]; then
chmod 755 /system/addon.d/31-faceunlock.sh
elif [ -d /system/vendor/pittpatt/ ]; then
rm -rf /system/vendor/pittpatt/
rm -f /system/app/FaceLock.apk
rm -f /system/lib/libfacelock_jni.so
rm -f /system/addon.d/31-faceunlock.sh
fi
rm -rf /tmp/face

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

未顯示二進位檔案。

查看文件

@@ -0,0 +1 @@
/system/lib/libgoogle_hotword_jni.so

查看文件

@@ -0,0 +1 @@
/system/lib/libgoogle_recognizer_jni_l.so

查看文件

@@ -0,0 +1 @@
/system/lib/libvcdecoder_jni.so