From b07508ef01f3f60adf1bd16791eb4b4d377464a3 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Sat, 9 Jun 2012 14:59:20 -0700 Subject: [PATCH] Add support for crypto HAL on L3 devices DO NOT MERGE Includes widevine library release version 4.5.0.7571 Change-Id: I9e574d5606576aab376d0524a4bf1a81e5a61678 related-to-bug: 6427322 related-to-bug: 6427274 --- proprietary/cryptoPlugin/Android.mk | 12 +- proprietary/cryptoPlugin/WVCryptoPlugin.cpp | 111 ++++++++++++++++-- proprietary/cryptoPlugin/WVCryptoPlugin.h | 11 +- proprietary/cryptoPlugin/decrypt-core.mk | 7 +- .../drmwvmplugin/include/WVDRMPluginAPI.h | 2 +- .../drmwvmplugin/lib/arm/libwvdrm_L1.so | Bin 107672 -> 107724 bytes .../drmwvmplugin/lib/arm/libwvdrm_L3.so | Bin 107568 -> 125320 bytes proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp | 4 +- .../lib/arm/libWVStreamControlAPI_L1.so | Bin 2749684 -> 2749684 bytes .../lib/arm/libWVStreamControlAPI_L3.so | Bin 2819388 -> 2819388 bytes proprietary/wvm/WVMExtractorImpl.cpp | 34 ++++-- proprietary/wvm/WVMMediaSource.cpp | 43 ++++--- proprietary/wvm/include/WVMMediaSource.h | 12 +- 13 files changed, 183 insertions(+), 53 deletions(-) diff --git a/proprietary/cryptoPlugin/Android.mk b/proprietary/cryptoPlugin/Android.mk index 7367d19c..96210d35 100644 --- a/proprietary/cryptoPlugin/Android.mk +++ b/proprietary/cryptoPlugin/Android.mk @@ -1,11 +1,17 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) +include $(TOP)/vendor/widevine/proprietary/drmwvmplugin/oemcryptolevel.mk -LOCAL_SRC_FILES:= \ - WVCryptoPlugin.cpp +ifeq ($(LOCAL_OEMCRYPTO_LEVEL),1) +LOCAL_CFLAGS := -DREQUIRE_SECURE_BUFFERS +endif + +LOCAL_SRC_FILES := \ + WVCryptoPlugin.cpp LOCAL_C_INCLUDES := \ - $(TOP)/vendor/widevine/proprietary/wvm/include \ + $(TOP)/vendor/widevine/proprietary/wvm/include \ + $(TOP)/external/openssl/include LOCAL_MODULE:= libwvdecryptcommon LOCAL_MODULE_TAGS := optional diff --git a/proprietary/cryptoPlugin/WVCryptoPlugin.cpp b/proprietary/cryptoPlugin/WVCryptoPlugin.cpp index 4c2fc3ee..f52142b3 100644 --- a/proprietary/cryptoPlugin/WVCryptoPlugin.cpp +++ b/proprietary/cryptoPlugin/WVCryptoPlugin.cpp @@ -16,16 +16,20 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "wv_crypto_plugin" +#include #include - -#include "WVCryptoPlugin.h" +#include +#include #include #include +#include +#include "WVCryptoPlugin.h" + +#ifdef REQUIRE_SECURE_BUFFERS #include - -#include +#endif android::CryptoFactory *createCryptoFactory() { return new android::WVCryptoFactory; @@ -40,30 +44,35 @@ const uint8_t WVCryptoFactory::kUUIDWidevine[16] = { }; WVCryptoPlugin::WVCryptoPlugin(const void *data, size_t size) - : mInitCheck(NO_INIT) { - + : mInitCheck(NO_INIT) +{ // not using data at this time, require // size to be zero. if (size > 0) { mInitCheck = -EINVAL; } else { + mInitCheck = OK; + +#ifdef REQUIRE_SECURE_BUFFERS OEMCryptoResult res = OEMCrypto_Initialize(); if (res != OEMCrypto_SUCCESS) { ALOGE("OEMCrypto_Initialize failed: %d", res); mInitCheck = -EINVAL; - } else { - mInitCheck = OK; } +#endif } } WVCryptoPlugin::~WVCryptoPlugin() { + +#ifdef REQUIRE_SECURE_BUFFERS if (mInitCheck == OK) { OEMCryptoResult res = OEMCrypto_Terminate(); if (res != OEMCrypto_SUCCESS) { ALOGW("OEMCrypto_Terminate failed: %d", res); } } +#endif } status_t WVCryptoPlugin::initCheck() const { @@ -71,7 +80,11 @@ status_t WVCryptoPlugin::initCheck() const { } bool WVCryptoPlugin::requiresSecureDecoderComponent(const char *mime) const { +#ifdef REQUIRE_SECURE_BUFFERS return !strncasecmp(mime, "video/", 6); +#else + return false; +#endif } status_t WVCryptoPlugin::decrypt( @@ -85,7 +98,7 @@ status_t WVCryptoPlugin::decrypt( AString *errorDetailMsg) { Mutex::Autolock autoLock(mLock); - //ALOGD("mode=%d, secure=%d, numSubSamples=%d", mode, secure, numSubSamples); + CHECK(mode == kMode_Unencrypted || mode == kMode_AES_WV); size_t offset = 0; @@ -104,6 +117,8 @@ status_t WVCryptoPlugin::decrypt( //ALOGD("size[%d]=%d", i, srcSize); +#ifdef REQUIRE_SECURE_BUFFERS + // decrypt using OEMCrypto API, used for L1 devices OEMCrypto_UINT32 dstLength = srcSize; OEMCryptoResult res; @@ -141,10 +156,88 @@ status_t WVCryptoPlugin::decrypt( } offset += dstLength; +#else + if (mode == kMode_Unencrypted) { + memcpy((char *)dstPtr + offset, (char *)srcPtr + offset, srcSize); + } else { + status_t status = decryptSW(key, (uint8_t *)dstPtr + offset, + (const uint8_t *)srcPtr + offset, srcSize); + if (status != OK) { + ALOGE("decryptSW returned %d", status); + return status; + } + } + + offset += srcSize; +#endif } return OK; } +// SW AES CTS decrypt, used only for L3 devices +status_t WVCryptoPlugin::decryptSW(const uint8_t *key, uint8_t *out, + const uint8_t *in, size_t length) +{ +#ifndef REQUIRE_SECURE_BUFFERS + unsigned char iv[kAES128BlockSize] = {0}; + + if (memcmp(key, mEncKey, sizeof(mEncKey)) != 0) { + // key has changed, recompute mAesKey from key + uint8_t hash[MD5_DIGEST_LENGTH]; + char value[PROPERTY_VALUE_MAX] = {0}; + char seed[] = "34985woeirsdlkfjxc"; + + property_get("ro.serialno", value, NULL); + + MD5_CTX ctx; + MD5_Init(&ctx); + MD5_Update(&ctx, (uint8_t *)seed, sizeof(seed)); + MD5_Update(&ctx, (uint8_t *)value, strlen(value)); + MD5_Final(hash, &ctx); + + AES_KEY aesKey; + if (AES_set_decrypt_key(hash, sizeof(hash) * 8, &aesKey) == 0) { + uint8_t clearKey[kAES128BlockSize]; + AES_ecb_encrypt(key, clearKey, &aesKey, 0); + + if (AES_set_decrypt_key(clearKey, sizeof(hash) * 8, &mAesKey) == 0) { + memcpy(mEncKey, key, sizeof(mEncKey)); + } else { + return -EINVAL; + } + } else { + return -EINVAL; + } + } + + size_t k, r = length % kAES128BlockSize; + + if (r) { + k = length - r - kAES128BlockSize; + } else { + k = length; + } + + AES_cbc_encrypt(in, out, k, &mAesKey, iv, 0); + + if (r) { + // cipher text stealing - Schneier Figure 9.5 p 196 + unsigned char peniv[kAES128BlockSize] = {0}; + memcpy(peniv, in + k + kAES128BlockSize, r); + + AES_cbc_encrypt(in + k, out + k, kAES128BlockSize, &mAesKey, peniv, 0); + + // exchange the final plaintext and ciphertext + for (size_t i = 0; i < r; i++) { + *(out + k + kAES128BlockSize + i) = *(out + k + i); + *(out + k + i) = *(in + k + kAES128BlockSize + i); + } + AES_cbc_encrypt(out + k, out + k, kAES128BlockSize, &mAesKey, iv, 0); + } +#endif + return OK; +} + } // namespace android diff --git a/proprietary/cryptoPlugin/WVCryptoPlugin.h b/proprietary/cryptoPlugin/WVCryptoPlugin.h index acbf80ee..26752787 100644 --- a/proprietary/cryptoPlugin/WVCryptoPlugin.h +++ b/proprietary/cryptoPlugin/WVCryptoPlugin.h @@ -20,6 +20,7 @@ #include #include +#include namespace android { @@ -27,14 +28,16 @@ struct WVCryptoPlugin : public CryptoPlugin { WVCryptoPlugin(const void *data, size_t size); virtual ~WVCryptoPlugin(); + const static size_t kAES128BlockSize = 16; + status_t initCheck() const; virtual bool requiresSecureDecoderComponent(const char *mime) const; virtual status_t decrypt( bool secure, - const uint8_t key[16], - const uint8_t iv[16], + const uint8_t key[kAES128BlockSize], + const uint8_t iv[kAES128BlockSize], Mode mode, const void *srcPtr, const SubSample *subSamples, size_t numSubSamples, @@ -42,9 +45,13 @@ struct WVCryptoPlugin : public CryptoPlugin { AString *errorDetailMsg); private: + status_t decryptSW(const uint8_t *key, uint8_t *out, const uint8_t *in, size_t length); + Mutex mLock; status_t mInitCheck; + AES_KEY mAesKey; + uint8_t mEncKey[kAES128BlockSize]; WVCryptoPlugin(const WVCryptoPlugin &); WVCryptoPlugin &operator=(const WVCryptoPlugin &); diff --git a/proprietary/cryptoPlugin/decrypt-core.mk b/proprietary/cryptoPlugin/decrypt-core.mk index 23dc2797..d2af6dd5 100644 --- a/proprietary/cryptoPlugin/decrypt-core.mk +++ b/proprietary/cryptoPlugin/decrypt-core.mk @@ -8,10 +8,5 @@ include $(TOP)/vendor/widevine/proprietary/wvm/common.mk LOCAL_WHOLE_STATIC_LIBRARIES := \ libwvdecryptcommon -LOCAL_SHARED_LIBRARIES := \ - libstagefright_foundation \ - libutils \ - LOCAL_STATIC_LIBRARIES := \ - liboemcrypto \ - + liboemcrypto diff --git a/proprietary/drmwvmplugin/include/WVDRMPluginAPI.h b/proprietary/drmwvmplugin/include/WVDRMPluginAPI.h index c4f9371d..6b659c3d 100644 --- a/proprietary/drmwvmplugin/include/WVDRMPluginAPI.h +++ b/proprietary/drmwvmplugin/include/WVDRMPluginAPI.h @@ -71,7 +71,7 @@ class WVDRMPluginAPI { virtual bool RemoveRights(std::string &path) = 0; virtual bool RemoveAllRights() = 0; virtual bool Prepare(char *data, int len) = 0; - virtual int Operate(char *in, char *out, int len, char *iv) = 0; + virtual int Operate(char *in, int inLength, char *out, int outLength, char *iv) = 0; enum EventType { EventType_AcquireDrmInfoFailed, diff --git a/proprietary/drmwvmplugin/lib/arm/libwvdrm_L1.so b/proprietary/drmwvmplugin/lib/arm/libwvdrm_L1.so index 62cbea5ac2f92997eba54ec21d243e6d5272bd34..b2dfefdf14c54678e2ea6c047d8a0da560659693 100644 GIT binary patch delta 40002 zcmces3Z-sY6T<{v2shJg)+EQ9%T4vU+riO|I4#~w! zYHFxxpjKLVjm%69%lue*!BUsIQ0NTH!v5aRTx6Kv_xJnrdtRJ`V`f@mS){GE3akUwwW2U6y4OpXSCe@zy1W#@S=myXPP&fF);P1gd0e%%cxivEV7Q6-iJNQYgm0>!_f+)~05tsz( z55E+?J^b$oO97n>e+>K-P;vpF1ro~)13v)%d0FAtv}BhEx*lO4z$b(62THE3M3^$r0QkjnxI6eQ@NWRWM`7?@AZizl zu&)td^#b!Me0zXX@Na@&3i=MH0iN8S@U`&s;5qnQ_+9Yio`udQps&F{q5!yXIo`kE zKLTG0dYJ@pv*A5t`BZ9uqZo{80$mQlQ}8|Ew*$8WT?;=G{v+Vtpyblwhl?D;yagIB zhtCHMg}T9j_Z{3E4Sh?8<{U|FC@q^z1 z|2Mqa4Ft%L1EN9Cz;BarkepV$jEUTq`E#I2GM_@D(=Pzo@NE!j5d1Y+cu}TA0udet z?*o1e=nT+E&?zL8-9*rC2-^wT8k7fZg8v*|?Sf@60y_7(H@&-BBfx!wP$TH~pf7-u zqgz^{%=ZPJ2_GY48~6rzZ{UZZL*?*^pziRaWIO;e9egX`uR!~Qz6eS#4*cuXv^`|y z;|M$nKOML${7CTs!M_CG1$ZlHEH|cAC$@llzEyw!Gi#(O31d9Pk?<0?tyLH69|)x^ zDU=3vHKtpf8lMBc34Oh+-wF}c_$gqu{`(qyS%bT{p-I&d-f(M~z!?p0i=5T^i5h$w z_zn#8kPUQb3NtWbGfKSND z5Y7Vr0XRt3KMj0GC2s&OQ{e%=m@oi`$!0iwG3RUdQFFji3}{1vXe@OzwVY~A1ecW4ae1{gb7U%(x} zD+R*|^r={Dffd&VOe*ji$SvS0y<`fM9kK7=XF8^aRJ){euwpt%!0#k>8sp}cW2A-NAC=iV7D1!kS{FDaI1ipg!iott;{{W`DDH&X?(bsoG zZNea`K`XV{Bn0%_AlD>jcSINzt zF#k>!<6A|AFA(5`fO&ERH}u{`l7c9o3cM6}mMqT!z63l)#=io0-iS%Nj6*xaAYdOE zj{{a56=)≀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 delta 39551 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
2T;!>=9qiwMvBF^(q?$Bl@i9I{r(Mnk6CoIc-T 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%0A$Lr8*2Lc$8G7~ z2Y%*bw0{Dt!L!s9%uxb);GSVZ2^*!It!+24dm@*XtCX0{+*2PF|do z{zY*9APR;{Of9wp9Q9WmW%wZlFh~4=hBs<>@*s~jC5ZKaiqlfzB)Ei!egotP49@2U zL%;)@htnga_2**cS(Zweh=8CHJmZbC zTxZ}E4Sz$!-_!7I!#(Yf$dtfQjln4m4<13wxwc;22i)T*{v-`w3@%}+EjO*s6*Ugus*F*m;mw$3bY9AHcsmibV?RG*v2l$}l*teTz&2_c+qe(eOhW z&R-LH^z3cbkMu-R+M%0l~1;d@(M2=_QDewR@mrj%<6_=S^g`8*H)vx;v3|3k(1g5LzEv}nwI1+L1M z`yE`>;cz#;4_g3;KtqX!z%=kar`mWn_`~44nZ5%2F1Tl!Tu8SZ<|xx8;C)J!jYmqa z8hr2>Oq*Wfnzz`Xni3as=k?iKI}f8ti@trX~MaF3((&$V%@+)+9_=uuMy+|s}g z-r%@a)?~{x`gP#yCGQz?U)VaNx=yog27~i@ZX5=E!De0=CfY*lLDM_TPaIk~2`!4;zoA5cD&c zelhqe(j$Ml0NDsoKZhL$_c&^i3*ecm0{AAjw@(BQMu9Q9aNalYvJ+58R-dN8bRS3T|NbTfh@k`jg=CD*XlU3=~Ld zK?C;(`0^^Wzo*FzNm#DJpbIN;Z*ZF`!O`H^)!0*K`bWV%jxNCh@Ds52R3H;vy=2}5 zUaU&*DEO0G(Egq^@^u6pKn8u07+pjE37+JYelQCBGW3B=pG;g;!#BZiKtGJ>4^w>H zi9CIVGb7!1+D6d~@DOVa$4zDtb|9c05j;(L1pJ)pslx?crPBACh+((7Z9i!y_&lWd zI7{yk_ziH>ORmtr;3vTQF&>eO>mP$*;%V}D1gM{*R)edbQuctWpHfP}J&ro*zZyPt zl1Hly#YGx^ViJu%<|u(yjln2t8sa4}jAFvyxzg`xrPK7kl_w za9R>8+{pbGT$TQC_g@H5C+N^{NyE8MtD_$b%6aQUzN7EV*r(IsgG&^B>_OIFBSu z#jzOSGq|@AK8vZ0Z~-2o2`!k;2-7j|5iZ1uEa3|nbjL`@z;r;k1m};0Z({93_%@~; zLUg0^gq!dTN%$`2JHq#{l|xvFgHOU;SPc+VJcIoU!f!C> zBofZ!?4R%gItRK)w~OeTgg>GW6JibIPgse*O86J?oU)ZV zY{gof(2eCjA^Lk7A^M2M5;3_`qkuoP(R7S3~-6oA9#<%A}lvk^w{ z+$utxrL86Ghj%XsV|Xr$5NEmBgm^u8g6!vcmk7*;WKFl=Nf zF?2EHuu7o(^bD>3ObBCWVmOFlEWg6!vcnd3=c3o z#;_D=u&c&UwQ*2vJs5Vt_3#taP%{TUi%#P|zl0U->-7@8PHGmK$4h+!5MhKM7$}QYsj4DI9o?A?@T4Uyfm>!wP5>Ayz=SgjfNcC&UV< zf)Fd9N{M3 z_bLtbr*2klMbA3>-gUq4H(sy0d*Y@?u2jhtD!E)GpHs=DD*0HOY`tFGMy?mB-Q_Q^}bsIYT8|RC1auTa}unsuU?IIawtqsN{H+9IKLJRI*7Whp1$uN;X(k zgj2~PRC2jWKBtmPRq`<=Tj{zMs}w~lxlkqNs^lz{yjCUKRC1+3LNVc+}Rjg7JspLYHoU4+vRPtJtY*WdZDmg=t}IbJ2ls^l1zY*NV~D%q&WkINH_L8ahSvh=s=5t>VN zT|=Afx+!lY^|Tm9c%@}b{3#2&#L1aS856nFLly`F-Wg@xf}m0fNz*c9OZ%3sA7EEkf%%$F21ali7HZJ3SU#8QxQjpHYSMW~!1~ zyv}rC|A+23rt{b65+wZ?w^%M~8?jBIPBTIBhwhxLy9!;#XDi1QmrEJrr+yI-h6?wQ zE8NGsp7-`H>GFlitSinqS&m1@tg1B5CwEg74lvAvEkWi`^9Xa%#5%hWx6Txt?=Y6| zrd86fJRd<=5oA0mTwZ7C{EWl!MW3|zlU!63{XMDM-((9D^r|!ljZm7X zLN@uHC8CE>VFNbosf&E(Z4NVqOh+=pj14o4pSMzCS+#EQR4sRU^d{lZh8X^^@XLmQ z@w;oYq~!_Azv!6EM`R|s#ll)HdWWPp_9)@N@XB4)Q+e6@Dv zTw(Oa(a#Q%^X7-?%H854wNCVnMYVr#z&{nhAAv_V9q(iAXh}-gnCiBB#dr{e^YL}+ZDbY9h8xo*Nsr}fJVCEnE7@8E}myP{}%uS<0&exdC z@h6qM>T4)3f7E5|2I1_c$uR{`y2UN{Yh)%TWRr>-?)1g=`0p3^EO^1OakBLp*?6`p zy;ZXD&YB}IS%r&u1pWYg7QBSEOtQ$O^NE!+dCn4x(mjXLZK>&05@VK5MxZ7eEV&a& zzp|##GBG^XOr>90!ws#wWU_n(ebz*>Xe#ps;&$tGEAHA8%67c4fhZnp~V~?W2VAXRC7bBQJAk$nB0js?A&Q;_ucD-Ywv~d=LPY- zhacQh{RXb>6Jf8zd`mT#iw;-Kzi%z^W!HXX^)l#n4etBDmGoI|(N_IM1J}t|KBIA2 zhFe@Eypz>0=&9;s77i8(=5HkfY~~23vw8&dt>#X5Ms^7nxA>rNGiz?t^=1sQs&4P# zb$0j=c+dEVm&b=&GzsaOheicfQ|B>OyT#I~vNhPpWxoEiFw;B5eW$s_e}ykMzh)|} zq5}s%ITq8WPCB|=674<<%`t2=Gckr$s@nyzD@A~*J z1;>^JgVATJ4q4)HWe=hL{#Ah`CiICIT)h}vJ(3G8h7z~VmZ(s5 zvP8wKmL)3q4Oyb9{3%ORx!)jhrz2Nl+OlN_TYqTL-=)U+7D&zYHIN$cG?1F~OCUA! zQ6M$@r$D+8p8)C7>~DE=lF9sflApye49(cnE$(j7H&8}9fs}PVkP5R6NX6R%qyoPS zoRtP)Jp^jTH9%^{l|X;sTP^BlJbSyX8PDEUn$dDwX+}@?Y!#o9LzMphYICc&M(CdV znK^O={wK+X?Q2}~mBl?ujQxEobj8M#9k4FK1-dQSF~4m#RPaT__`I~a4~3ZKMx{CI z23#zk+tgymX9=D2BDn(@=?#?A%MQ-teTi+mY zUVCvFg}3vDCLeJ4<(bR_EqRFnmpWka;4f!<*1<*B+Lc0-LcVEl6<>5v{8wE({ys0Y ziUp1)`-!)37%~e-I5P!jUSIxQAtJvEUm=Xl@5iSKPv-YASsedE)DStUNsihTQO$@N zh^S|03cK_Bb{#F3&Kv2Pua0r3ve)%I1^dnO;cbEE<-pQMKHXA~tmCtU-*@)Y8EXXn`?)^FZ{XkWmI=Gxzc_qWwav`u z8)|iam+S_)T6?Nb+k2<~+S52J*KUj9vmEl3FN9qUjg4u-?m}}=R&`o>RC;2M{KT7= z9BAIPLQ~HMfc``3PL{ zPPpV)_^xOb4+wX5_2{2kMVB~DqTco>I?tM_CVTO#^15as^-qI2z}yXuQz;DFJxP!2 zS|z--JB5!He%#%wW96Ncr2gj7<`(fcLEJqu^0BHP?LKm)CRZJ|cT7JQYK(mk(`Tz# z=57%kcV3(5Bhc8 za)kfr#KtSNZIe6sM=hv7Q?9pSAH*YIhA_eW3T@BEMY z@E-{qJ{rfz2;Y4)!SGaFEiS+|v(WA1wFr9u<6ZnHVSG_ny}o|kF=2L5oG$RTkX6*J zbMfu_Gl!dF%-+d`5V9Z;#mNx4BwB?~ABLk>kI1Uo>co*!T9wa_=~V z-a(Ad^ELa{@`eNU;btL!?^1r7&}rWizFb(buSeIVju^Cgch?SSDpt9jbM>(;;t=7J zePeisP`j_ksNZVoUT~pV^g#8C1hWj{t%v6`m+G_i=mQQPa z{r)JAK{uU@Zew&%O@FrQW9;CVLA))m^rQWN4+9~1s!MFIM!rVi>BE9OpPc6nn zo>x|jc(!JR*(=|#R@dRAy}rjVGcUA=akWC>p>9*X>i;?!Bq!!mn`;kBPeBhHXy=AL z*f{HxSTpriJzb=UUiCkpw8eO3{aE3J+W(6LFW6)6=}u#jdE-Gr_epa1*qZ4{M-n@h zk4X>h$q(0;$C@Kh?#sg5PsZ?{3p+l!KOnc}n7u#NpI#`%4dH*EjMFWx5h9BRjrq4a z2By<%ykcx-!>_+iqNm%K5Pjt9xSVM<#U)oJ#o%5=a#jhCCz9aUo+WzuT74y~D;_*> zbPX4Ct-Op`5&Pv*K*Iq;e{%w^Tff%RlM>7vQge&H2!9p#=5Gmn$;i%baioN6S>tUU zZytu;zrZCVmxPaAS-sGbjAxPbv=(t?b%*U8cU+drBjSrLOXq{ir1FQ$r1Q9C9vR$W zbBj3H?Tbd4=%(l)O+sNwIDbw!UGlJQu1n~Ac!;h`vygb$f)`WwA70Vxa8iSR9A z=W0UU^25U1iMq;QQ;WDqnDl8M>zvkX>DTd8=7Ey+mfqZC?-*Hns|8aDg+)kuWY*2q zBAPMv^h1_D(%<$dgw?z2>{JA!RAZ+C#kY#+9;tXgVIv+|rYGP{DEQ9s{_xU+ctXXC zhL?e*@aJH29==?-{pof+hD?>P@yG)ZF!x+M@)o~NnD*HQYjYFbHT~Us^MS;>m-Kl( zO6FQ<34EXAk2~XB+=JZWFo}yYWcvz!*&T$x?D~SRl62XokK_`4?))n+4@aQP@wm_U z-`nhPi`(64>B%L1deNhdTMU%Ah?{A<()!GuJC`2wOnCAPNkbAh>K=F&w^T$9R7HMM z6}c5np^oel^RYmqBw9t$?ZRZooz@`@Jd4f{ivN_1v-D=4tVr{pl0i8AMOWkWJ6PoK zhRp`^FtbaXdPlhNMGSvO2sqx0uNDR#pE9LY9M*JMG6d=GZh4I}88YI{Wm4P{V?>!0 zzob=+f-Y_tX5wXBq%k7J9GX!kP2E){rR-`IyFxcL0xOURTB&u(C=<>c@1pyyPPlU1 zgn7O}5}d~$i*$*%ZvQFSR+eF#;!(+9(xqLNj4LWIeb6JNOWaZ?y!GYeX|Z+hB+qEH z4Ih}wnL^WC;=;OfF}&HUd?g07ODw&;Vp1vw%=f7EGp@^0{4f+NXhWiRIcEyV07r4- zB3_^Jr&M(YUg&yaq;6E5F!e;rsJpFHgRkx0xh}Eb_Dx)|`_c2vE-%x=Xb^o}U@jlI zO0t+@N{rikV0!Le;S%TF7JfPrZFP$Sn*#Gw?Jm*bxMdH;I1gwT;pKmb+tw;(x&!m4 z*#D5Cv-}ziK7CQ*4z~kyLrRQ0hhbK%b?Wa{WweNV^JS^*;a5s7OUHt|a$CiK7OyyVyR1iw+u1X0#9V1XSh>nviZyvkH3dqsrdT|Dqf%Q8WOu< z)FZK=R$=GK(8#Y_45-@1+dlZ4b$h@4sQpL#6?=vKH~Uq4BL>aoXN2EQhK>!5$3Yf+ z7GC0ZU~I%erhT?`#TK-~i?{h5+|EbY_JvD4?C?CmlPtuZ3ZAyxF<*Ydo{zfjcHn=Y z>m4?}U=i(W;He%L((w#B`(xn?px@%azc18(Yx`3=zj8)nU51o|3vP3Xk2%JhX%Uqp zY(CZ1YWP-h3;IIqvM zdGFM3_bOR5LMM1_yGY4mr^h9_YBP|m$@~&5UA5i?^X|1seXVCZ!6nw$azkd6)C=K zStuwC4YbsLiVWt2A3pZt}+5JfO)X_N}F*Ngqg&wYYeWu#&zg-7A(N zjPOwG24WVdaf!jug*sfKvDO!Z$t7N`i8tHrbQd-trXK707SRh5SNoHFKpI{ddm3{& z{JT%$wKDi+PvQOkJ8t)PKe*i%{wd+m=O(Z1GqwwtK98_g)G8Ck7P+Oa)?k(y_C`sn zC8eZ?<%jg1CAkwRBo(dteJx2L$lr!CokN+g4A z;F;wZ#yl6Z;FA9CMGVq~&dbtTJ{BV}YZ%QL%PU+~@p#SBNi-2IOEnBHlQPkVpQ^#c z3GbD8KTmEJU%X(_h9nTslus#40N8?j}Q16UtB7Z0?QT7q<9 zs9S7Bta7}HG4c{Uwz|adT2n7-?k8lc1%}~~X|%YHwXDQ2&6-H{SWr`fdQ1!d4E0!m zdK6q54&8q-?<)1lE!W@u?G>7ws0ay84%6rfEC-I!v;-^*dI$R`r6^>XT*&*Hg^Xj} ztk6p>L~jwV;FeGy`v%p_hiVp!WJfh~k*HZ3YKEE50jxLa8&2T4 zx*F|4H91^EH91lfImw!8xUU}yd$qa&IZ#s{L=H4Bz5=9q@sjJzf3W5#o68NUYghVT zn`mN{OOJ_FE(Z))#IiWOTkInV%gR>q*9CW3 ze=Pj_e=}6?5`U@^=6qxB{E}O@eWm&3FH*5e^v=iRP$eAs<}v7(RSAJ-Lm(`w5(b=& z9feu8O1GVhnRDsPgr2|ik%#2RxsLADi7U;|m5*PTVE#=q#h$74GMt-mf3m0T$As1&NRs!lHrG;KCP)!QGe8EQWIbF zgju)GZ@(@Z&!erKiueLdBCUQ!F0n@|O>f<>1NTj*@9fQ@PaW~V)@E^39qIkBBi9M& zEnDka@7O7{wWU@@XG^m<{Z2AA0%)(^TX_9kMD%%=Z*qkcYZ0phx%Iq(kI%ghz<2F5kc0)nGm#BMp+uJM-sq@L|h78_s@yW$^Z0h^02x!Ra zXpFcZ6&9zOFGzceTSP$;9{4U%S6U~m{BDr0s7@&UE;@LqD+P}rZt;uOw^5z31!05A+118x$Xj8Vlp;_ zxzpdL;H}{p9EZTqgYOJK3;!^1wl7{LclE_Gqp$Gq4<=o*LnyouYK?b$H-zy#Rw*N} z?UUr?-4Ms?1e%5ig3r-;H%#Tdwiv;qz?X8~4fA+?7Wx6$#*W?%%X!MWE7+b6-VND& z3Roc62|w?K13cZveUU>MM&)J9DZKk<=_Y|i_tBZ0BysaoDU~NU&2i8`U55U@rQh*#hMcF3oI^SJ*_kvNkO3vQ8^j`Lh z5lNl>bKvUip9XKsJ{7Dj`-j2WvY!mrmi(W%4V24^)^kkqmcC$)C9v&QbU*V*gkuNoWvP9iBobCU&=`wlau&NPU5hf z#3ynR2av?&8o~d^$M|C5*&pZfR^gi;C+fyIg~0MOoxfAaC_iBxO9x~T(R1g`b%|SD z5$T3~^gv@o*zRYpKjRWNxC$2r?xzPCT}FsGYTmQ+T;d8>)S}?MT%-YyHoNBkHQ$K) z_G_-)FK`i|ML`+H2-9sdz+MTU;h>EOv==u_#|_3TVjf zz;(g%5k)DJ3Jc4mJ%uiDrb{?=DbzXvHpjT($VHc7K-_X;nRMAmImJU$ZsH=wAg>7X z7|UqEB~EvZFEU`2IN3F^C=h6NO)ClpCc0)8g#sUNJ%QQMC60DIT||#Cqg?ZgCIN@L zo-Y~>{Sc&C5j);|8U3H%$8TLCJpNOVwON{v!7NEnJe>i;3p)&EVREB%WUitx)4O%0c%K>WQZ8SwW9iSC)_q?hx& z8-lsvmd%N}ORvy&%X`h@;VP3A%Hx@?iP6gitJyl~JkSetrNL5?`qzb<&Sw%b5|8)dVLM_s7 zGG8LM$BS}%JTJG0MQ)Gza(g@@x5v|Rd(4r}*sJU{c8A>m|HioZLM~d0+&0tXwwWxq z%|y9vlH|4-FSpGDlBox3F$VRYSJiG9*bgTQt^ds!KfBs%uWu3VL`(3H>hd=65x)D5 zP4q2l7Hi#oC-M1SMXzHjPlivoDi-Jx{$KstXXe*(V1(Hrk#hGUx?o^}ns#;!r-+j?`y&G=tg_N2!5*=*hR^jBb{M#^$FG$rh@?uW?iTK7bGqV z4^P-mdeUji?SH6a-ej}spi@k_6N|w(c-xR|SR6YC=W`KJ2ZQkVZsemjM{n-4*~{{$ z<=DjNJg#3<{w8T+#)i<`L|Z+-qHDhKz6Oou&JJlg7g7?QXXxb=qwkE*Pd1}9V)GLd>PM`2 zNbcEPa%q7Oyglk**ZeXm&B_lgDwF07E0Zi3+MVRZ{?NTn@ufQ}%|nZ#kj?*EkIPN< zi|scwY(T@*j-f?8_j6fc`*kj7j@mwZQ(bE?CY^tm*pkkif!@PJjv{v6_szw?YmvS)v(Pew$^bm3H2*&^0S%c z35$1nR4x*Zm{HIBl}Q;vgDXozA8h14>4WCRlG8tJLh!Gfs#b6T4HI=S=Aiv8qP2fh zRQ{b?$>wvnoZ^5w6GlPbI-{M7?6pO(>#%n-(JRJmJjiWr5sRg${NHYk!ve`E&Z(oG z(Kk1yBql!yJ!4#j6T46GSR@6srkd%p`L*7-HG=gcbKTWj)Vf?G3g*A5N>7*3KgImy zq5`Yj$h?`0d9X44lNdSiA#&ms_P#QUk=Z4Cl*~+ZTtu(U z?$}lK8<@Qo;{Q7{d*OROVfZhlo_KKtek}YW@Jrzjz|)-Y59S1mFzMIcA$xB7VCs6x z$(cH21)KbEq4Kev7uQ{|{TkwvQTL}5_L{Ks*Kq5e+X?13El%;H+q5(E{R%t*a(Dua z^)|m<;+^Mh?w$T#;(*h=%)eWm-;P-1JVo-xac?n>xt634Pj`tOU9qTccuV&~hK3?$bHC(m#o2J1QByM+`M31? zWV|^ZiS(D=N2zga1SpX7}bVIgwY|$)QC9FMHsZ5T^CO^1_9>Sx8T+U|k z7Hs@gHXq40U${o1E?LaxGHjw{o6&jqVwu8Bw{geCJnY-Y(eQ}d?4=4sjHCD%0Aq%oUKuqlvj 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 DuK~>W diff --git a/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp b/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp index 315850d7..fb491c66 100644 --- a/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp +++ b/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp @@ -851,10 +851,8 @@ status_t WVMDrmPlugin::onDecrypt(int uniqueId, DecryptHandle* decryptHandle, int if (*decBuffer == NULL) return DRM_ERROR_DECRYPT; - (*decBuffer)->length = encBuffer->length; - int status; - status = mDrmPluginImpl->Operate(encBuffer->data, (*decBuffer)->data, encBuffer->length, iv); + status = mDrmPluginImpl->Operate(encBuffer->data, encBuffer->length, (*decBuffer)->data, (*decBuffer)->length, iv); if (status != WVDRMPluginAPI::RIGHTS_VALID) { (*decBuffer)->length = 0; usleep(1000); // prevent spinning diff --git a/proprietary/streamcontrol/lib/arm/libWVStreamControlAPI_L1.so b/proprietary/streamcontrol/lib/arm/libWVStreamControlAPI_L1.so index 01cd911de2fb6b89440dfdcfc25b4be487ab3ca3..e74c1b355959a1d25c15eb28b2aec90ffd50273a 100644 GIT binary patch delta 138 zcmWN=OAf(M7=Y1S)LT(+<*HYanA~*4j=BqjFEOwHV{E)M?P9g-e?bT|9d988BqTm4LcH{<-T*5k`0O)|+BIb`Y**8|1 zyrIaEr+`C|5@jk>sZpmvlNN0{bm`G&z>pDRTqbx-nLYK}D)abQ?J1M|tbRp~IbF|} aFb(F?mkYU+E4h{%xs^M)PtxFUy#E2#|25YD diff --git a/proprietary/streamcontrol/lib/arm/libWVStreamControlAPI_L3.so b/proprietary/streamcontrol/lib/arm/libWVStreamControlAPI_L3.so index bdf77f761dca4278520bda427f0d89c398a0655f..63801e0c91ecd7356392097cf61895e0c1982d24 100644 GIT binary patch delta 139 zcmWN=ISRs107X&0#(AEHsNZ?&0zpU?;%3rVTo7$jxC9X_g)~`47UVl{(&yKtdc%+- zk3)eXCCXH&Qln0TCN0`@=+dLlfFUEsOqk*_W6t7dgUooZFte`ll51vzx8q+z{~kw6 VUFljky49WT^`J*RC2@5AJpRE$G4B8X delta 139 zcmWN=ISztA7=Y1?;=bUnh&s40)g(5;LA(qN#g`auDLjHPu{5FK7;_;0m%RM-Q@Kn~ zlqlm+p-PQ94VtuQ)1iw?k3Iv2j2JUv$_$S=J`0wt{yMbEyd$f9WwN`~;m0wz==wkrz%w!G diff --git a/proprietary/wvm/WVMExtractorImpl.cpp b/proprietary/wvm/WVMExtractorImpl.cpp index fe941f59..978d98ae 100644 --- a/proprietary/wvm/WVMExtractorImpl.cpp +++ b/proprietary/wvm/WVMExtractorImpl.cpp @@ -21,7 +21,6 @@ #define AES_BLOCK_SIZE 16 - using namespace android; static sp sDecryptHandle; @@ -33,6 +32,7 @@ static void _cb1(char *data, unsigned long size) if (sDrmManagerClient != NULL) { sDrmManagerClient->initializeDecryptUnit(sDecryptHandle, 0, &buf); } + } static int _cb2(char *in, char *out, int length, char *iv) @@ -141,6 +141,10 @@ void WVMExtractorImpl::Initialize() //ALOGD("WVMExtractorImpl::Initialize setting DecryptCallback\n"); callbacks.decrypt = WVMMediaSource::DecryptCallback; } +#else + if (!mIsLiveStream && mClientContext->getCryptoPluginMode()) { + callbacks.decrypt = WVMMediaSource::DecryptCallback; + } #endif result = WV_Initialize(&callbacks); @@ -351,8 +355,6 @@ status_t WVMExtractorImpl::readMetaData() mClientContext->setVideoSource(mVideoSource); mVideoSource->delegateClientContext(mClientContext); - mFileMetaData->setCString(kKeyMIMEType, "video/wvm"); - mHaveMetaData = true; mInfoListener->configureHeartbeat(); @@ -361,6 +363,26 @@ status_t WVMExtractorImpl::readMetaData() // In crypto plugin mode, need to trigger the drm plugin to begin // license use on playback since the media player isn't involved. sDrmManagerClient->setPlaybackStatus(sDecryptHandle, Playback::START, 0); + +#ifndef REQUIRE_SECURE_BUFFERS + if (!mIsLiveStream) { + // Get the content key for crypto plugin mode on L3 devices + char keyBuffer[AES_BLOCK_SIZE]; + char nullBuffer[0]; + DrmBuffer nullDrmBuffer(nullBuffer, 0); + DrmBuffer keyDrmBuffer(keyBuffer, sizeof(keyBuffer)); + DrmBuffer *keyDrmBufferPtr = &keyDrmBuffer; + + status_t status = sDrmManagerClient->decrypt(sDecryptHandle, 0, &nullDrmBuffer, + &keyDrmBufferPtr, &nullDrmBuffer); + if (status != OK) { + return status; + } + + mVideoSource->SetCryptoPluginKey(keyBuffer); + mAudioSource->SetCryptoPluginKey(keyBuffer); + } +#endif } return OK; @@ -467,11 +489,7 @@ sp WVMExtractorImpl::getTrackMetaData(size_t index, uint32_t flags) } sp WVMExtractorImpl::getMetaData() { - status_t err; - if ((err = readMetaData()) != OK) { - return new MetaData; - } - + mFileMetaData->setCString(kKeyMIMEType, "video/wvm"); return mFileMetaData; } diff --git a/proprietary/wvm/WVMMediaSource.cpp b/proprietary/wvm/WVMMediaSource.cpp index 7d86fe66..255188f1 100644 --- a/proprietary/wvm/WVMMediaSource.cpp +++ b/proprietary/wvm/WVMMediaSource.cpp @@ -36,6 +36,7 @@ WVMMediaSource::WVMMediaSource(WVSession *session, WVEsSelector esSelector, mNewSegment(false), mCryptoInitialized(false), mIsStalled(false), + mStripADTS(false), mGroup(NULL), mKeyTime(0), mDts(0), @@ -53,6 +54,11 @@ WVMMediaSource::WVMMediaSource(WVSession *session, WVEsSelector esSelector, } } } + mStripADTS = true; +#else + if (cryptoPluginMode) { + mStripADTS = true; + } #endif } @@ -171,19 +177,21 @@ sp WVMMediaSource::getFormat() { Mutex::Autolock autoLock(mLock); -#ifdef REQUIRE_SECURE_BUFFERS if (!mIsLiveStream) { +#ifdef REQUIRE_SECURE_BUFFERS if (mESSelector == WV_EsSelector_Video) { mTrackMetaData->setInt32(kKeyRequiresSecureBuffers, true); } +#endif - // Only support AAC on android for now, so assume the audio - // track is AAC and notify the audio codec it has ADTS framing - if (mESSelector == WV_EsSelector_Audio) { - mTrackMetaData->setInt32(kKeyIsADTS, 1); + if (mStripADTS) { + // Only support AAC on android for now, so assume the audio + // track is AAC and notify the audio codec it has ADTS framing + if (mESSelector == WV_EsSelector_Audio) { + mTrackMetaData->setInt32(kKeyIsADTS, 1); + } } } -#endif return mTrackMetaData; } @@ -260,10 +268,8 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options) return err; } -#ifdef REQUIRE_SECURE_BUFFERS mDecryptContext.Initialize(mediaBuf); mEncryptedSizes.clear(); -#endif size_t bytesRead; bool auStart; @@ -351,10 +357,8 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options) // drop frames up to next sync if requested mIsStalled = true; usleep(10000); -#ifdef REQUIRE_SECURE_BUFFERS mDecryptContext.Initialize(mediaBuf); mEncryptedSizes.clear(); -#endif continue; } @@ -394,13 +398,15 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options) mediaBuf->set_range(0, bytesRead + offset); -#ifdef REQUIRE_SECURE_BUFFERS if (!mIsLiveStream && mEncryptedSizes.size()) { mediaBuf->meta_data()->setData(kKeyEncryptedSizes, 0, &mEncryptedSizes[0], mEncryptedSizes.size() * sizeof(size_t)); mediaBuf->meta_data()->setInt32(kKeyCryptoMode, CryptoPlugin::kMode_AES_WV); - } + +#ifndef REQUIRE_SECURE_BUFFERS + mediaBuf->meta_data()->setData(kKeyCryptoKey, 0, mCryptoPluginKey, sizeof(mCryptoPluginKey)); #endif + } #if 0 // debug code - log packets to files @@ -432,7 +438,6 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options) return OK; } -#ifdef REQUIRE_SECURE_BUFFERS void WVMMediaSource::DecryptCallback(WVEsSelector esType, void* input, void* output, size_t length, int key, void *obj) @@ -453,10 +458,7 @@ void WVMMediaSource::DecryptCallback(WVEsSelector esType, void* input, void* out source = clientContext->getAudioSource(); DecryptContext &context = source->getDecryptContext(); - - OEMCrypto_UINT32 copied = length; - OEMCryptoResult result; - unsigned char *iv = NULL; + uint32_t copied = length; if (clientContext->getCryptoPluginMode()) { // just determine crypto unit boundaries @@ -465,7 +467,12 @@ void WVMMediaSource::DecryptCallback(WVEsSelector esType, void* input, void* out } memcpy((uint8_t *)context.mMediaBuf->data() + context.mOffset, input, length); } else { + +#ifdef REQUIRE_SECURE_BUFFERS // do decrypt + OEMCryptoResult result; + unsigned char *iv = NULL; + if (key) iv = context.mIV; @@ -482,10 +489,10 @@ void WVMMediaSource::DecryptCallback(WVEsSelector esType, void* input, void* out if (result != OEMCrypto_SUCCESS) { ALOGD("OEMCrypto decrypt failure: %d", result); } +#endif } context.mOffset += copied; } -#endif WVMMediaSource::~WVMMediaSource() diff --git a/proprietary/wvm/include/WVMMediaSource.h b/proprietary/wvm/include/WVMMediaSource.h index b16ce57a..78c13009 100644 --- a/proprietary/wvm/include/WVMMediaSource.h +++ b/proprietary/wvm/include/WVMMediaSource.h @@ -47,7 +47,8 @@ public: int64_t getTime() { return mKeyTime; }; // usec. -#ifdef REQUIRE_SECURE_BUFFERS + static const int kCryptoBlockSize = 16; + class DecryptContext { public: void Initialize(MediaBuffer *mediaBuf) { @@ -57,16 +58,19 @@ public: } MediaBuffer *mMediaBuf; size_t mOffset; - static const int kCryptoBlockSize = 16; unsigned char mIV[kCryptoBlockSize]; }; static void DecryptCallback(WVEsSelector esType, void* input, void* output, size_t length, int key, void *context); DecryptContext& getDecryptContext() { return mDecryptContext; } + + void SetCryptoPluginKey(const char key[kCryptoBlockSize]) { + memcpy(mCryptoPluginKey, key, sizeof(mCryptoPluginKey)); + } + private: DecryptContext mDecryptContext; -#endif protected: virtual ~WVMMediaSource(); @@ -85,6 +89,7 @@ private: bool mNewSegment; bool mCryptoInitialized; bool mIsStalled; + bool mStripADTS; MediaBufferGroup *mGroup; @@ -97,6 +102,7 @@ private: sp mClientContext; Vector mEncryptedSizes; + char mCryptoPluginKey[kCryptoBlockSize]; void allocBufferGroup();