| # Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file |
| # for details. All rights reserved. Use of this source code is governed by a |
| # BSD-style license that can be found in the LICENSE file. |
| |
| import glob |
| import os |
| import utils |
| |
| ANDROID_H_MR2_API = '13' |
| ANDROID_L_API = '21' |
| BASE = os.path.join(utils.THIRD_PARTY, 'youtube') |
| |
| V12_10_BASE = os.path.join(BASE, 'youtube.android_12.10') |
| V12_10_PREFIX = os.path.join(V12_10_BASE, 'YouTubeRelease') |
| |
| V12_17_BASE = os.path.join(BASE, 'youtube.android_12.17') |
| V12_17_PREFIX = os.path.join(V12_17_BASE, 'YouTubeRelease') |
| |
| V12_22_BASE = os.path.join(BASE, 'youtube.android_12.22') |
| V12_22_PREFIX = os.path.join(V12_22_BASE, 'YouTubeRelease') |
| |
| V13_37_BASE = os.path.join(BASE, 'youtube.android_13.37') |
| V13_37_PREFIX = os.path.join(V13_37_BASE, 'YouTubeRelease') |
| |
| V14_19_BASE = os.path.join(BASE, 'youtube.android_14.19') |
| V14_19_PREFIX = os.path.join(V14_19_BASE, 'YouTubeRelease') |
| |
| V14_44_BASE = os.path.join(BASE, 'youtube.android_14.44') |
| V14_44_PREFIX = os.path.join(V14_44_BASE, 'YouTubeRelease') |
| |
| V15_08_BASE = os.path.join(BASE, 'youtube.android_15.08') |
| V15_08_PREFIX = os.path.join(V15_08_BASE, 'YouTubeRelease') |
| |
| V15_09_BASE = os.path.join(BASE, 'youtube.android_15.09') |
| V15_09_PREFIX = os.path.join(V15_09_BASE, 'YouTubeRelease') |
| |
| # NOTE: we always use android.jar for SDK v25, later we might want to revise it |
| # to use proper android.jar version for each of youtube version separately. |
| ANDROID_JAR = utils.get_android_jar(25) |
| |
| VERSIONS = { |
| '12.10': { |
| 'dex' : { |
| 'inputs': [os.path.join(V12_10_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V12_10_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| 'inputs': ['%s_deploy.jar' % V12_10_PREFIX], |
| 'pgconf': ['%s_proguard.config' % V12_10_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'min-api' : ANDROID_L_API, |
| } |
| # The 'proguarded' version cannot be handled by D8/R8 because there are |
| # parameter annotations for parameters that do not exist, which is not |
| # handled gracefully by ASM (see b/116089492). |
| #'proguarded' : { |
| # 'inputs': ['%s_proguard.jar' % V12_10_PREFIX], |
| # 'pgmap': '%s_proguard.map' % V12_10_PREFIX, |
| # 'min-api' : ANDROID_L_API, |
| #} |
| }, |
| '12.17': { |
| 'dex' : { |
| 'inputs': [os.path.join(V12_17_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V12_17_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| 'inputs': ['%s_deploy.jar' % V12_17_PREFIX], |
| 'pgconf': ['%s_proguard.config' % V12_17_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V12_17_PREFIX], |
| 'pgmap': '%s_proguard.map' % V12_17_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '12.22': { |
| 'dex' : { |
| 'inputs': [os.path.join(V12_22_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V12_22_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| 'inputs': ['%s_deploy.jar' % V12_22_PREFIX], |
| 'pgconf': [ |
| '%s_proguard.config' % V12_22_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'maindexrules' : [ |
| os.path.join(V12_22_BASE, 'mainDexClasses.rules'), |
| os.path.join(V12_22_BASE, 'main-dex-classes-release.cfg'), |
| os.path.join(V12_22_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V12_22_PREFIX], |
| 'pgmap': '%s_proguard.map' % V12_22_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '13.37': { |
| 'dex' : { |
| 'inputs': [os.path.join(V13_37_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V13_37_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| 'inputs': ['%s_deploy.jar' % V13_37_PREFIX], |
| 'pgconf': [ |
| '%s_proguard.config' % V13_37_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| # Build for native multi dex, as Currently R8 cannot meet the main-dex |
| # constraints. |
| #'maindexrules' : [ |
| # os.path.join(V13_37_BASE, 'mainDexClasses.rules'), |
| # os.path.join(V13_37_BASE, 'main-dex-classes-release-optimized.cfg'), |
| # os.path.join(V13_37_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V13_37_PREFIX], |
| 'pgmap': '%s_proguard.map' % V13_37_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '14.19': { |
| 'dex' : { |
| 'inputs': [os.path.join(V14_19_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V14_19_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| 'inputs': ['%s_deploy.jar' % V14_19_PREFIX], |
| 'pgconf': [ |
| '%s_proguard.config' % V14_19_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'proto-shrinking': 1, |
| 'maindexrules' : [ |
| os.path.join(V14_19_BASE, 'mainDexClasses.rules'), |
| os.path.join(V14_19_BASE, 'main-dex-classes-release-optimized.pgcfg'), |
| os.path.join(V14_19_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| 'min-api' : ANDROID_H_MR2_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V14_19_PREFIX], |
| 'pgmap': '%s_proguard.map' % V14_19_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '14.44': { |
| 'dex' : { |
| 'inputs': [os.path.join(V14_44_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V14_44_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| # When -injars and -libraryjars are used for specifying inputs library |
| # sanitization is on by default. For this version of YouTube -injars and |
| # -libraryjars are not used, but library sanitization is still required. |
| 'sanitize_libraries': True, |
| 'inputs': ['%s_deploy.jar' % V14_44_PREFIX], |
| 'libraries' : [os.path.join(V14_44_BASE, 'legacy_YouTubeRelease_combined_library_jars.jar')], |
| 'pgconf': [ |
| '%s_proguard.config' % V14_44_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'proto-shrinking': 1, |
| 'maindexrules' : [ |
| os.path.join(V14_44_BASE, 'mainDexClasses.rules'), |
| os.path.join(V14_44_BASE, 'main-dex-classes-release-optimized.pgcfg'), |
| os.path.join(V14_44_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| 'min-api' : ANDROID_H_MR2_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V14_44_PREFIX], |
| 'pgmap': '%s_proguard.map' % V14_44_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '15.08': { |
| 'dex' : { |
| 'inputs': [os.path.join(V15_08_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V15_08_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| # When -injars and -libraryjars are used for specifying inputs library |
| # sanitization is on by default. For this version of YouTube -injars and |
| # -libraryjars are not used, but library sanitization is still required. |
| 'sanitize_libraries': True, |
| 'inputs': ['%s_deploy.jar' % V15_08_PREFIX], |
| 'libraries' : [os.path.join(V15_08_BASE, 'legacy_YouTubeRelease_combined_library_jars.jar')], |
| 'pgconf': [ |
| '%s_proguard.config' % V15_08_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'proto-shrinking': 1, |
| 'maindexrules' : [ |
| os.path.join(V15_08_BASE, 'mainDexClasses.rules'), |
| os.path.join(V15_08_BASE, 'main-dex-classes-release-optimized.pgcfg'), |
| os.path.join(V15_08_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| 'min-api' : ANDROID_H_MR2_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V15_08_PREFIX], |
| 'pgmap': '%s_proguard.map' % V15_08_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| '15.09': { |
| 'dex' : { |
| 'inputs': [os.path.join(V15_09_BASE, 'YouTubeRelease_unsigned.apk')], |
| 'pgmap': '%s_proguard.map' % V15_09_PREFIX, |
| 'libraries' : [ANDROID_JAR], |
| 'min-api' : ANDROID_L_API, |
| }, |
| 'deploy' : { |
| # When -injars and -libraryjars are used for specifying inputs library |
| # sanitization is on by default. For this version of YouTube -injars and |
| # -libraryjars are not used, but library sanitization is still required. |
| 'sanitize_libraries': True, |
| 'inputs': ['%s_deploy.jar' % V15_09_PREFIX], |
| 'libraries' : [os.path.join(V15_09_BASE, 'legacy_YouTubeRelease_combined_library_jars.jar')], |
| 'pgconf': [ |
| '%s_proguard.config' % V15_09_PREFIX, |
| '%s/proguardsettings/YouTubeRelease_proguard.config' % utils.THIRD_PARTY], |
| 'proto-shrinking': 1, |
| 'maindexrules' : [ |
| os.path.join(V15_09_BASE, 'mainDexClasses.rules'), |
| os.path.join(V15_09_BASE, 'main-dex-classes-release-optimized.pgcfg'), |
| os.path.join(V15_09_BASE, 'main_dex_YouTubeRelease_proguard.cfg')], |
| 'min-api' : ANDROID_H_MR2_API, |
| }, |
| 'proguarded' : { |
| 'inputs': ['%s_proguard.jar' % V15_09_PREFIX], |
| 'pgmap': '%s_proguard.map' % V15_09_PREFIX, |
| 'min-api' : ANDROID_L_API, |
| } |
| }, |
| } |