apk validation by file size

by Lee » Mon, 07 Sep 2009 23:24:54 GMT


Sponsored Links
 I had the thought of checking for tampering with the apk by embedding
a couple of checks against it's size once installed on  the
device.

I was just a bit concerned that maybe the size would change dependent
on the device (e.g. different FS format or whatever).

Thanks,

Lee

p.s. no debates about whether this is worthwhile or not please :-)
--~--~---------~--~----~------------~-------~--~----~



apk validation by file size

by Dianne Hackborn » Tue, 08 Sep 2009 02:51:09 GMT


 The best way is to check the certificate it is signed with, since nobody can
sign with a certificate that they haven't been given the private key for.
That said, if they have tampered with your .apk, they can also tamper with
your code, and change whatever check you may have.






-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


apk validation by file size

by Lee » Tue, 08 Sep 2009 03:49:27 GMT


 > The best way is to check the certificate it is signed with, since nobody can

Is there system code that I can call for that ? Any keywords you could
throw in ?

My original question, is the APK size the same on any device once
created ?

Thanks again,

Lee
--~--~---------~--~----~------------~-------~--~----~



apk validation by file size

by Mark Murphy » Tue, 08 Sep 2009 04:16:56 GMT


 


PackageManager#getPackageInfo() returns a PackageInfo which has a
signatures field.


I don't think you have any supported means of figuring out the size of
the APK on the device.

-- 
Mark Murphy (a Commons Guy)
 http://commonsware.com  |  http://twitter.com/commonsguy 

Warescription: Three Android Books, Plus Updates, $35/Year

--~--~---------~--~----~------------~-------~--~----~



apk validation by file size

by Lee » Tue, 08 Sep 2009 15:11:21 GMT


 > PackageManager#getPackageInfo() returns a PackageInfo which has a

Thanks Mark, should've thought of PackageInfo ahem.


Well the thing is just lying around in the file system, it's easy to
test it's size.

Lee
--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. android SDK 1.5 where do i find the sqlite db file in my system

In android  am using the SDK 1.5  am using the Database concepts to
create the Sqlite Db file but i don't know where the file is stored.
any one help me to find that Db file in my system please

Thank you

--~--~---------~--~----~------------~-------~--~----~

2. How can the permission exception happens?

Hello everyone

I modified the Launcher and did add the permisson " <uses-permission
android:name="android.permission.BIND_APPWIDGET" />". But after make,
when I start the emulator there will be an exception told me that
Bind_appwidget permisson should add.

Can anyone help me.
Thanks

This is my manifeist

<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 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.
*/
-->
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.launcher"
    android:sharedUserId="android.uid.shared"
    android:sharedUserLabel="@string/application_name">

    <permission
        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_install_shortcut"
        android:description="@string/permdesc_install_shortcut" />
    <permission

android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_uninstall_shortcut"
        android:description="@string/permdesc_uninstall_shortcut"/>
    <permission
        android:name="com.android.launcher.permission.READ_SETTINGS"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_read_settings"
        android:description="@string/permdesc_read_settings"/>
    <permission
        android:name="com.android.launcher.permission.WRITE_SETTINGS"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_write_settings"
        android:description="@string/permdesc_write_settings"/>

         
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission
android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission
android:name="android.permission.SET_WALLPAPER_HINTS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.BIND_APPWIDGET" />
    <uses-permission
android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission
android:name="com.android.launcher.permission.WRITE_SETTINGS" />
    
    

    <application
        android:name="LauncherApplication"
        android:process="android.process.acore"
        android:label="@string/application_name"
        android:icon="@drawable/ic_launcher_home">

        <activity
            android:name="Launcher"
            android:launchMode="singleTask"
            android:clearTaskOnLaunch="true"
            android:stateNotNeeded="true"
            android:theme="@style/Theme"
            android:screenOrientation="nosensor"
            android:windowSoftInputMode="stateUnspecified|adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.HOME"/>
                <category
android:name="android.intent.category.DEFAULT" />
                <category
android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>

        <activity
            android:name="WallpaperChooser"
            android:label="@string/pick_wallpaper"
            android:icon="@drawable/ic_launcher_gallery">
            <intent-filter>
                <action
android:name="android.intent.action.SET_WALLPAPER" />
                <category
android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        
        <!-- Enable system-default search mode for any activity in Home
-->
        <meta-data
            android:name="android.app.default_searchable"
            android:value="*" />

        <!-- Intent received used to install shortcuts from other
applications -->
        <receiver
            android:name=".InstallShortcutReceiver"

android:permission="com.android.launcher.permission.INSTALL_SHORTCUT">
            <intent-filter>
                <action
android:name="com.android.launcher.action.INSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>

        <!-- Intent received used to uninstall shortcuts from other
applications -->
        <receiver
            android:name=".UninstallShortcutReceiver"

android:permission="com.android.launcher.permission.UNINSTALL_SHORTCUT">
            <intent-filter>
                <action
android:name="com.android.launcher.action.UNINSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>

        <!-- The settings provider contains Home's data, like the
workspace favorites -->
        <provider
            android:name="LauncherProvider"
            android:authorities="com.android.launcher.settings"

android:writePermission="com.android.launcher.permission.WRITE_SETTINGS"

android:readPermission="com.android.launcher.permission.READ_SETTINGS" />

    </application>
    
</manifest>


This is the exception:

09-23 19:44:27.797: WARN/TR Message(618): bindGagetId appWidgetId=6
provider=ComponentInfo{com.....}: User 10002 does not have
android.permission.BIND_APPWIDGET.



--~--~---------~--~----~------------~-------~--~----~

3. Application spontaneous resets G1

4. Android emulator can't get correct resulotion when viewed http://picasaweb.google.com/m/viewer?source=androidclient

5. ALSA build error for release 1.0

6. Phone call, recording

7. android SDK 1.5 where do i find the sqlite db file in my system