Use exodus and Izzys script and test all flavors to detect tracking #358
To sustainably detect such problems early, we are now using exodus next to Izzys script and testing against all build flavors #358
This commit is contained in:
parent
49586ba53f
commit
a6fcde64e0
6
.gitignore
vendored
6
.gitignore
vendored
@ -49,6 +49,6 @@ local.properties
|
|||||||
# fdroid
|
# fdroid
|
||||||
**/fastlane/repo/**
|
**/fastlane/repo/**
|
||||||
**/fastlane/tmp/**
|
**/fastlane/tmp/**
|
||||||
**/fastlane/iod-scan-apk.php
|
**/fastlane/izzyscript/iod-scan-apk.php
|
||||||
**/fastlane/current_iod-scan-apk.php
|
**/fastlane/izzyscript/current_iod-scan-apk.php
|
||||||
**/fastlane/current_result.json
|
**/fastlane/izzyscript/current_result_*.json
|
||||||
|
@ -65,6 +65,9 @@ platform :android do |options|
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'playstore')
|
||||||
|
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'playstore')
|
||||||
|
|
||||||
upload_to_play_store(
|
upload_to_play_store(
|
||||||
track: deploy_target,
|
track: deploy_target,
|
||||||
apk: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
|
apk: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH],
|
||||||
@ -100,6 +103,9 @@ platform :android do |options|
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'apkstore')
|
||||||
|
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'apkstore')
|
||||||
|
|
||||||
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}.apk")
|
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}.apk")
|
||||||
|
|
||||||
server_host = ENV["APK_STORE_BASIC_URL"]
|
server_host = ENV["APK_STORE_BASIC_URL"]
|
||||||
@ -182,7 +188,8 @@ platform :android do |options|
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
checkTrackingAddedInDependency(alpha:options[:alpha], beta:options[:beta])
|
checkTrackingAddedInDependencyUsingIzzyScript(alpha:options[:alpha], beta:options[:beta], flavor: 'fdroid')
|
||||||
|
checkTrackingAddedInDependencyUsingExodus(alpha:options[:alpha], beta:options[:beta], flavor: 'fdroid')
|
||||||
|
|
||||||
if options[:alpha] or options[:beta]
|
if options[:alpha] or options[:beta]
|
||||||
puts "Skipping deployment to F-Droid cause there isn't currently a alpha/beta channel"
|
puts "Skipping deployment to F-Droid cause there isn't currently a alpha/beta channel"
|
||||||
@ -213,44 +220,61 @@ platform :android do |options|
|
|||||||
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}_fdroid_signed.apk")
|
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "release/Cryptomator-#{version}_fdroid_signed.apk")
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Check if tracking added in some dependency"
|
desc "Check if tracking added in some dependency using Izzy's script"
|
||||||
lane :checkTrackingAddedInDependency do |options|
|
lane :checkTrackingAddedInDependencyUsingIzzyScript do |options|
|
||||||
|
flavor = options[:flavor]
|
||||||
|
|
||||||
puts "Check if script file is latest"
|
puts "Check if script file is latest"
|
||||||
sh("wget -O current_iod-scan-apk.php https://gitlab.com/fdroid/issuebot/-/raw/master/modules/iod-scan-apk.php")
|
Dir.chdir("izzyscript") do
|
||||||
|
sh("wget -O current_iod-scan-apk.php https://gitlab.com/fdroid/issuebot/-/raw/master/modules/iod-scan-apk.php")
|
||||||
|
|
||||||
same_script = FileUtils.compare_file("iod-scan-apk.php", "current_iod-scan-apk.php")
|
same_script = FileUtils.compare_file("iod-scan-apk.php", "current_iod-scan-apk.php")
|
||||||
if same_script
|
if same_script
|
||||||
puts "Script file unchanged"
|
puts "Script file unchanged"
|
||||||
FileUtils.rm("current_iod-scan-apk.php")
|
FileUtils.rm("current_iod-scan-apk.php")
|
||||||
else
|
else
|
||||||
UI.error("Script updated, check diff, download and save to iod-scan-apk.php")
|
UI.error("Script updated, check diff, download and save to iod-scan-apk.php")
|
||||||
fail
|
fail
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.mkdir("unsigned")
|
||||||
|
|
||||||
|
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "unsigned/org.cryptomator_fdroid.apk")
|
||||||
|
|
||||||
|
sh("ISSUEBOT_CURRENT_APPLICATION_ID=org.cryptomator ISSUEBOT_CURRENT_REPLY_FILE=current_result_#{flavor}.json php iod-scan-apk.php")
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
FileUtils.rm("libinfo.txt")
|
||||||
|
FileUtils.rm("libsmali.txt")
|
||||||
|
FileUtils.rm("org.cryptomator_fdroid.apk")
|
||||||
|
FileUtils.rm_r("unsigned")
|
||||||
|
FileUtils.rm_r("org.cryptomator_fdroid")
|
||||||
|
|
||||||
|
puts "Check if something changed in the APK regarding the dependencies"
|
||||||
|
|
||||||
|
report = JSON.parse(File.read("result_#{flavor}.json"))["report"]
|
||||||
|
current_report = JSON.parse(File.read("current_result_#{flavor}.json"))["report"]
|
||||||
|
|
||||||
|
if report.eql?(current_report)
|
||||||
|
puts "Dependencies unchanged"
|
||||||
|
FileUtils.rm("current_result_#{flavor}.json")
|
||||||
|
else
|
||||||
|
UI.error("Dependencies changed, check result of current_result.json, if no problem, move it to result.json, commit and retry")
|
||||||
|
fail
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
FileUtils.mkdir("unsigned")
|
desc "Check if tracking added in some dependency using exodus"
|
||||||
|
lane :checkTrackingAddedInDependencyUsingExodus do |options|
|
||||||
|
FileUtils.mkdir("exodus-test")
|
||||||
|
|
||||||
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "unsigned/org.cryptomator_fdroid.apk")
|
FileUtils.cp(lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH], "exodus-test/org.cryptomator.apk")
|
||||||
|
|
||||||
sh("ISSUEBOT_CURRENT_APPLICATION_ID=org.cryptomator ISSUEBOT_CURRENT_REPLY_FILE=current_result.json php iod-scan-apk.php")
|
puts "Check if a tracking library was added"
|
||||||
|
sh("docker run -v $(pwd)/exodus-test/org.cryptomator.apk:/app.apk --rm -i exodusprivacy/exodus-standalone | tail -1 | grep -q 'Found trackers: 0'")
|
||||||
|
|
||||||
# clean up
|
FileUtils.rm_r("exodus-test")
|
||||||
FileUtils.rm("libinfo.txt")
|
|
||||||
FileUtils.rm("libsmali.txt")
|
|
||||||
FileUtils.rm_r("unsigned")
|
|
||||||
FileUtils.rm_r("org.cryptomator_fdroid")
|
|
||||||
|
|
||||||
puts "Check if something changed in the APK regarding the dependencies"
|
|
||||||
|
|
||||||
report = JSON.parse(File.read("result.json"))["report"]
|
|
||||||
current_report = JSON.parse(File.read("current_result.json"))["report"]
|
|
||||||
|
|
||||||
if report.eql?(current_report)
|
|
||||||
puts "Dependencies unchanged"
|
|
||||||
FileUtils.rm("current_result.json")
|
|
||||||
else
|
|
||||||
UI.error("Dependencies changed, check result of current_result.json, if no problem, move it to result.json, commit and retry")
|
|
||||||
fail
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Create GitHub draft release"
|
desc "Create GitHub draft release"
|
||||||
|
@ -41,11 +41,16 @@ Deploy new version to server
|
|||||||
fastlane android deployToFDroid
|
fastlane android deployToFDroid
|
||||||
```
|
```
|
||||||
Deploy new version to F-Droid
|
Deploy new version to F-Droid
|
||||||
### android checkTrackingAddedInDependency
|
### android checkTrackingAddedInDependencyUsingIzzyScript
|
||||||
```
|
```
|
||||||
fastlane android checkTrackingAddedInDependency
|
fastlane android checkTrackingAddedInDependencyUsingIzzyScript
|
||||||
```
|
```
|
||||||
Check if tracking added in some dependency
|
Check if tracking added in some dependency using Izzy's script
|
||||||
|
### android checkTrackingAddedInDependencyUsingExodus
|
||||||
|
```
|
||||||
|
fastlane android checkTrackingAddedInDependencyUsingExodus
|
||||||
|
```
|
||||||
|
Check if tracking added in some dependency using exodus
|
||||||
### android createGitHubDraftRelease
|
### android createGitHubDraftRelease
|
||||||
```
|
```
|
||||||
fastlane android createGitHubDraftRelease
|
fastlane android createGitHubDraftRelease
|
||||||
|
1
fastlane/izzyscript/result_apkstore.json
Normal file
1
fastlane/izzyscript/result_apkstore.json
Normal file
File diff suppressed because one or more lines are too long
1
fastlane/izzyscript/result_playstore.json
Normal file
1
fastlane/izzyscript/result_playstore.json
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user