--- ../node/deps/npm/node_modules/cacache/lib/util/move-file.js 2017-10-22 19:30:25.778456404 +0200 +++ ./deps/npm/node_modules/cacache/lib/util/move-file.js 2017-10-22 20:41:18.021337095 +0200 @@ -4,6 +4,7 @@ const BB = require('bluebird') const chmod = BB.promisify(fs.chmod) const unlink = BB.promisify(fs.unlink) +const access = BB.promisify(fs.access) let move let pinflight @@ -18,6 +19,18 @@ // content their own way. // // Note that, as the name suggests, this strictly only supports file moves. + + + // Calling link() on android is not allowed, we get a SELinux security exception + if(process.platform === 'android') { + return access(dest, fs.constants.F_OK) + .catch(err => { + if (!move) { move = require('move-concurrently') } + return move(src, dest, { BB, fs }) + .then(() => chmod(dest, '0444')) + }) + } + return BB.fromNode(cb => { fs.link(src, dest, err => { if (err) {