Build failures with latest marlin tag #759

Closed
Rudd-O opened this Issue Oct 3, 2017 · 15 comments

Comments

Projects
None yet
2 participants
@Rudd-O

Rudd-O commented Oct 3, 2017

META/otakeys.txt has no keys; using keys/marlin/releasekey.x509.pem for OTA package verification.
Using keys/marlin/releasekey.x509.pem for payload verification.
Replacing verity private key with keys/marlin/verity
Replacing verity public key with keys/marlin/verity_key.pub
Replacing verity keyid with 5d0936bec3848ab90c5dfaa8c80ab1f4f9dd5068 error=None
out_cmdline console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=marlin user_debug=31 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 cma=32M@0-0xffffffff loop.max_part=7 buildvariant=user veritykeyid=id:5d0936bec3848ab90c5dfaa8c80ab1f4f9dd5068


++++ boot ++++


building image from target_files BOOT...


++++ system ++++


creating system.img...
Running:  build_verity_tree -s 2147483648
16912384
Running:  system/extras/verity/build_verity_metadata.py size 2147483648
32768
Running:  fec -s 2164428800
17117184
Running:  build_verity_tree -s 2130452480
16781312
Running:  system/extras/verity/build_verity_metadata.py size 2130452480
32768
Running:  fec -s 2147266560
16986112
Running:  build_verity_tree -s 2121936896
16715776
Running:  system/extras/verity/build_verity_metadata.py size 2121936896
32768
Running:  fec -s 2138685440
16912384
Running:  build_verity_tree -s 2117677056
16683008
Running:  system/extras/verity/build_verity_metadata.py size 2117677056
32768
Running:  fec -s 2134392832
16879616
Running:  build_verity_tree -s 2115547136
16666624
Running:  system/extras/verity/build_verity_metadata.py size 2115547136
32768
Running:  fec -s 2132246528
16863232
Running:  build_verity_tree -s 2114482176
16658432
Running:  system/extras/verity/build_verity_metadata.py size 2114482176
32768
Running:  fec -s 2131173376
16855040
Running:  build_verity_tree -s 2113949696
16654336
Running:  system/extras/verity/build_verity_metadata.py size 2113949696
32768
Running:  fec -s 2130636800
16855040
Running:  build_verity_tree -s 2113683456
16650240
Running:  system/extras/verity/build_verity_metadata.py size 2113683456
32768
Running:  fec -s 2130366464
16846848
Running:  build_verity_tree -s 2113818624
16650240
Running:  system/extras/verity/build_verity_metadata.py size 2113818624
32768
Running:  fec -s 2130501632
16846848
Running:  build_verity_tree -s 2113884160
16650240
Running:  system/extras/verity/build_verity_metadata.py size 2113884160
32768
Running:  fec -s 2130567168
16846848
Running:  build_verity_tree -s 2113916928
16650240
Running:  system/extras/verity/build_verity_metadata.py size 2113916928
32768
Running:  fec -s 2130599936
16846848
Running:  build_verity_tree -s 2113933312
16654336
Running:  system/extras/verity/build_verity_metadata.py size 2113933312
32768
Running:  fec -s 2130620416
16855040
Running:  build_verity_tree -s 2113941504
16654336
Running:  system/extras/verity/build_verity_metadata.py size 2113941504
32768
Running:  fec -s 2130628608
16855040
Running:  build_verity_tree -s 2113945600
16654336
Running:  system/extras/verity/build_verity_metadata.py size 2113945600
32768
Running:  fec -s 2130632704
16855040
Running:  mkuserimg_mke2fs.sh -s /tmp/tmpOedgja /tmp/system-AMgL_P.img ext4 / 2113941504 -T 1230768000 -C /tmp/root_fs_configH02AJU.txt -B /tmp/system-GqPX2r.map -L / /tmp/targetfiles-svZtQg/META/file_contexts.bin
mke2fs -L / -E android_sparse -t ext4 -b 4096 /tmp/system-AMgL_P.img 516099
mke2fs 1.43.3 (04-Sep-2016)
Creating filesystem with 516099 4k blocks and 129024 inodes
Filesystem UUID: 67e31257-efcd-44de-b9e6-0c18e1469f1a
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables:  0/16�����     �����done                            
Writing inode tables:  0/16�����     �����done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information:  0/16�����     �����done

