anchor.diff:      return false;
     }
   
  +  String _getDeviceDataPath(ApplicationPackage app) {
  +    return '/data/data/${app.id}';
  +  }
  +
     String _getDeviceSha1Path(ApplicationPackage app) {
  -    return '/sdcard/${app.id}/${app.name}.sha1';
  +    return '${_getDeviceDataPath(app)}/${app.name}.sha1';
     }
   
     String _getDeviceApkSha1(ApplicationPackage app) {
  
positive.code: 
      print('Installing ${app.name} on device.');
      runCheckedSync([adbPath, 'install', '-r', app.localPath]);
  
      Directory tempDir = Directory.systemTemp;
      String sha1Path = path.join(
          tempDir.path, (app.localPath + '.sha1').replaceAll(path.separator, '_'));
      File sha1TempFile = new File(sha1Path);
      sha1TempFile.writeAsStringSync(_getSourceSha1(app), flush: true);
      runCheckedSync([adbPath, 'push', sha1Path, _getDeviceSha1Path(app)]);
      sha1TempFile.deleteSync();
      return true;
    }
  
  
negative.code:     }
  
      if (tracePath != null) {
        runSync([adbPath, 'shell', 'run-as', apk.id, 'chmod', '777', tracePath]);
        runSync([adbPath, 'pull', tracePath]);
        runSync([adbPath, 'shell', 'rm', tracePath]);
        return path.basename(tracePath);
  