summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorThierry Strudel <tstrudel@google.com>2015-07-10 18:57:38 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-07-10 18:57:38 +0000
commita69dcefda3ec493216f401117417d86f8ef757ac (patch)
tree518dbdccc144dd5b95e55fdf51a45657e5b74fa9 /tools
parent38a534b6939630039d0c78c2f9f20dd8fde64c85 (diff)
parent74a81e6633276d92337749a5ee9d921207814dd4 (diff)
downloadbuild-a69dcefda3ec493216f401117417d86f8ef757ac.zip
build-a69dcefda3ec493216f401117417d86f8ef757ac.tar.gz
build-a69dcefda3ec493216f401117417d86f8ef757ac.tar.bz2
am 74a81e66: fix device specific fs_config on build server
* commit '74a81e6633276d92337749a5ee9d921207814dd4': fix device specific fs_config on build server
Diffstat (limited to 'tools')
-rw-r--r--tools/fs_config/fs_config.c10
-rw-r--r--tools/fs_get_stats/fs_get_stats.c7
-rwxr-xr-xtools/mktarball.sh6
-rwxr-xr-xtools/releasetools/build_image.py12
4 files changed, 24 insertions, 11 deletions
diff --git a/tools/fs_config/fs_config.c b/tools/fs_config/fs_config.c
index f594c1e..b9a14e1 100644
--- a/tools/fs_config/fs_config.c
+++ b/tools/fs_config/fs_config.c
@@ -68,16 +68,17 @@ static struct selabel_handle* get_sehnd(const char* context_file) {
}
static void usage() {
- fprintf(stderr, "Usage: fs_config [-S context_file] [-C]\n");
+ fprintf(stderr, "Usage: fs_config [-D product_out_path] [-S context_file] [-C]\n");
}
int main(int argc, char** argv) {
char buffer[1024];
const char* context_file = NULL;
+ const char* product_out_path = NULL;
struct selabel_handle* sehnd = NULL;
int print_capabilities = 0;
int opt;
- while((opt = getopt(argc, argv, "CS:")) != -1) {
+ while((opt = getopt(argc, argv, "CS:D:")) != -1) {
switch(opt) {
case 'C':
print_capabilities = 1;
@@ -85,6 +86,9 @@ int main(int argc, char** argv) {
case 'S':
context_file = optarg;
break;
+ case 'D':
+ product_out_path = optarg;
+ break;
default:
usage();
exit(EXIT_FAILURE);
@@ -115,7 +119,7 @@ int main(int argc, char** argv) {
unsigned uid = 0, gid = 0, mode = 0;
uint64_t capabilities;
- fs_config(buffer, is_dir, &uid, &gid, &mode, &capabilities);
+ fs_config(buffer, is_dir, product_out_path, &uid, &gid, &mode, &capabilities);
printf("%s %d %d %o", buffer, uid, gid, mode);
if (sehnd != NULL) {
diff --git a/tools/fs_get_stats/fs_get_stats.c b/tools/fs_get_stats/fs_get_stats.c
index a9814b9..159e2aa 100644
--- a/tools/fs_get_stats/fs_get_stats.c
+++ b/tools/fs_get_stats/fs_get_stats.c
@@ -25,11 +25,12 @@ print_help(void)
{
fprintf(stderr, "fs_get_stats: retrieve the target file stats "
"for the specified file\n");
- fprintf(stderr, "usage: fs_get_stats cur_perms is_dir filename\n");
+ fprintf(stderr, "usage: fs_get_stats cur_perms is_dir filename targetout\n");
fprintf(stderr, "\tcur_perms - The current permissions of "
"the file\n");
fprintf(stderr, "\tis_dir - Is filename is a dir, 1. Otherwise, 0.\n");
fprintf(stderr, "\tfilename - The filename to lookup\n");
+ fprintf(stderr, "\ttargetout - The target out path to query device specific FS configs\n");
fprintf(stderr, "\n");
}
@@ -42,7 +43,7 @@ main(int argc, const char *argv[])
unsigned uid = (unsigned)-1;
unsigned gid = (unsigned)-1;
- if (argc < 4) {
+ if (argc < 5) {
ERROR("Invalid arguments\n");
print_help();
exit(-1);
@@ -58,7 +59,7 @@ main(int argc, const char *argv[])
is_dir = 1;
uint64_t capabilities;
- fs_config(argv[3], is_dir, &uid, &gid, &perms, &capabilities);
+ fs_config(argv[3], is_dir, argv[4], &uid, &gid, &perms, &capabilities);
fprintf(stdout, "%d %d 0%o\n", uid, gid, perms);
return 0;
diff --git a/tools/mktarball.sh b/tools/mktarball.sh
index 3e32006..ef0fe86 100755
--- a/tools/mktarball.sh
+++ b/tools/mktarball.sh
@@ -5,8 +5,9 @@
# $3: subdir to tar up (from $2)
# $4: target tar name
# $5: target tarball name (usually $(3).bz2)
+# $6: TARGET_OUT path to query device specific FS configs
-if [ $# -ne 5 ]; then
+if [ $# -ne 6 ]; then
echo "Error: wrong number of arguments in cmd: $0 $* "
exit 1
fi
@@ -16,6 +17,7 @@ start_dir=`readlink -f $2`
dir_to_tar=$3
target_tar=`readlink -f $4`
target_tarball=`readlink -f $5`
+target_out=`readlink -f $6`
cd $2
@@ -28,7 +30,7 @@ files=`find ${dir_to_tar} \! -type d -print`
for f in ${subdirs} ${files} ; do
curr_perms=`stat -c 0%a $f`
[ -d "$f" ] && is_dir=1 || is_dir=0
- new_info=`${fs_get_stats} ${curr_perms} ${is_dir} ${f}`
+ new_info=`${fs_get_stats} ${curr_perms} ${is_dir} ${f} ${target_out}`
new_uid=`echo ${new_info} | awk '{print $1;}'`
new_gid=`echo ${new_info} | awk '{print $2;}'`
new_perms=`echo ${new_info} | awk '{print $3;}'`
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index 5e8f0e6..4b43c0c 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -204,13 +204,14 @@ def MakeVerityEnabledImage(out_file, prop_dict):
shutil.rmtree(tempdir_name, ignore_errors=True)
return True
-def BuildImage(in_dir, prop_dict, out_file):
+def BuildImage(in_dir, prop_dict, out_file, target_out=None):
"""Build an image to out_file from in_dir with property prop_dict.
Args:
in_dir: path of input directory.
prop_dict: property dictionary.
out_file: path of the output image file.
+ target_out: path of the product out directory to read device specific FS config files.
Returns:
True iff the image is built successfully.
@@ -272,6 +273,8 @@ def BuildImage(in_dir, prop_dict, out_file):
build_command.extend(["-T", str(prop_dict["timestamp"])])
if fs_config:
build_command.extend(["-C", fs_config])
+ if target_out:
+ build_command.extend(["-D", target_out])
if "block_list" in prop_dict:
build_command.extend(["-B", prop_dict["block_list"]])
build_command.extend(["-L", prop_dict["mount_point"]])
@@ -282,6 +285,8 @@ def BuildImage(in_dir, prop_dict, out_file):
build_command.extend([in_dir, out_file])
build_command.extend(["-s"])
build_command.extend(["-m", prop_dict["mount_point"]])
+ if target_out:
+ build_command.extend(["-d", target_out])
if "selinux_fc" in prop_dict:
build_command.extend(["-c", prop_dict["selinux_fc"]])
if "squashfs_compressor" in prop_dict:
@@ -467,13 +472,14 @@ def LoadGlobalDict(filename):
def main(argv):
- if len(argv) != 3:
+ if len(argv) != 4:
print __doc__
sys.exit(1)
in_dir = argv[0]
glob_dict_file = argv[1]
out_file = argv[2]
+ target_out = argv[3]
glob_dict = LoadGlobalDict(glob_dict_file)
if "mount_point" in glob_dict:
@@ -499,7 +505,7 @@ def main(argv):
image_properties = ImagePropFromGlobalDict(glob_dict, mount_point)
- if not BuildImage(in_dir, image_properties, out_file):
+ if not BuildImage(in_dir, image_properties, out_file, target_out):
print >> sys.stderr, "error: failed to build %s from %s" % (out_file,
in_dir)
exit(1)