e2fsdroid -T 1230768000 -C /tmp/root_fs_configH02AJU.txt -B /tmp/system-GqPX2r.map -S /tmp/targetfiles-svZtQg/META/file_contexts.bin -f /tmp/tmpOedgja -a / /tmp/system-AMgL_P.img
loaded 2728 fs_config entries
Running:  build_verity_tree -A aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 /tmp/system-AMgL_P.img /tmp/tmppsj6me_verity_images/verity.img
26ef5d59a1074f83ac3e5a8df998ff98f909ebef1120baf2e5bb3849f0d8d0bd aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
Running:  system/extras/verity/build_verity_metadata.py build 2113941504 /tmp/tmppsj6me_verity_images/verity_metadata.img 26ef5d59a1074f83ac3e5a8df998ff98f909ebef1120baf2e5bb3849f0d8d0bd aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 /dev/block/platform/soc/624000.ufshc/by-name/system verity_signer keys/marlin/verity.pk8
['verity_signer', '/tmp/tmp3O3mMh.table', 'keys/marlin/verity.pk8', '/tmp/tmpvA4xa7.sig']
appending /tmp/tmppsj6me_verity_images/verity_metadata.img to /tmp/tmppsj6me_verity_images/verity.img
Running:  fec -e -p 0 /tmp/system-AMgL_P.img /tmp/tmppsj6me_verity_images/verity.img /tmp/tmppsj6me_verity_images/verity_fec.img
encoding RS(255, 253) to '/tmp/tmppsj6me_verity_images/verity_fec.img' for input files:
	1: '/tmp/system-AMgL_P.img'
	2: '/tmp/tmppsj6me_verity_images/verity.img'
appending /tmp/tmppsj6me_verity_images/verity_fec.img to /tmp/tmppsj6me_verity_images/verity.img
Running:  append2simg /tmp/system-AMgL_P.img /tmp/tmppsj6me_verity_images/verity.img

Running:  simg2img /tmp/system-AMgL_P.img /tmp/unsparse_system-AMgL_P.img

Running:  e2fsck -f -n /tmp/unsparse_system-AMgL_P.img
e2fsck 1.43.3 (04-Sep-2016)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/: 2737/129024 files (0.7% non-contiguous), 319982/516099 blocks


++++ radio ++++


Total of 524288 4096-byte output blocks in 17 input chunks.
done.
done.
+ build/tools/releasetools/ota_from_target_files --block -k keys/marlin/releasekey out/release-marlin-2017.10.02.22/marlin-target_files-2017.10.02.22.zip out/release-marlin-2017.10.02.22/marlin-ota_update-2017.10.02.22.zip
done.
+ build/tools/releasetools/img_from_target_files -n out/release-marlin-2017.10.02.22/marlin-target_files-2017.10.02.22.zip out/release-marlin-2017.10.02.22/marlin-img-2017.10.02.22.zip
cleaning up...
done.
+ cd out/release-marlin-2017.10.02.22
+ source ../../device/common/generate-factory-images-common.sh
++ test '' = ''
++ XLOADERSRC=xloader.img
++ test '' = ''
++ BOOTLOADERSRC=bootloader.img
++ test '' = ''
++ RADIOSRC=radio.img
++ test '' = ''
++ SLEEPDURATION=5
++ rm -rf tmp
++ mkdir -p tmp/marlin-opr3.170623.008
++ test '' '!=' ''
++ test '' = ''
++ unzip -d tmp marlin-target_files-2017.10.02.22.zip RADIO/bootloader.img
Archive:  marlin-target_files-2017.10.02.22.zip
caution: filename not matched:  RADIO/bootloader.img
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 11
Finished: FAILURE

The finished target_files fails to contain a bootloader.img, in fact the whole RADIO/ folder is missing. What gives? What can I give you to help you debug the problem?

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 3, 2017

Contributor

You need to do this step now because we stopped publishing vendor repositories ourselves:

https://copperhead.co/android/docs/building#extracting-vendor-files-for-nexus-and-pixel-devices

This is a case where an incremental build will probably be fine.

You might also need to run git clean -fdx in the android-prepare-vendor repository before building. There are some reports of issues when not doing that which I wasn't able to reproduce.

Contributor

thestinger commented Oct 3, 2017

You need to do this step now because we stopped publishing vendor repositories ourselves:

https://copperhead.co/android/docs/building#extracting-vendor-files-for-nexus-and-pixel-devices

This is a case where an incremental build will probably be fine.

