From ae18171acd3c70fc6d27fc6bbe85828e0f928fad Mon Sep 17 00:00:00 2001 From: Suchi Amalapurapu Date: Tue, 30 Mar 2010 14:01:02 -0700 Subject: [PATCH] Change certificate policy. The certificates of the package and its shared user certificates are initialized only when installing the package. When scanning the packages, the certificates are collected from the apk if the time stamp changes. If not the one's from PackageSetting(read from packages.xml) are reused. Removed mergeSignatures and updateSignatures since we don't support this any more. Also fix some bugs related to reinstalling failed upgrades. Some unit tests. Change-Id: Ibdeff170bd386d723f774136b18e0ad59d9cdabb --- core/tests/coretests/AndroidManifest.xml | 1 + .../coretests/res/raw/install_app1_cert1 | Bin 0 -> 13374 bytes .../res/raw/install_app1_cert1_cert2 | Bin 0 -> 14623 bytes .../coretests/res/raw/install_app1_cert2 | Bin 0 -> 13372 bytes .../coretests/res/raw/install_app1_cert3 | Bin 0 -> 13373 bytes .../res/raw/install_app1_cert3_cert4 | Bin 0 -> 14622 bytes .../coretests/res/raw/install_app1_unsigned | Bin 0 -> 11630 bytes .../coretests/res/raw/install_app2_cert1 | Bin 0 -> 13378 bytes .../res/raw/install_app2_cert1_cert2 | Bin 0 -> 14631 bytes .../coretests/res/raw/install_app2_cert2 | Bin 0 -> 13375 bytes .../coretests/res/raw/install_app2_cert3 | Bin 0 -> 13376 bytes .../coretests/res/raw/install_app2_unsigned | Bin 0 -> 11629 bytes .../coretests/res/raw/install_shared1_cert1 | Bin 0 -> 13403 bytes .../coretests/res/raw/install_shared1_cert12 | Bin 0 -> 14653 bytes .../res/raw/install_shared1_cert1_cert2 | Bin 0 -> 14653 bytes .../coretests/res/raw/install_shared1_cert2 | Bin 0 -> 13399 bytes .../res/raw/install_shared1_unsigned | Bin 0 -> 11652 bytes .../coretests/res/raw/install_shared2_cert1 | Bin 0 -> 13404 bytes .../coretests/res/raw/install_shared2_cert12 | Bin 0 -> 14653 bytes .../res/raw/install_shared2_cert1_cert2 | Bin 0 -> 14653 bytes .../coretests/res/raw/install_shared2_cert2 | Bin 0 -> 13399 bytes .../res/raw/install_shared2_unsigned | Bin 0 -> 11652 bytes .../content/pm/PackageManagerTests.java | 402 +++++++++++++++++- .../android/server/PackageManagerService.java | 249 +++-------- 24 files changed, 464 insertions(+), 188 deletions(-) create mode 100644 core/tests/coretests/res/raw/install_app1_cert1 create mode 100644 core/tests/coretests/res/raw/install_app1_cert1_cert2 create mode 100644 core/tests/coretests/res/raw/install_app1_cert2 create mode 100644 core/tests/coretests/res/raw/install_app1_cert3 create mode 100644 core/tests/coretests/res/raw/install_app1_cert3_cert4 create mode 100644 core/tests/coretests/res/raw/install_app1_unsigned create mode 100644 core/tests/coretests/res/raw/install_app2_cert1 create mode 100644 core/tests/coretests/res/raw/install_app2_cert1_cert2 create mode 100644 core/tests/coretests/res/raw/install_app2_cert2 create mode 100644 core/tests/coretests/res/raw/install_app2_cert3 create mode 100644 core/tests/coretests/res/raw/install_app2_unsigned create mode 100644 core/tests/coretests/res/raw/install_shared1_cert1 create mode 100644 core/tests/coretests/res/raw/install_shared1_cert12 create mode 100644 core/tests/coretests/res/raw/install_shared1_cert1_cert2 create mode 100644 core/tests/coretests/res/raw/install_shared1_cert2 create mode 100644 core/tests/coretests/res/raw/install_shared1_unsigned create mode 100644 core/tests/coretests/res/raw/install_shared2_cert1 create mode 100644 core/tests/coretests/res/raw/install_shared2_cert12 create mode 100644 core/tests/coretests/res/raw/install_shared2_cert1_cert2 create mode 100644 core/tests/coretests/res/raw/install_shared2_cert2 create mode 100644 core/tests/coretests/res/raw/install_shared2_unsigned diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml index eb005ce407774..9972a8c22e31e 100644 --- a/core/tests/coretests/AndroidManifest.xml +++ b/core/tests/coretests/AndroidManifest.xml @@ -15,6 +15,7 @@ --> ivCrFQXYYIO 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 X$-=y(If17W0gwXDrb_rDEAf8;sn==S literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app1_cert1_cert2 b/core/tests/coretests/res/raw/install_app1_cert1_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..dbafdc509181a6b7c208f14ce47bcc5f5349e5bf GIT binary patch literal 14623 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app1_cert2 b/core/tests/coretests/res/raw/install_app1_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..e26c2eb20f8db151fe1ca3cff15535313404bef3 GIT binary patch literal 13372 zcmdsebyywCvhTtP!9BRULkRBf?gUx5J0!TfySuwf2=1N`EVu`U;QkhS-+hw3&%O72 z@BR6DeYLu#r|UP>T{YcP^VKLwLqMVfU_rmb_ntg}-wHa2mlahJq?eQvW0Vz?lN1wG zR$-78^PHNr^~K%HEeBuATI5l(e~u$zPrpZZ?! zCm-V~jG`ES=os#660&Vgd1kiH?{Q)M98llgZBOPD?hzK1@{C2Lf>UGaB(YG+(B#8g zMqg@uW*3aOKo=wnf#S+_mclV_FZMCaGQYP{t{&%EG=tyUaVRgIaez$Z!z$>0pJtMQs}eKO6Y#1n>sE|f}Ub`i9~`XxY6ki8F0Mh5DMAuO-C zq(Qf((|3Ahyb+bEAZu1C?I>1P<<3wbk_y@~?cRv|J>q}|^UdKgU&SfPdt`>+ zo2x4L3MWptNsmRf{WU^t>_fVjfP{pNv3>+|fEnfHznc{oEj*g!t5$lLCGV$G|i zejy*{$!WwcD3Z{u(krAhtQX@h2wP`of{feszZw_qzcH?ovLLIO;roGs(wUtvSDDGN zndX9M=T80`|w7+Ygc()cP z%~}Ug-NlB(KCNXAuB&-fAG~9{yPdq-EyBShGS4j1!X(ndERwQL0`0KT9s~_NAeIz_ zDe#p?Dr0VbsjFuSa-^`{5@(k*7@Cw8!V$>mF9@Vm29oy1;~KxEHJasD9_$pr~?l zYBW|*_E%q^H_JUKe3o$(yfu=2>Q`>>Wcc)y{FXbJvdYuT;^Dh=``u%81BJbfRy#{% zzo46<`%}mGm!zLUqH)POCFHWVd|kPwYQ9Rc z>rR6UX4&tK>VkKPTSiC6+TXFJX1+$Z>>zn#eJ~?odB<5y?)@6ikKur~23>JP9hDb@tscH-|JMRAq*ztXddSDtZC#h;V@MBP_%u>Rbz zTjwC_T)_Try0N^Il2y4pZdE8Vr*XZwt+!~)gyCsf-DU?-QAmuiP&rNUu;QS&&F&<# z`{)O}?O3Lnda?}`ub^y^bz3`#=dda5@_wahw}}J}%U-2yKiWI-!lyIB$LE8_i;PN5=S5|G z>$O$Y>I=pjv2ER=9xV4im;J4gog)Fz%Fy?>mBI7hi~s-#+88<5nj6U)*qECbJ374> zAyQdZ9$gUGlehjgDfjDe5}d6yU$j_7RK%e8APF`>A#`5WpRL`x?4KaI(XvAMd$Ko% z2@NAUyZm9$JXNPZFD{n*X0;!us;gF)mAe~~-6%o9@0@XiAL}zse7@#140IDcL_Vo} zjJpwgAo4;f1)B|}H;n#)njJFPr@p~`7Vp-jBOih@Q4`JZ(QE_Ky25^il+|KEBq~X3 zUnkw@{q#AuZE(8}jpgWBRK+(9;!aC?j0rhlhOPC0tGT5E6sCQEpFB*t+feaf3+Y|c zj|E}O8`HAyd3qBez$)Fls|$Axth7pDuVgPy#JApgZPs^qW;%k$Su=R!sv3mDG@s~s zY*J&Hcj2Q|t`jOWl3@3uos4uF`H;V=m$vjCOPD&)v`mm|<$GkKKt1}JXGx^mf66}D z3sKjd6sC#$5bAEB)Hx-gUs0{SlZv~LO_+)B!PITogVF6yNl){H&)u!ZY}n%&u9AtQ z7y5EV!4_fiOy=ZVJYFIAF*+iZQmLmaB_xEn8eyq0a}L9sW8gyMR@Q59(^%%zGe~}k z|JEUd9t>x|p{}Tnvahspb!wWrHEqVb;t}`9TxG}E1^IJ9Wc=Hv%OLx_W&gNI?Cy+F#fa8J1fEHJ85c@JVYtYyXKsYb6U<>MH1Uh#5 zFL?$~k3SKAwK2b7{C`sLK>h-9EIx3j`WO2<&WoP^8Rztu@NeAjI4|S-Ypj3T@z0Kb zVgJ?k?_>Q9@Hh4a`$e~xvA)Ruh5h0eFYPboFYLeC{%^2f^nJm8k$nlPeyw+w>S#P( zNC3bK;egJ*JmeTT7`Pf3S{c)u8QGaLngeZZ80>6JLlxx25#VrML=hwI>cs&7BvDBbK^3>}M;RX?bZ0yV`FEGLtyw3}2M8wJcm@a-v2oGHHgMp@1brab zXc9`y(a8m*6BPR5q|kHYq(Y{O%xRt^%`v|#2}sQ(gh0Z*f&;5XgD+*)2W~C{-PzrD zKBqRXxFasyGDPRYk!wQf!brfHu z4!~ZC5Sa}r0dq5Zma$+*1)y1{hFaBfN8uuXt&41kv0P|R*!jTckSfN)Ke9Ix z$wKF7+3^rT7ua~#9A!Tg=o(jGD602Gd_z+7bfXSH2s50HM>^^xqyi+S<%>Z{M(pea zBC~*hf!Gk}rAKPy!?C5(!z$S@HwVfH7;hziJEw&q6kut z0=q$Hy@-TZ-b*pJbxEkOya9>9ipZK$6l?S(!xn%xph4uLs>AC!-2^+JTyV@6T*xR~BsiJZFieVY}X+gJyD>@;PAddA1PcbkVT{X1$&ue6k+po)o28L$x|&`4f^FZo7eanSj>#Sb;OF&dfgyw)e9fiHm+O@L#<>8TOIhNdbkfh4cMG%KWn(yU+!pdo^l)*#iK zuZb#HjDQmsyE&KgO;1pJHy%5)nSaTm1-c=o^;5)a|ZuOIoYEaCVNFM z3UkE_9^U*=P?UGE#;~t*3Whc;=F0a+VZJ>t0%9_aP|>Nx`;=r?9uedubII&M@yyB7 zt7CB#p{WF(XaS7U67Y@+%6N^jq$<-7?kD-^w2u<)`FC&2@QA&S&O_r>nE_Jkfc`M7 z)(_!L#L}kTz7tCn6(~+f9z8u{+XatMDm^?^5_zhy8bZ1x+DpN;NirTNdm6a2T4CE> z2~{~VK5A(mt-(5_;W8e?^=Q&x#OzyY{9Doow1$%1vFTiu2rYAoXWvK0_=ANddNs@f z+isPx<#gHk>oU2o#lC;X`SRVcl4PeamEZC$p)22b)5>a0RCAr%Rie(yll9kHcGUMl z;oogU;i3Z(EMp~vbT??Rp0J`KP|Cou8kdDA7UX);$M>O{b7cg)?cXKSJz!!rd1fl5 z6t>!sJ047cuhF?ZC2j>kWG=VEZuv8>xS%4$A3ynKwZ5)f1aEx;&U`jw*R2n~87-j}A{v7A2!E6T)F3 zV|<9U&w(gKjflq~(5gd`J|6b; zJtcUtQfZCny-N=hS)!Cd<;;SWTBLq-3Ja+xO?wJ5syc;TKy;HaxH8$4C?aBqJkXH3 zN+!+@H-yu?qJ~PjN5gZeq%}X^U#V1tB$i`eG`e_+3qn<9jhi|`)d|6?t79o0kHNOM zy1`$`E#$Z-n4?E@O<{L3pYxIvlU=9#;iB+HPS>a}y5^G(11kqd$Uz%v4ccZ_6{|3b zc{r(I3yYZeF+RI9f4{FUg31L^l%2g1ym*TbIh%2pLrY8K@dE|>HJ_}s1qRl{J#;uu zl}PG7Qw%bAAt(l3yML1C#?x!GPeGj8wk!&whvd$u1T_zTgm zHerkR_v}Kr-!xtEi7%P2)j?gab1)p4(r;h7>g7y+KzN5?_!^;wg&{icO2+OymmxNk zas93^x~}!w{QdGdlQhc#CsT{>N)P6SjqtbWO+9V6XhXLUEWXcZ#CUayyb|k3>xa)>TBFrXPvqQp@5%PY1E+dpnQRsP>XRsi%Fv1}s(I>{+Pi>`lg}}oiUH zpk@DS07jIl_hAIJD=Z$I;5+wv+qEIc5fzQN)}*Gpw^oNA{XC{36OO5N{aG*)s98I` z5G=nRlWdP01LroaxG(SqXn0bqCdBEydImr9n>ruhA5L@xHH86-ePr!L?T5l;)$maA zxt~!Ww*9}Ta1EF3Xls62!_+#MQ_)o9ChQQ4P)q2clXPWJXS^dgzW+3Z86CGe z_QDAbrc_dd0(iu3_)k#Ax_MOXl?Rk5ybjHDU}RVQpr&U|Ig$`M3f=JP!%0{4e6n`` z)6$~qy@O1MIjj?b-fV5#C88SpBPVZQ^zEv=?XH~xZdN?WPC@j+t&||)3E|BvORS~Q zi6^W*Wp`{wcM7Pf;RPaJcH-L{n1C+B*snmnV|o`;z5e)NAO$d}4OSz`sLI&+Krh$2 z%hH{|#P;}Yf!*1%6XeF({Z=b=6MY`c&Ao%x#<XdbD58@ z)_bEqrbWdRo^_W*{(@S0Zw!)Rsq<^}r&Lt3?&f)Bo0bPR##9gY@A0b-y<$A30#ClJ zhjURV6G zM_#UND-IXke9hZ)d`Jrm*}+QN_PnJRMY^#yf^UWAma$K!&Uy)-2InKBTtwX(moPV` zUx+3wq3i%vu6>e2?aYwwo@L@V>5Y~G-XWu^cZ{BxjkjLwtq(C%jbxG&rh23yF=Dw> zp?NU>@rQav=CgGY`+NDpE^eMrm$>jMT&Kom76HY?gcY-4DSSRfBr^(aV$;H0M+aqE$osAryFew}h zzz!Ex6}PlK5^79;M4I&e$UTsjwq}p>icJt&_WlCPw@ZKF+hz9FhY*WqIwINgz9e-d^rx1;Qh6%z?2xIY zyvNDBjjYIWg@Iw47XUo|+L~USC`{}=+6b;`Ri3mh1${AHG zmGSe;`Pb34KZQ^w!0UZ5*YI)>BorSTxG)O`Se@~Mh_BR16yUnN^l_)4wtPsCH7sY0 z-mp3O)16XJA$-d$0&J5i)O~p#&;c{y0R(>O5AI+_%73@6{CK4UiWGygh;!Q1#EIi_ z`(?#c>(2lMdErB81HqF05w))aQc^%KFo#~Ec8%Vn6kV(InKy&pyY1C_ z-VJiPl(J@VMS4aF)k--)v^*K$X5Lpaiemu_+LrmL0`v46)UPQN2o!z&3`N$cdS6vs zd?AIbmXXuh)S4`S`2q%{0S#l;vt%lA7TkJXN7otWha_@F#ZB=lfy;*y(N_5Pm$&!N z&-{~|yS~rSSHg`c;b35E5bwiJKojBv1+P%~+4TreiW3th%zxQAX$|sr6Px2j(8(3XVk<=xUO8jg!UM^Kr z;!*;TbQhvVF^vKKvXG&*?F#$`#a(K)c;sT}xeucmjzzm&X1FIa%5u*{+ zZ3`~32y0zQw1K_UkR7lpI?@^8xkyNMT)i6^?L9`H?e3#e5k9{6`EZYW2qwFINR`)> zCC)oCVNO!-?zPU$qjN-n#({tiz91ZPmW|L*Aev8IlT@Qp5#B_d@#gqV-$K$YDqOVk zE&mr3D^mV*lz2x%{~LJOhcp=v7~3qbw5O=_(@QS)%1=Sf6HjqNDy1qTDzpZ|Dpn;H z2hGN?KDhTM+fkOb5Nr#5E(3Y4t+met=mhwoUS%#pvZb^r0g~F|A;uL>8BzKNLf_wlvA%sP zN)r3S#wE;bFSijw$&DrmLwaURx$zv53o6epg`BBXCyEJvc=z09#s`zPK}*@4W}vmz z`{z^Z?(ig%VlDX!fp?HfO=u>rt*PrI7!SrEr*NqXNvaIPF{%Y8RcEG7B{mCtpQOl| zYmU!5F+x+LpRigm(u3i?2+b^7cdscavUc+yP_B@k5}c;wjo_KJiR)r3z6+Dok!d^L zvGpo+<_#pIl-jebUd4nq~k9zRWAzi&DCu5K6V*nU@CoHACN zK3C!r*EoS1y}azI3@6U1%n_zUpj2N2KpgzCgj9oS&>wTbz3}OlZvs6^QPOMZZslBN ztV6k_K$C*Oki$EmYc%GfKB4D}@gAOV=wMbB1QpMd{najZ>FM?n|Az3hF)Fq984rEA zp;;|vV_1(z)ZR~yg+2^;6Wc*fe-1muh{*Y-by|;(>&1+W2Z)mh-tbzK4fJ9P@5$}d zM~>RB6%0QT>nb!u(2B~@V43(FGdi<9;R+40)ydQGwvv3ssl=7>a6RJ|_9=6CFei6g zHxwD9Pspog=Q2^$07em-BXuV0ee04Q-F)#f%J#Hc<9e29~uwZJamr0b*Q_UE@ zjijy6E4%B!f*2wbG! zu$G5~1(jzMEzxCklG`0^?+3SKuSlS z4`#Yrq88iGm7dSBmZ~@w`_%uualF1QNKFB~34Wn}+c>QM!^Xh`!e#nn<4^~`4FFe<53 zwN)+yVG4eJ4QjG@ZE-K4s7j?vQl?Z^_Tg1b064k15Ror3Wqkjq+CkQ=%ll(q&y>li z&H2qYgY%4^^Ydd(s*ZUNo-^DLAH3-gl^ok`tCGi(n4!$Npe(>0C?1{+7;u?vd<+Gi z0#+xrkJ*CFh#>oH+R6PLw?%aSK#B+_io(Gog;W1Kqc4Ifzp$XuuwPWUzgpBY~?BsvuI6S~teH-Jl{g z?+7lbN9TT8ZS~C3)7R{cWD`*{jF8uuJKvMe?rLUl0iwP^24)fwWR^B4F@#t?@lJPH>8u9{qW)PL#j5PQy4OvlN%-3h2ZAeKp zfacM*>odyob!~fUJjzDOi!KxJofG>5+UBK;WBNOuEd7EW+WMlsk?^Ky8nq%zVr@$I z=6X)}U((bzY;flopV@Uu@9h)9^#@Nx$%2 zTo?D`J4e@#ch4$L#Vi5 z-VdC=-gK2Ivf>lXP01Qk?q`7PDr&N>(EJkgmf%c+yHp3sRBT26GA_N<{L;1bb+hA9 z-MyK%6M3T?FK+Tm;D9KYY;B{J?vpc*_S#6)k(EVfdUIPA(B26lzuzmt??|0rTtd9X ztKVNxLEeQ})U*j}UQv}oO@O<`>G|oIul~dNfb&2Kl&|8TJ%`heQ};O?$C+eb0)2g! zg#Fa|JE7{IJPFRkDBa(ceCS~hFqV!cG!UW9YKRKWpstfJy0HBlF)gts5>3MRU8~q? z6-F!jkakDFr4n;=`qXMWAHJTKez2tf;B6$gDWGoQ+e$RKHJ^NgQg~PP@V*c|YZoPY z@Zey7U+8s|kW^`$G!;xB4!<%5##i9In7H`f@o`ac@gM?vWf^AIdAmJXTS-J2X-fcA ziXspHpxqO?!RHW-k~d%;>FEl5W^JE7?HwGD5=2AXbev39VYb~Q1w$8d@YY2u4=+0v zt`Z#}*j@dwG{Yz&?Fdv2w>44ir7v77+Ts%y7B;IKa@fN8u1`rlGzGxO{yK_r=y|F*k z5ZTywY9nChWGxA{vHk;=uye~m1isV*Ya$NPpj@Ke(}gX2^1jln(RmdC=V$A& za`a3aC2}f*7#Ln|!Qdk$TROg#ju%z6-J}{#s&Pd@Kx!FhwOAA1blUi%NSMuaK2(>p zlnYHg4FWw(CN~;Q_!F~|k?^^TmLV=vlMihCkRh{VV@z@K(T&uzo;#7BUBF-j0snxhqjJAzTfpRu-SIoI5rOEzrvva8!L7y(HD8?7$<# z+&JVC%C$~N57|%Eo>|+cpRw4=8V2Pm=kjFZX~|lxXAr%*c?oR@u&4Fuz6D{t!c$|~ zP*k7p#<%qHQ(|Du^l-vEAfGyNf=mMqQ@@XKF@VYvZ1uX_4ej;lzAcg3v`i6)fV30o zyUH6d%3zoCXxC2Fk%=<)8Y$zN7+S=7?z7%oceKF_Oto3>IJ1)2C{gW&Ot*yfrB@bC zR!PDHfp#eJBNm2TU)~ahRpPI%-{$KXdQU2Ia0IA0&2G2Ev>$m~;OQ@A#Rts%m>^O^(ldL3!)5L7S3o-nT=0 zA;`mim3$zW4#Bel(>0$|pwwV!Z}-Zoqw&F`hEW)u4%9+wx__IDvzj7Fy`jcxJADgE z0+k&6(Z!RFf#EY9 z%H61))A=Z*y-I(zisiHa43J18o6_LLA^7L>%%Az%|IE>Q4eAE8GH`SRCF>X&y9KJs zo8hTqKbyFixYSF|S{ueMTTF*yQd>JKSuxruvPH(Y^eagt`VEa9vSxC9Ky!WHM6aTB zMr4??CfMfo*tf_NKrv6ZXQZwgr6%mUbGTxI=|o1@8p!gs2j3fZ~8`2ec!2fImRPcbmX* zz!!AUc4@9TuOY0_ukqM{wLp5ndw_W$cpyE%KEOX9z!SyFc5&#Zd!YCcjX3n#DnVfb z$_ma2!Gp&6XAy$N39MKyFgS3SFN(>JY?p4Va5`PVlWOac9~scH>p1na8)mjdC>UA1 zhHi-CNmG}GZfb3QR(IA9Ofk3a+_?gnBUUbFH_*3>iTROk!?U9F5~_u~Q2dg4Gu0KJ z5VzEc-Djq6F}DeYo)SZ=Ck&x4h;1YJzKioui}Ua9JxkXujQn^d|GXK;g_n`=UB1w} zx_FZ1jDBfmTty3|10o!!a^bkmKzrQE@#!1agXh61p;qv-gm3k+_j9wBMyIAmHf;qz zO~w7>5{0cd8ObeEr0jVW&xmsC?iU5I&k|W5*EkNC>rBim#zl(LMKXQp>7iO%MDyR> zNaFA`(Qz@`Do!EB_Y+}BaKH<>O_cCS(z%iXg2^MD&>+h_0MU1@7bp! z7D|mYZ7PySY{)RR8jh|$(zg{a8`v{`B;X>6l@SYtH4(w4q&_SLCKb`AwFFL7Ah%m? z#W%aC&D1-@u%Na29aZ?V9+qBh)c%ncumMVJelab!A~# z#m471#nRle$D##>63N>_bB5EQZW*N|ipaQf#%G8r&2DCD#!68LJte5LYmIC>k&t0I zFl@n9BiU1_wBo!yPT#i?sbvb@h0lk79pKyZE=QI;FF4p@LlS}mDZb^m5= z^JX;z4aoUrDD;*4)Xx(aob8}FJKU(5?tWcGAT@3#hK|Xo*ItC<0=?#H%f7`Y4PDoI zn3)TK>W>TO7D+PlMD*7e8NYuK@RC~e_wwI;pYczG-_y=f|0bRW%B}eq z!oR*F_^15u8Nx5g>A#9ANaugbgHqLh2Y6Yee$Q@wNhJPN;6d;2{)e>U-$7my6Ms)x z{JR#hpjrEG(qdl#-~hieeg2u*_)7~gP^Z7=IsQ}jpIJh`WY0iJlK*qg&_8kh`QGvu zPBCba{~ONV-eUd}=bvHhFPt^d+s(h>{4J<`!THO%UM%ywBkX{eVp SC(v}l0g^!3R55>KCH^1lLu+FI literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app1_cert3 b/core/tests/coretests/res/raw/install_app1_cert3 new file mode 100644 index 0000000000000000000000000000000000000000..fa10be760022a58138dfeee6c0ccdb5dd9c79bd9 GIT binary patch literal 13373 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 UYnl^iI^h5*plqu6Ke7`47xs5lcmMzZ literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app1_cert3_cert4 b/core/tests/coretests/res/raw/install_app1_cert3_cert4 new file mode 100644 index 0000000000000000000000000000000000000000..c2f6c81a63072501548c84d8c6e95c119bb81834 GIT binary patch literal 14622 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 NFo0%v{{Hpq{{v4Hhd}@U literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app1_unsigned b/core/tests/coretests/res/raw/install_app1_unsigned new file mode 100644 index 0000000000000000000000000000000000000000..18be5f856bfcb4f086678b2ed34a799331dc284e GIT binary patch literal 11630 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 K??9Tj*8c(mc#cj0 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app2_cert1 b/core/tests/coretests/res/raw/install_app2_cert1 new file mode 100644 index 0000000000000000000000000000000000000000..b34573202f661a92b3d5902be68a5a4e5e66826e GIT binary patch literal 13378 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 WafsJ2D`1cw8~_7ocK07&@BR-0fuG_4 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app2_cert2 b/core/tests/coretests/res/raw/install_app2_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..c3d597904a8cc23e8a6a19d6036f5810093aa9b0 GIT binary patch literal 13375 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 TqMU%;2@8k=22(}Tzg_(=&}47y literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app2_cert3 b/core/tests/coretests/res/raw/install_app2_cert3 new file mode 100644 index 0000000000000000000000000000000000000000..ac0d9da2067da739711982dadc3c71acdf56d2a5 GIT binary patch literal 13376 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_app2_unsigned b/core/tests/coretests/res/raw/install_app2_unsigned new file mode 100644 index 0000000000000000000000000000000000000000..8d24e888127cfeae302e721937a7b8268144c6b5 GIT binary patch literal 11629 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%0A@1 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

bnX1!?eb1w!?dB_;ze_T|28FNXo$% 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared1_cert1_cert2 b/core/tests/coretests/res/raw/install_shared1_cert1_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..b580b60a5feeff6c6dc751accdc99326b9dfd0eb GIT binary patch literal 14653 zcmdVBby!`?(muFx3GTrO4#5e*-QAra8+UgN?(Xiv-3bspxCD0y5Zv8nbMBmba?bs} zxzGIOuW6p%tGZX$yQ;ftRj+QU<)t7XF#rGnECA=T7xxc%QdD&?06+{J0C=sH5m6SP zlaLilQ{B16v@|UBg_fMpDaC z!B35^>2Q7I@}6vbH@ONKXF)Gjbyr=yTSIDcMziGyCQbp43fJAuhDwDOZqPXfVd^G2 zRr82ZScx(;Lh1OnVhbxYMiYi#VGty{zf(jRlVpe}v59$io;|hWl6!+#-mt0^$qqGy zwmq6^nl;m5N|`A!_A@gM-P*D363nt^F+t

bnX1!?eb1w!?dB_;ze_T|28FNXo$% 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared1_cert2 b/core/tests/coretests/res/raw/install_shared1_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..a2de801249ad79bc2eb71c8e2eaf767afb1d0f43 GIT binary patch literal 13399 zcmdUWby!@>vhUy$+=CO`HMqOGOOV0cU4y&3dvJFG1P>52Sa1js+}+-=&)aur?{n`v z-+TYPp0B2>dv*P$x~ryo_4;Zl%0NJ30AN8Mq>nzlfZqxRh?f&n6{44t7iW|cl9v(} zQ&DA*6Ze@=u=~h_Gj!GweiE>SMG9;Ck%H$IMic{EDBDxZQm0N@$66^sL!jkweeCj{ zY+^UH1{r73AYFY|Q?ge}W@=Wu?K>t;5sn(q-OYwtl@D&nIR;_+COTE?m`OyLDl|g* z#I|x98#G1>MnG{0Bxj&YR0Xqim^iVSWp9Baweyl^lSIL&x(vwt!it!QV|wS9*Nu#X0s2AP{amuD<5bMR4?$eGd=&Kq<4&BmO`XI_O#Cw8nMjkpY_` zn|Qcg(-#Z=q1Qj|G{k&i)XfeDQPCJ9bMbQhsJE`{Y|0(@grct~0|WaVo)lFR3;>V- z2LKfRN6Vo7ZW$q2DIpaW1{HCicsaXFL6ne_lt&`Y<_JJ077y{2zmzpG6dsU&tXR8G z7`wsWEw$$Pp0kRETs>jQob9C0%#=4t!@mjg9E=QOHhJV*@S<}8IxLRt-R$jjT<{{J z)Ml5v&A=iR$$J9oz%)nGWLW)D^ohxxM~D#;lTJjMq$gU%0jnrfXUn%mH1ltVY3m=l zaJNt94ZFMP_OuR2_g2!Hv&4@+%2H+i{55+JqqGa6gXX zB)Vf)Hp4z?;U8MZlJ+sbyvqT5HLtd=lxZ%=ygmO%^P>MZ=2cb^Vl_AVFgRE?yEAp2 zof@BQA%uS697wVARW>Rr#2cE|8Xx5?g}OR4gl!P_Ae5Y}FSMNO2WYvd%yi98j?Qt8 z^+zJ>h2d&PA1U>X3Bw2gPrj+>n!(9nb8 zDIr*b)4bAI^9##8y_1k5#SK=tyQHDeq_hxDK*m5JAf*bBv@a3Q?Rg zn}?N|0?H9LndWV;ZobW3&CFi4O%0DEw>5SwvGi7%r>vUyCF9SBs%Q5Lu0np1e5r5r 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared1_unsigned b/core/tests/coretests/res/raw/install_shared1_unsigned new file mode 100644 index 0000000000000000000000000000000000000000..35680be1697e189222464a73260a6a3aa22f8579 GIT binary patch literal 11652 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared2_cert1 b/core/tests/coretests/res/raw/install_shared2_cert1 new file mode 100644 index 0000000000000000000000000000000000000000..9064de7840b08a2e61c399c2e7c54844238cd22c GIT binary patch literal 13404 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 Jh-|O5{{{7MxJdv2 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared2_cert1_cert2 b/core/tests/coretests/res/raw/install_shared2_cert1_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..26a250d5d7f03f287cf8152662c2c91d0a4a25a4 GIT binary patch literal 14653 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 Jh-|O5{{{7MxJdv2 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/res/raw/install_shared2_cert2 b/core/tests/coretests/res/raw/install_shared2_cert2 new file mode 100644 index 0000000000000000000000000000000000000000..79813087c142f6633d5db940dac9f85d7b93ceb6 GIT binary patch literal 13399 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 literal 0 HcmV?d00001 diff --git a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java index 7b9e95a161d4c..aec82afed58d2 100755 --- a/core/tests/coretests/src/android/content/pm/PackageManagerTests.java +++ b/core/tests/coretests/src/android/content/pm/PackageManagerTests.java @@ -23,10 +23,18 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageParser; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.content.res.Resources.NotFoundException; import android.net.Uri; +import android.test.AndroidTestCase; +import android.test.suitebuilder.annotation.Suppress; +import android.util.DisplayMetrics; +import android.util.Log; import android.os.Environment; import android.os.FileUtils; import android.os.IBinder; @@ -497,6 +505,15 @@ public class PackageManagerTests extends AndroidTestCase { } } + private PackageParser.Package getParsedPackage(String outFileName, int rawResId) { + PackageManager pm = mContext.getPackageManager(); + File filesDir = mContext.getFilesDir(); + File outFile = new File(filesDir, outFileName); + Uri packageURI = getInstallablePackage(rawResId, outFile); + PackageParser.Package pkg = parsePackage(packageURI); + return pkg; + } + /* * Utility function that reads a apk bundled as a raw resource * copies it into own data directory and invokes @@ -529,7 +546,9 @@ public class PackageManagerTests extends AndroidTestCase { if (fail) { assertTrue(invokeInstallPackageFail(packageURI, flags, pkg.packageName, result)); - assertNotInstalled(pkg.packageName); + if ((flags & PackageManager.INSTALL_REPLACE_EXISTING) == 0) { + assertNotInstalled(pkg.packageName); + } } else { InstallReceiver receiver = new InstallReceiver(pkg.packageName); assertTrue(invokeInstallPackage(packageURI, flags, @@ -621,7 +640,7 @@ public class PackageManagerTests extends AndroidTestCase { * PackageManager api to install first and then replace it * again. */ - public void replaceFromRawResource(int flags) { + private void sampleReplaceFromRawResource(int flags) { InstallParams ip = sampleInstallFromRawResource(flags, false); boolean replace = ((flags & PackageManager.INSTALL_REPLACE_EXISTING) != 0); Log.i(TAG, "replace=" + replace); @@ -648,28 +667,28 @@ public class PackageManagerTests extends AndroidTestCase { } public void testReplaceFailNormalInternal() { - replaceFromRawResource(0); + sampleReplaceFromRawResource(0); } public void testReplaceFailFwdLockedInternal() { - replaceFromRawResource(PackageManager.INSTALL_FORWARD_LOCK); + sampleReplaceFromRawResource(PackageManager.INSTALL_FORWARD_LOCK); } public void testReplaceFailSdcard() { - replaceFromRawResource(PackageManager.INSTALL_EXTERNAL); + sampleReplaceFromRawResource(PackageManager.INSTALL_EXTERNAL); } public void testReplaceNormalInternal() { - replaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING); + sampleReplaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING); } public void testReplaceFwdLockedInternal() { - replaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING | + sampleReplaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING | PackageManager.INSTALL_FORWARD_LOCK); } public void testReplaceSdcard() { - replaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING | + sampleReplaceFromRawResource(PackageManager.INSTALL_REPLACE_EXISTING | PackageManager.INSTALL_EXTERNAL); } @@ -1014,6 +1033,19 @@ public class PackageManagerTests extends AndroidTestCase { outFile.delete(); } } + void cleanUpInstall(String pkgName) { + if (pkgName == null) { + return; + } + Log.i(TAG, "Deleting package : " + pkgName); + try { + ApplicationInfo info = getPm().getApplicationInfo(pkgName, + PackageManager.GET_UNINSTALLED_PACKAGES); + if (info != null) { + getPm().deletePackage(pkgName, null, 0); + } + } catch (NameNotFoundException e) {} + } public void testManifestInstallLocationInternal() { installFromRawResource("install.apk", R.raw.install_loc_internal, @@ -2152,6 +2184,360 @@ public class PackageManagerTests extends AndroidTestCase { } } + /* + * The following series of tests are related to upgrading apps with + * different certificates. + */ + private int APP1_UNSIGNED = R.raw.install_app1_unsigned; + private int APP1_CERT1 = R.raw.install_app1_cert1; + private int APP1_CERT2 = R.raw.install_app1_cert2; + private int APP1_CERT1_CERT2 = R.raw.install_app1_cert1_cert2; + private int APP1_CERT3_CERT4 = R.raw.install_app1_cert3_cert4; + private int APP1_CERT3 = R.raw.install_app1_cert3; + private int APP2_UNSIGNED = R.raw.install_app2_unsigned; + private int APP2_CERT1 = R.raw.install_app2_cert1; + private int APP2_CERT2 = R.raw.install_app2_cert2; + private int APP2_CERT1_CERT2 = R.raw.install_app2_cert1_cert2; + private int APP2_CERT3 = R.raw.install_app2_cert3; + + private InstallParams replaceCerts(int apk1, int apk2, boolean cleanUp, boolean fail, int retCode) { + int rFlags = PackageManager.INSTALL_REPLACE_EXISTING; + String apk1Name = "install1.apk"; + String apk2Name = "install2.apk"; + PackageParser.Package pkg1 = getParsedPackage(apk1Name, apk1); + try { + InstallParams ip = installFromRawResource(apk1Name, apk1, 0, false, + false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + installFromRawResource(apk2Name, apk2, rFlags, false, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + return ip; + } catch (Exception e) { + failStr(e.getMessage()); + } finally { + if (cleanUp) { + cleanUpInstall(pkg1.packageName); + } + } + return null; + } + /* + * Test that an app signed with two certificates can be upgraded by the + * same app signed with two certificates. + */ + public void testReplaceMatchAllCerts() { + replaceCerts(APP1_CERT1_CERT2, APP1_CERT1_CERT2, true, false, -1); + } + + /* + * Test that an app signed with two certificates cannot be upgraded + * by an app signed with a different certificate. + */ + public void testReplaceMatchNoCerts1() { + replaceCerts(APP1_CERT1_CERT2, APP1_CERT3, true, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + } + /* + * Test that an app signed with two certificates cannot be upgraded + * by an app signed with a different certificate. + */ + public void testReplaceMatchNoCerts2() { + replaceCerts(APP1_CERT1_CERT2, APP1_CERT3_CERT4, true, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + } + /* + * Test that an app signed with two certificates cannot be upgraded by + * an app signed with a subset of initial certificates. + */ + public void testReplaceMatchSomeCerts1() { + replaceCerts(APP1_CERT1_CERT2, APP1_CERT1, true, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + } + /* + * Test that an app signed with two certificates cannot be upgraded by + * an app signed with the last certificate. + */ + public void testReplaceMatchSomeCerts2() { + replaceCerts(APP1_CERT1_CERT2, APP1_CERT2, true, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + } + /* + * Test that an app signed with a certificate can be upgraded by app + * signed with a superset of certificates. + */ + public void testReplaceMatchMoreCerts() { + replaceCerts(APP1_CERT1, APP1_CERT1_CERT2, true, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + } + /* + * Test that an app signed with a certificate can be upgraded by app + * signed with a superset of certificates. Then verify that the an app + * signed with the original set of certs cannot upgrade the new one. + */ + public void testReplaceMatchMoreCertsReplaceSomeCerts() { + InstallParams ip = replaceCerts(APP1_CERT1, APP1_CERT1_CERT2, false, true, + PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES); + try { + int rFlags = PackageManager.INSTALL_REPLACE_EXISTING; + installFromRawResource("install.apk", APP1_CERT1, rFlags, false, + false, -1, + PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } catch (Exception e) { + failStr(e.getMessage()); + } finally { + if (ip != null) { + cleanUpInstall(ip); + } + } + } + /* + * The following tests are related to testing the checkSignatures + * api. + */ + private void checkSignatures(int apk1, int apk2, int expMatchResult) { + checkSharedSignatures(apk1, apk2, true, false, -1, expMatchResult); + } + public void testCheckSignaturesAllMatch() { + int apk1 = APP1_CERT1_CERT2; + int apk2 = APP2_CERT1_CERT2; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_MATCH); + } + public void testCheckSignaturesNoMatch() { + int apk1 = APP1_CERT1; + int apk2 = APP2_CERT2; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_NO_MATCH); + } + public void testCheckSignaturesSomeMatch1() { + int apk1 = APP1_CERT1_CERT2; + int apk2 = APP2_CERT1; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_NO_MATCH); + } + public void testCheckSignaturesSomeMatch2() { + int apk1 = APP1_CERT1_CERT2; + int apk2 = APP2_CERT2; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_NO_MATCH); + } + public void testCheckSignaturesMoreMatch() { + int apk1 = APP1_CERT1; + int apk2 = APP2_CERT1_CERT2; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_NO_MATCH); + } + public void testCheckSignaturesUnknown() { + int apk1 = APP1_CERT1_CERT2; + int apk2 = APP2_CERT1_CERT2; + String apk1Name = "install1.apk"; + String apk2Name = "install2.apk"; + InstallParams ip1 = null; + + try { + ip1 = installFromRawResource(apk1Name, apk1, 0, false, + false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + PackageManager pm = mContext.getPackageManager(); + // Delete app2 + File filesDir = mContext.getFilesDir(); + File outFile = new File(filesDir, apk2Name); + int rawResId = apk2; + Uri packageURI = getInstallablePackage(rawResId, outFile); + PackageParser.Package pkg = parsePackage(packageURI); + getPm().deletePackage(pkg.packageName, null, 0); + // Check signatures now + int match = mContext.getPackageManager().checkSignatures( + ip1.pkg.packageName, pkg.packageName); + assertEquals(PackageManager.SIGNATURE_UNKNOWN_PACKAGE, match); + } finally { + if (ip1 != null) { + cleanUpInstall(ip1); + } + } + } + public void testInstallNoCertificates() { + int apk1 = APP1_UNSIGNED; + String apk1Name = "install1.apk"; + InstallParams ip1 = null; + + try { + installFromRawResource(apk1Name, apk1, 0, false, + true, PackageManager.INSTALL_PARSE_FAILED_NO_CERTIFICATES, + PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } finally { + } + } + /* The following tests are related to apps using shared uids signed + * with different certs. + */ + private int SHARED1_UNSIGNED = R.raw.install_shared1_unsigned; + private int SHARED1_CERT1 = R.raw.install_shared1_cert1; + private int SHARED1_CERT2 = R.raw.install_shared1_cert2; + private int SHARED1_CERT1_CERT2 = R.raw.install_shared1_cert1_cert2; + private int SHARED2_UNSIGNED = R.raw.install_shared2_unsigned; + private int SHARED2_CERT1 = R.raw.install_shared2_cert1; + private int SHARED2_CERT2 = R.raw.install_shared2_cert2; + private int SHARED2_CERT1_CERT2 = R.raw.install_shared2_cert1_cert2; + private void checkSharedSignatures(int apk1, int apk2, boolean cleanUp, boolean fail, int retCode, int expMatchResult) { + String apk1Name = "install1.apk"; + String apk2Name = "install2.apk"; + PackageParser.Package pkg1 = getParsedPackage(apk1Name, apk1); + PackageParser.Package pkg2 = getParsedPackage(apk2Name, apk2); + + try { + // Clean up before testing first. + cleanUpInstall(pkg1.packageName); + cleanUpInstall(pkg2.packageName); + installFromRawResource(apk1Name, apk1, 0, false, + false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + if (fail) { + installFromRawResource(apk2Name, apk2, 0, false, + true, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } else { + installFromRawResource(apk2Name, apk2, 0, false, + false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + int match = mContext.getPackageManager().checkSignatures( + pkg1.packageName, pkg2.packageName); + assertEquals(expMatchResult, match); + } + } finally { + if (cleanUp) { + cleanUpInstall(pkg1.packageName); + cleanUpInstall(pkg2.packageName); + } + } + } + public void testCheckSignaturesSharedAllMatch() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT1_CERT2; + boolean fail = false; + int retCode = -1; + int expMatchResult = PackageManager.SIGNATURE_MATCH; + checkSharedSignatures(apk1, apk2, true, fail, retCode, expMatchResult); + } + public void testCheckSignaturesSharedNoMatch() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; + int expMatchResult = -1; + checkSharedSignatures(apk1, apk2, true, fail, retCode, expMatchResult); + } + /* + * Test that an app signed with cert1 and cert2 cannot be replaced when signed with cert1 alone. + */ + public void testCheckSignaturesSharedSomeMatch1() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT1; + boolean fail = true; + int retCode = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; + int expMatchResult = -1; + checkSharedSignatures(apk1, apk2, true, fail, retCode, expMatchResult); + } + /* + * Test that an app signed with cert1 and cert2 cannot be replaced when signed with cert2 alone. + */ + public void testCheckSignaturesSharedSomeMatch2() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; + int expMatchResult = -1; + checkSharedSignatures(apk1, apk2, true, fail, retCode, expMatchResult); + } + public void testCheckSignaturesSharedUnknown() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT1_CERT2; + String apk1Name = "install1.apk"; + String apk2Name = "install2.apk"; + InstallParams ip1 = null; + + try { + ip1 = installFromRawResource(apk1Name, apk1, 0, false, + false, -1, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + PackageManager pm = mContext.getPackageManager(); + // Delete app2 + PackageParser.Package pkg = getParsedPackage(apk2Name, apk2); + getPm().deletePackage(pkg.packageName, null, 0); + // Check signatures now + int match = mContext.getPackageManager().checkSignatures( + ip1.pkg.packageName, pkg.packageName); + assertEquals(PackageManager.SIGNATURE_UNKNOWN_PACKAGE, match); + } finally { + if (ip1 != null) { + cleanUpInstall(ip1); + } + } + } + + public void testReplaceFirstSharedMatchAllCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk1 = SHARED1_CERT1; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_MATCH); + replaceCerts(apk1, rapk1, true, false, -1); + } + public void testReplaceSecondSharedMatchAllCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk2 = SHARED2_CERT1; + checkSignatures(apk1, apk2, PackageManager.SIGNATURE_MATCH); + replaceCerts(apk2, rapk2, true, false, -1); + } + public void testReplaceFirstSharedMatchSomeCerts() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT1_CERT2; + int rapk1 = SHARED1_CERT1; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk1, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + public void testReplaceSecondSharedMatchSomeCerts() { + int apk1 = SHARED1_CERT1_CERT2; + int apk2 = SHARED2_CERT1_CERT2; + int rapk2 = SHARED2_CERT1; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk2, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + public void testReplaceFirstSharedMatchNoCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk1 = SHARED1_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk1, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + public void testReplaceSecondSharedMatchNoCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk2 = SHARED2_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk2, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + public void testReplaceFirstSharedMatchMoreCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk1 = SHARED1_CERT1_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk1, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } + public void testReplaceSecondSharedMatchMoreCerts() { + int apk1 = SHARED1_CERT1; + int apk2 = SHARED2_CERT1; + int rapk2 = SHARED2_CERT1_CERT2; + boolean fail = true; + int retCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; + checkSharedSignatures(apk1, apk2, false, false, -1, PackageManager.SIGNATURE_MATCH); + installFromRawResource("install.apk", rapk2, PackageManager.INSTALL_REPLACE_EXISTING, true, + fail, retCode, PackageInfo.INSTALL_LOCATION_UNSPECIFIED); + } /*---------- Recommended install location tests ----*/ /* * TODO's diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 8788cd579fb6d..ef1738b025ca1 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -1824,21 +1824,19 @@ class PackageManagerService extends IPackageManager.Stub { if (s2 == null) { return PackageManager.SIGNATURE_SECOND_NOT_SIGNED; } - final int N1 = s1.length; - final int N2 = s2.length; - for (int i=0; i set1 = new HashSet(); + for (Signature sig : s1) { + set1.add(sig); } - return PackageManager.SIGNATURE_MATCH; + HashSet set2 = new HashSet(); + for (Signature sig : s2) { + set2.add(sig); + } + // Make sure s2 contains all signatures in s1. + if (set1.equals(set2)) { + return PackageManager.SIGNATURE_MATCH; + } + return PackageManager.SIGNATURE_NO_MATCH; } public String[] getPackagesForUid(int uid) { @@ -2490,6 +2488,9 @@ class PackageManagerService extends IPackageManager.Stub { mLastScanError = pp.getParseError(); return false; } + } else { + // Lets implicitly assign existing certificates. + pkg.mSignatures = ps.signatures.mSignatures; } } return true; @@ -2618,28 +2619,27 @@ class PackageManagerService extends IPackageManager.Stub { } private boolean verifySignaturesLP(PackageSetting pkgSetting, - PackageParser.Package pkg, int parseFlags, boolean updateSignature) { - if (pkg.mSignatures != null) { - if (!pkgSetting.signatures.updateSignatures(pkg.mSignatures, - updateSignature)) { - Slog.e(TAG, "Package " + pkg.packageName - + " signatures do not match the previously installed version; ignoring!"); - mLastScanError = PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE; - return false; - } - - if (pkgSetting.sharedUser != null) { - if (!pkgSetting.sharedUser.signatures.mergeSignatures( - pkg.mSignatures, updateSignature)) { + PackageParser.Package pkg) { + if (pkgSetting.signatures.mSignatures != null) { + // Already existing package. Make sure signatures match + if (checkSignaturesLP(pkgSetting.signatures.mSignatures, pkg.mSignatures) != + PackageManager.SIGNATURE_MATCH) { Slog.e(TAG, "Package " + pkg.packageName - + " has no signatures that match those in shared user " - + pkgSetting.sharedUser.name + "; ignoring!"); - mLastScanError = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; + + " signatures do not match the previously installed version; ignoring!"); + mLastScanError = PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE; return false; } + } + // Check for shared user signatures + if (pkgSetting.sharedUser != null && pkgSetting.sharedUser.signatures.mSignatures != null) { + if (checkSignaturesLP(pkgSetting.sharedUser.signatures.mSignatures, + pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) { + Slog.e(TAG, "Package " + pkg.packageName + + " has no signatures that match those in shared user " + + pkgSetting.sharedUser.name + "; ignoring!"); + mLastScanError = PackageManager.INSTALL_FAILED_SHARED_USER_INCOMPATIBLE; + return false; } - } else { - pkg.mSignatures = pkgSetting.signatures.mSignatures; } return true; } @@ -2973,10 +2973,8 @@ class PackageManagerService extends IPackageManager.Stub { pkg.applicationInfo.uid = pkgSetting.userId; pkg.mExtras = pkgSetting; - if (!verifySignaturesLP(pkgSetting, pkg, parseFlags, - (scanMode&SCAN_UPDATE_SIGNATURE) != 0)) { + if (!verifySignaturesLP(pkgSetting, pkg)) { if ((parseFlags&PackageParser.PARSE_IS_SYSTEM_DIR) == 0) { - mLastScanError = PackageManager.INSTALL_FAILED_UPDATE_INCOMPATIBLE; return null; } // The signature has changed, but this package is in the system @@ -2988,8 +2986,9 @@ class PackageManagerService extends IPackageManager.Stub { // associated with an overall shared user, which doesn't seem all // that unreasonable. if (pkgSetting.sharedUser != null) { - if (!pkgSetting.sharedUser.signatures.mergeSignatures( - pkg.mSignatures, false)) { + if (checkSignaturesLP(pkgSetting.sharedUser.signatures.mSignatures, + pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) { + Log.w(TAG, "Signature mismatch for shared user : " + pkgSetting.sharedUser); mLastScanError = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; return null; } @@ -5519,7 +5518,7 @@ class PackageManagerService extends IPackageManager.Stub { // First find the old package info and check signatures synchronized(mPackages) { oldPackage = mPackages.get(pkgName); - if (checkSignaturesLP(pkg.mSignatures, oldPackage.mSignatures) + if (checkSignaturesLP(oldPackage.mSignatures, pkg.mSignatures) != PackageManager.SIGNATURE_MATCH) { res.returnCode = PackageManager.INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES; return; @@ -5547,7 +5546,6 @@ class PackageManagerService extends IPackageManager.Stub { oldInstallerPackageName = mSettings.getInstallerPackageName(pkgName); } - parseFlags |= PackageManager.INSTALL_REPLACE_EXISTING; // First delete the existing package while retaining the data directory if (!deletePackageLI(pkgName, true, PackageManager.DONT_DELETE_DATA, res.removedInfo)) { @@ -5571,20 +5569,7 @@ class PackageManagerService extends IPackageManager.Stub { } } - if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) { - // If we deleted an exisiting package, the old source and resource files that we - // were keeping around in case we needed them (see below) can now be deleted. - // This info will be set on the res.removedInfo to clean up later on as post - // install action. - - //update signature on the new package setting - //this should always succeed, since we checked the - //signature earlier. - synchronized(mPackages) { - verifySignaturesLP(mSettings.mPackages.get(pkgName), pkg, - parseFlags, true); - } - } else { + if (res.returnCode != PackageManager.INSTALL_SUCCEEDED) { // remove package from internal structures. Note that we want deletePackageX to // delete the package data and cache directories that it created in // scanPackageLocked, unless those directories existed before we even tried to @@ -5603,19 +5588,23 @@ class PackageManagerService extends IPackageManager.Stub { Slog.e(TAG, "Failed allocating storage when restoring pkg : " + pkgName); return; } - PackageInstalledInfo restoreRes = new PackageInstalledInfo(); - restoreRes.removedInfo = new PackageRemovedInfo(); // Parse old package - parseFlags &= ~PackageManager.INSTALL_REPLACE_EXISTING; - scanPackageLI(restoreFile, parseFlags, scanMode); + boolean oldOnSd = isExternal(deletedPackage); + int oldParseFlags = mDefParseFlags | PackageParser.PARSE_CHATTY | + (isForwardLocked(deletedPackage) ? PackageParser.PARSE_FORWARD_LOCK : 0) | + (oldOnSd ? PackageParser.PARSE_ON_SDCARD : 0); + int oldScanMode = (oldOnSd ? 0 : SCAN_MONITOR) | SCAN_UPDATE_SIGNATURE; + if (scanPackageLI(restoreFile, oldParseFlags, oldScanMode) == null) { + Slog.e(TAG, "Failed to restore package : " + pkgName + " after failed upgrade"); + return; + } + // Restore of old package succeeded. Update permissions. synchronized (mPackages) { updatePermissionsLP(deletedPackage.packageName, deletedPackage, true, false); mSettings.writeLP(); } - if (restoreRes.returnCode != PackageManager.INSTALL_SUCCEEDED) { - Slog.e(TAG, "Failed restoring pkg : " + pkgName + " after failed upgrade"); - } + Slog.i(TAG, "Successfully restored package : " + pkgName + " after failed upgrade"); } } } @@ -5667,15 +5656,7 @@ class PackageManagerService extends IPackageManager.Stub { updatedSettings = true; } - if (res.returnCode == PackageManager.INSTALL_SUCCEEDED) { - //update signature on the new package setting - //this should always succeed, since we checked the - //signature earlier. - synchronized(mPackages) { - verifySignaturesLP(mSettings.mPackages.get(packageName), pkg, - parseFlags, true); - } - } else { + if (res.returnCode != PackageManager.INSTALL_SUCCEEDED) { // Re installation failed. Restore old information // Remove new pkg information if (newPackage != null) { @@ -5757,7 +5738,7 @@ class PackageManagerService extends IPackageManager.Stub { boolean forwardLocked = ((pFlags & PackageManager.INSTALL_FORWARD_LOCK) != 0); boolean onSd = ((pFlags & PackageManager.INSTALL_EXTERNAL) != 0); boolean replace = false; - int scanMode = SCAN_MONITOR | SCAN_FORCE_DEX | SCAN_UPDATE_SIGNATURE + int scanMode = (onSd ? 0 : SCAN_MONITOR) | SCAN_FORCE_DEX | SCAN_UPDATE_SIGNATURE | (newInstall ? SCAN_NEW_INSTALL : 0); // Result object to be returned res.returnCode = PackageManager.INSTALL_SUCCEEDED; @@ -5887,6 +5868,10 @@ class PackageManagerService extends IPackageManager.Stub { return ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_FORWARD_LOCK) != 0); } + private boolean isExternal(PackageParser.Package pkg) { + return ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0); + } + private void extractPublicFiles(PackageParser.Package newPackage, File publicZipFile) throws IOException { final ZipOutputStream publicZipOutStream = @@ -7316,101 +7301,6 @@ class PackageManagerService extends IPackageManager.Stub { } } - /** - * If any of the given 'sigs' is contained in the existing signatures, - * then completely replace the current signatures with the ones in - * 'sigs'. This is used for updating an existing package to a newly - * installed version. - */ - boolean updateSignatures(Signature[] sigs, boolean update) { - if (mSignatures == null) { - if (update) { - assignSignatures(sigs); - } - return true; - } - if (sigs == null) { - return false; - } - - for (int i=0; i