From f2406daae137f66132244a61cf9cc1738259d252 Mon Sep 17 00:00:00 2001 From: Jeff Tinker Date: Wed, 24 Apr 2013 14:36:30 -0700 Subject: [PATCH] Use /data/mediadrm for MediaDrm plugin-related storage related-to-bug: 8702754 Merge of: Rename Keybox File https://widevine-internal-review.googlesource.com/#/c/5240/ Store persistent data in /data/mediadrm https://widevine-internal-review.googlesource.com/#/c/5234/ ...from Widevine CDM repository Change-Id: I4030257942e572e6f42cc8f32872a6409d9e3892 --- libwvdrmengine/cdm/core/src/device_files.cpp | 6 +++--- .../cdm/core/test/file_store_unittest.cpp | 10 +++++----- libwvdrmengine/level3/arm/libwvlevel3.a | Bin 292248 -> 292296 bytes libwvdrmengine/level3/mips/libwvlevel3.a | Bin 311294 -> 311368 bytes libwvdrmengine/level3/x86/libwvlevel3.a | Bin 303754 -> 303800 bytes 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libwvdrmengine/cdm/core/src/device_files.cpp b/libwvdrmengine/cdm/core/src/device_files.cpp index 9791e604..dd6b4c05 100644 --- a/libwvdrmengine/cdm/core/src/device_files.cpp +++ b/libwvdrmengine/cdm/core/src/device_files.cpp @@ -14,9 +14,9 @@ namespace wvcdm { // TODO(rfrias): Make this work for non-unix paths -const char* DeviceFiles::kBasePath = "/data/drm"; -const char* DeviceFiles::kIdmPath = "/data/drm/IDM"; -const char* DeviceFiles::kCencPath = "/data/drm/IDM/CENC"; +const char* DeviceFiles::kBasePath = "/data/mediadrm"; +const char* DeviceFiles::kIdmPath = "/data/mediadrm/IDM"; +const char* DeviceFiles::kCencPath = "/data/mediadrm/IDM/CENC"; const char* DeviceFiles::kDeviceCertificateFileName = "cert.bin"; // Protobuf generated classes. diff --git a/libwvdrmengine/cdm/core/test/file_store_unittest.cpp b/libwvdrmengine/cdm/core/test/file_store_unittest.cpp index 24649159..0400bed7 100644 --- a/libwvdrmengine/cdm/core/test/file_store_unittest.cpp +++ b/libwvdrmengine/cdm/core/test/file_store_unittest.cpp @@ -5,11 +5,11 @@ namespace { // TODO(rfrias): Make this work for non-unix paths - const std::string kDataDrmDir = "/data/drm"; - const std::string kIdmTestDir = "/data/drm/IDMtest"; - const std::string kCencTestDir = "/data/drm/IDMtest/CENCtest"; - const std::string kCencTestDirWithSlash = "/data/drm/IDMtest/CENCtest/"; - const std::string kTestFile01 = "/data/drm/IDMtest/CENCtest/file01.txt"; + const std::string kDataDrmDir = "/data/mediadrm"; + const std::string kIdmTestDir = "/data/mediadrm/IDMtest"; + const std::string kCencTestDir = "/data/mediadrm/IDMtest/CENCtest"; + const std::string kCencTestDirWithSlash = "/data/mediadrm/IDMtest/CENCtest/"; + const std::string kTestFile01 = "/data/mediadrm/IDMtest/CENCtest/file01.txt"; const std::string kFileExists = "/system/bin/sh"; const std::string kDirExists = "/system/bin"; diff --git a/libwvdrmengine/level3/arm/libwvlevel3.a b/libwvdrmengine/level3/arm/libwvlevel3.a index 18353b7ef829ca09d24f0b15ad727f368a164202..8dcf6942f31d0ac5e4e3db4050bf1545df8ee0fb 100644 GIT binary patch delta 2335 zcmcImZA?>F7=F*aEyE628H{!eln-YKj@e?Vm<&=ER16;lDGPIS5yC(+aAVmhi(<27 z3uZ<>e1l_CO8IK}P@Jo*BN1YjW#JE-S#|3=^Y!Pr2Bx*%mUxN#6Us z&vTyh_Pw{~+_q~ma(XecJuW2Epfl)pbR;d=>HwzxXLv6G+|)i<*q*e&KdfgKGpsdi zYc;Nu&$i}H*QWv7zdtIWbs5$rt~)?jjs2_1D&G1QghlgzhPa^&d=Y&I#7Z-Wt|1U_ zs6iGH2C_UeUQBq-eNSvll6E=Ty)kabmd#aut`>EfdTf}|umyMc3706(Er6t4oM=ss zFcz5ZK4>^t+nn?0&xen2wzZI@;=_(wOO97FfLMxU0O+Eqrg)RWK#}SGt!=N6 zTy4r@o0Y-Ug^tWMwIvSYR&y7b_i!EZ^GRJyjJIcl`UZSpouM`WzdReonbgT zm?NllxW(DXwAk(3%FNi|ibAhbDL3i>+HuL5%)+ptNQE!Cl$2$;H0&zAMb~INN!M8% zr>hz}N>q549BPygX{gz>A&opC1mF_R^+jRbkdl3c%`|h(=e$h(8qN?m;yrSD$(fCb z!^!fvPym^4P5H2r6=D4_)gi4McXdbMInokva#%w*I8Rq2hL32-HCLv>{1NWAjA%kW zC4XfozFd(cS0(^l!HXlwAy-oYN@aMgLhDwHhKNj$kz<<@hv{ov8Ksa<$@x_ZrBF+gQ|nejuSy#DQ~+V@bHxb40@kuKO?C9k3z zAeZCE0Ean#0no%z0q_II&**{Coh!ZsNa1)EKu;)cr*p|s5AX`d3;?5qITGedn9q?8 zauG-J^O33r#LF9PJyeFM!a*C8V=wsjhoTSQ0O$R*#W)TCyw8#JPdK*Fp^-RApcn)= z$MHD8HyoV+-%Im9a-`eva_j_HAbkEbz^{a;o!qyN3h>tquVLg!HGGfc48VTQsmF4T z4yhOF@mcODgLw35zo7CgMT>h29@{I$!rg(h!!EHz>lf6X*c;+68Gb?K36GF% M&3e2(Pj(>nFGxx)CjbBd delta 2279 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 TY_Ue^HR$dv9W{KqX|w+g%+YDT delta 3768 zcmc&%4Nz3q6+ZXvE^(Ki-34S}RajtkMUX6r3tJTzL{>{2$xoXM;0P^HVl=|KQJO3) zRKVbZ!JIZrA`zk_GLF{hc8c*Q16YDhQzs^w(l$+~Gfqb*ZDyEcCc#nZxo_Xvbw}-F zCY|ogdEfoMd(OG%-FNSOZ%>a$?;VfsneWbBZnoy;7z}0u{{>$S2FtR%JW)1OssP{& zfIj)HYWnJio~hXZ7KetGATXmVvSh*nKlU5u-qO!O7Y zrkO8K(ZFJUQd3jAxwh)3HBensRlS*0ynQUmHxc&ZXyM_9F*#u=Zb+C4^KU5cm+6Ae zw_acJNRSXGqpgM;hth;kV(|0YcTL&FmK;k~E*Wp-W?PEDvOL#nDJ0QqDbCHaWb+md z{;UU=)fITnjV#f3s%}PL<9O_uQdWVtp4k)c*%<4wYpgTswrm-IN0&CX`vy~Y+`c?))&h~W5jn{6@&dy#xj61j2viI<_?WcuL z8G7qoY%Rt%q_eYVYp7;&e6yiRE4p@$on~|vw11>-yMW~m13QE+hn}55ufxhV;AO`` z_9y(tk*+;@dv;cgAaC)9={xo_C!XK24ITB#%Fc1m6UGd6+po~&%#2BFA93nQC`ub^ zz0pGcyX-jXOkf}4r%qE`_iuTIK($|-^>gfVB;wWj7>lRK_>}cqb$c1Vl^t~P_jm8+ zQ4>YRIbyWSC=X<4A5p)wg;%M}4^)Xqo=Yk*cDju5{;=+|VsMyvEtdO1Of*p(;b$5V z?wP)M8IJ6TUDfF{&gop~pJPvjQR8tMV?BI`YUBJ1wLK3i(0u~8>|D$`yzUGk9(_BH z(-c?jnhXEf$scl3jv-Y#-roN0?~z1v`p~3F2+%c&JT(1rRc>{bbL_s z=0LPR7>ZEq)>+F#qDLs2SIWoM2Ssm}qQj)I*I|`g7wwT$vy}4*4QATow7-;ONrh@W z>DJ91l2j=JRMWychtn%!77S8P@C00>BGyqbFCqy~+UF?@(Ez7#X-jIPGXY?PW+avR zjL6o_Q{*H9B;aLwradiRyH^DU1r=maJ2Hr8QQHv2Ez~Xu;wz|K7Q}7T-W9~xQoARJ zmr%PXh?nw`#oa23D)FC4W15fmf;0l*(Q<^as6qhC(X$;y$Q&mNA;0ZvHx zwWQb565#%A9Mb`MC7dMW`KLIiJP`_id=kfWK>Oaz+ua9|Z07Xzm=QtJse8sU4V3ts@ z`m-o$*C+4_=|0zRv;&lIr2A~(NYnNkj#TL=N2>G>9I4W)gi6|B|KgnPNW}}FN)rhe z@=`OTiYyY^BrK8eNlfn2;ZT>RU=uHmA{sbS$*mj<=%xvI%3pJC131k&4L2s?2NF)= z{;muyIXuP%3aBNN+wf9XuJ(uiW0lc{wno%iNP8Ri_nBB1 zzC+j5c!l~)X}xCPqx4QOyslx#Fza<1o7QZv7*kK$2iQuQAq?QUsEv^JPrOW;<{^MS zQPUjM2y#8999*P$o5X#hSV`i1Jvt69Vm5sBph;M%$1x%msO{Ii+^=DE)G!IoIsEL# zQWDy*s^6q&qxZm7em>&>X>^A7o5Jeo4^*sxnJp=i=jcctp}R8C4Cuv!*hNcxt#9do zPnMKL%RxgO+_a#86~qny;l8QE*}}a(MSYsL3_{R@)cH0Hr7G?cx{rTV5+ua!?wc9z zn_-V+OX4tnvVNW!@Mvxobi>!ngeg^^`%;at@1a09`Nkb-+$O{ZddWXCJh*rGVwZ5W tIiQH?ejhIT;?8QLbn(L