You might also need to run git clean -fdx in the android-prepare-vendor repository before building. There are some reports of issues when not doing that which I wasn't able to reproduce.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 3, 2017

Contributor

We have some permissions to redistribute code but putting it on GitHub is going to lead to problems.

Contributor

thestinger commented Oct 3, 2017

We have some permissions to redistribute code but putting it on GitHub is going to lead to problems.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 3, 2017

That piece of junk developers.google.com page mentioned in the docs simply does nothing when I hit ACKNOWLEDGE. What do I do?

Rudd-O commented Oct 3, 2017

That piece of junk developers.google.com page mentioned in the docs simply does nothing when I hit ACKNOWLEDGE. What do I do?

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 3, 2017

Contributor

The BUILD_ID value is currently just the first part of the CopperheadOS version for all devices (OPR3.170623.008 for Pixels) but that isn't always the case.

Contributor

thestinger commented Oct 3, 2017

The BUILD_ID value is currently just the first part of the CopperheadOS version for all devices (OPR3.170623.008 for Pixels) but that isn't always the case.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 3, 2017

Actually, without an automated way of retrieving the images from Google — and the factory images download page is absolutely bulletproof against that — there is no way I can do my builds, because I can't be expected to download the image by hand every time and put it in my build server. I can't even list the available builds in the page!

How do your automated build scripts obtain the factory images from Google?

Rudd-O commented Oct 3, 2017

Actually, without an automated way of retrieving the images from Google — and the factory images download page is absolutely bulletproof against that — there is no way I can do my builds, because I can't be expected to download the image by hand every time and put it in my build server. I can't even list the available builds in the page!

How do your automated build scripts obtain the factory images from Google?

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 3, 2017

Aha. The commands do it. It's not clear from the docs. Instructions just say "Extract...".

Rudd-O commented Oct 3, 2017

Aha. The commands do it. It's not clear from the docs. Instructions just say "Extract...".

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 3, 2017

Contributor

Looking at the page is only needed to find the right build id. That's how I figure out which build id to use for the month and then I find the corresponding tag by looking at the tags in platform/build (aka build/make) to figure out which tag has that build id. The code is rebased onto the new tag and I generate new vendor files from the factory images for that tag / build id.

I still keep the vendor files in Git repositories, but other people are expected to fetch them via the same scripts on their own now.

Contributor

thestinger commented Oct 3, 2017

Looking at the page is only needed to find the right build id. That's how I figure out which build id to use for the month and then I find the corresponding tag by looking at the tags in platform/build (aka build/make) to figure out which tag has that build id. The code is rebased onto the new tag and I generate new vendor files from the factory images for that tag / build id.

I still keep the vendor files in Git repositories, but other people are expected to fetch them via the same scripts on their own now.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 4, 2017

It doesn't work anyway. After running this in the src/ directory:

# Obtain Google official images
if [[ $PRODUCT_NAME == hikey* ]]; then
  true
else
  cd "$BUILD_DIR"/src
  vendor/android-prepare-vendor/execute-all.sh -d "$PRODUCT_NAME" -b "$BUILD_ID" -o vendor/android-prepare-vendor
  lowerbuildid=$(echo "$BUILD_ID" | tr '[:upper:]' '[:lower:]')
  mkdir -p vendor/google_devices
  rsync -av --delete \
     vendor/android-prepare-vendor/"$PRODUCT_NAME"/"$lowerbuildid"/vendor/google_devices/"$PRODUCT_NAME"/ \
     vendor/google_devices/"$PRODUCT_NAME"
fi

The thing says this:

============================================
ninja: no work to do.
[1/3] glob vendor/*/*/Android.bp
[2/3] glob build/tools/*/Android.bp

[1/3] glob vendor/*/*/Android.bp

$(shell build/core/find-jdk-tools-jar.sh) was changed, regenerating...

[1/981] including out/soong/Android-aosp_marlin.mk ...

[2/981] including ./art/Android.mk ...
[3/981] including ./bionic/Android.mk ...
[4/981] including ./bootable/recovery/Android.mk ...
[5/981] including ./build/make/Android.mk ...
[6/981] including ./build/target/board/Android.mk ...
./kernel/google/marlin/AndroidKernel.mk:24: warning: Forcing kernel header generation only for 'arm64'
Using appended DTB
[7/981] including ./build/target/product/security/Android.mk ...
[8/981] including ./build/tools/Android.mk ...
[9/981] including ./cts/Android.mk ...
cts/apps/CtsVerifier/Android.mk:72: warning: FindEmulator: find: `cts/apps/CtsVerifier/src/com/android/cts/verifier/backup': No such file or directory
build/core/java_common.mk:88: warning: FindEmulator: cd: cts/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/cts/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/res: No such file or directory
build/core/java_common.mk:88: warning: FindEmulator: cd: cts/hostsidetests/backup/assets: No such file or directory
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/src': No such file or directory
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/src': No such file or directory

cts/tests/tests/contactsproviderwipe/Android.mk:33: warning: FindEmulator: find: `cts/tests/tests/contactsproviderwipe/common/src': No such file or directory
cts/tests/tests/telecom3/Android.mk:37: warning: FindEmulator: find: `cts/tests/tests/telecom/src/android/telecom/cts/MockDialerActivity.java': No such file or directory
[10/981] including ./dalvik/Android.mk ...
[11/981] including ./developers/samples/android/security/FingerprintDialog/Application/src/main/Android.mk ...
[12/981] including ./development/apps/BluetoothDebug/Android.mk ...
[13/981] including ./development/apps/BuildWidget/Android.mk ...
[14/981] including ./development/apps/CustomLocale/Android.mk ...
[15/981] including ./development/apps/Development/Android.mk ...
[16/981] including ./development/apps/DevelopmentSettings/Android.mk ...
[17/981] including ./development/apps/Fallback/Android.mk ...
[18/981] including ./development/apps/GestureBuilder/Android.mk ...
[19/981] including ./development/apps/NinePatchLab/Android.mk ...
[20/981] including ./development/apps/OBJViewer/Android.mk ...
[21/981] including ./development/apps/PushApiAuthenticator/Android.mk ...
[22/981] including ./development/apps/PushApiTestAppOne/Android.mk ...
[23/981] including ./development/apps/PushApiTestAppTwo/Android.mk ...
...
[980/981] including ./vendor/android-prepare-vendor/marlin/opr3.170623.008/vendor/google_devices/marlin/Android.mk ...
[981/981] including ./vendor/google_devices/marlin/Android.mk ...
build/core/base_rules.mk:238: error: vendor/google_devices/marlin: MODULE.TARGET.APPS.atfwd already defined by vendor/google_devices/marlin.
23:59:07 ckati failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 2
Finished: FAILURE

Rudd-O commented Oct 4, 2017

It doesn't work anyway. After running this in the src/ directory:

# Obtain Google official images
if [[ $PRODUCT_NAME == hikey* ]]; then
  true
else
  cd "$BUILD_DIR"/src
  vendor/android-prepare-vendor/execute-all.sh -d "$PRODUCT_NAME" -b "$BUILD_ID" -o vendor/android-prepare-vendor
  lowerbuildid=$(echo "$BUILD_ID" | tr '[:upper:]' '[:lower:]')
  mkdir -p vendor/google_devices
  rsync -av --delete \
     vendor/android-prepare-vendor/"$PRODUCT_NAME"/"$lowerbuildid"/vendor/google_devices/"$PRODUCT_NAME"/ \
     vendor/google_devices/"$PRODUCT_NAME"
fi

The thing says this:

============================================
ninja: no work to do.
[1/3] glob vendor/*/*/Android.bp
[2/3] glob build/tools/*/Android.bp

[1/3] glob vendor/*/*/Android.bp

$(shell build/core/find-jdk-tools-jar.sh) was changed, regenerating...

[1/981] including out/soong/Android-aosp_marlin.mk ...

[2/981] including ./art/Android.mk ...
[3/981] including ./bionic/Android.mk ...
[4/981] including ./bootable/recovery/Android.mk ...
[5/981] including ./build/make/Android.mk ...
[6/981] including ./build/target/board/Android.mk ...
./kernel/google/marlin/AndroidKernel.mk:24: warning: Forcing kernel header generation only for 'arm64'
Using appended DTB
[7/981] including ./build/target/product/security/Android.mk ...
[8/981] including ./build/tools/Android.mk ...
[9/981] including ./cts/Android.mk ...
cts/apps/CtsVerifier/Android.mk:72: warning: FindEmulator: find: `cts/apps/CtsVerifier/src/com/android/cts/verifier/backup': No such file or directory
build/core/java_common.mk:88: warning: FindEmulator: cd: cts/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/cts/hostsidetests/appsecurity/test-apps/WriteExternalStorageApp/res: No such file or directory
build/core/java_common.mk:88: warning: FindEmulator: cd: cts/hostsidetests/backup/assets: No such file or directory
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/src': No such file or directory
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/src': No such file or directory

cts/tests/tests/contactsproviderwipe/Android.mk:33: warning: FindEmulator: find: `cts/tests/tests/contactsproviderwipe/common/src': No such file or directory
cts/tests/tests/telecom3/Android.mk:37: warning: FindEmulator: find: `cts/tests/tests/telecom/src/android/telecom/cts/MockDialerActivity.java': No such file or directory
[10/981] including ./dalvik/Android.mk ...
[11/981] including ./developers/samples/android/security/FingerprintDialog/Application/src/main/Android.mk ...
[12/981] including ./development/apps/BluetoothDebug/Android.mk ...
[13/981] including ./development/apps/BuildWidget/Android.mk ...
[14/981] including ./development/apps/CustomLocale/Android.mk ...
[15/981] including ./development/apps/Development/Android.mk ...
[16/981] including ./development/apps/DevelopmentSettings/Android.mk ...
[17/981] including ./development/apps/Fallback/Android.mk ...
[18/981] including ./development/apps/GestureBuilder/Android.mk ...
[19/981] including ./development/apps/NinePatchLab/Android.mk ...
[20/981] including ./development/apps/OBJViewer/Android.mk ...
[21/981] including ./development/apps/PushApiAuthenticator/Android.mk ...
[22/981] including ./development/apps/PushApiTestAppOne/Android.mk ...
[23/981] including ./development/apps/PushApiTestAppTwo/Android.mk ...
...
[980/981] including ./vendor/android-prepare-vendor/marlin/opr3.170623.008/vendor/google_devices/marlin/Android.mk ...
[981/981] including ./vendor/google_devices/marlin/Android.mk ...
build/core/base_rules.mk:238: error: vendor/google_devices/marlin: MODULE.TARGET.APPS.atfwd already defined by vendor/google_devices/marlin.
23:59:07 ckati failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 2
Finished: FAILURE
@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 4, 2017

Contributor

Run git clean -fdx in vendor/android-prepare-vendor. I need some way of preventing the build system from looking in there.

Contributor

thestinger commented Oct 4, 2017

Run git clean -fdx in vendor/android-prepare-vendor. I need some way of preventing the build system from looking in there.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 4, 2017

I nuked the entire src/ directory before the build. No difference. Do you mean I must run this at some specific point during the build?

Rudd-O commented Oct 4, 2017

I nuked the entire src/ directory before the build. No difference. Do you mean I must run this at some specific point during the build?

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 4, 2017

OK. I got it to work with gitcleanfxd right after the factory unzip.

My copperheados-build repo has been updated. Would you like to collaborate on an ongoing basis with it? Other people have begun using it too.

Rudd-O commented Oct 4, 2017

OK. I got it to work with gitcleanfxd right after the factory unzip.

My copperheados-build repo has been updated. Would you like to collaborate on an ongoing basis with it? Other people have begun using it too.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 4, 2017

Contributor

It would be nice if people helped improve things like preventing this issue from happening with android-prepare-vendor without manual intervention, etc. but it seems that isn't going to happen and I've given up on it due to lack of time.

Contributor

thestinger commented Oct 4, 2017

It would be nice if people helped improve things like preventing this issue from happening with android-prepare-vendor without manual intervention, etc. but it seems that isn't going to happen and I've given up on it due to lack of time.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 4, 2017

Contributor

I need to focus on maintenance, porting features to Oreo from Nougat and implementing some high priority essential privacy / security features that are missing. There's no time to work on any frills or improving the build experience without help and that's still the case if we hire full-time developers.

Contributor

thestinger commented Oct 4, 2017

I need to focus on maintenance, porting features to Oreo from Nougat and implementing some high priority essential privacy / security features that are missing. There's no time to work on any frills or improving the build experience without help and that's still the case if we hire full-time developers.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Oct 4, 2017

Rudd-O commented Oct 4, 2017

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 5, 2017

Contributor

It would be welcome for people to help with things like making F-Droid automatically use the right keys, dealing with this android-prepare-vendor issue, etc. I'm overloaded with work. I can't work on something else too.

Contributor

thestinger commented Oct 5, 2017

It would be welcome for people to help with things like making F-Droid automatically use the right keys, dealing with this android-prepare-vendor issue, etc. I'm overloaded with work. I can't work on something else too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment