Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e69ba761 authored by Tom Cherry's avatar Tom Cherry Committed by Benoit Lamarche
Browse files

Revert "Add getprop to toolbox"

This reverts commit c73497e1.

Change-Id: Id6b84c86781a6ad7b675c10f142c3daa4117ec46
parent 8fa3e728
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
cc_library_static {
cc_library_static {
    name: "libpropertyinfoparser",
    name: "libpropertyinfoparser",
    host_supported: true,
    host_supported: true,
    vendor_available: true,
    srcs: ["property_info_parser.cpp"],
    srcs: ["property_info_parser.cpp"],


    cpp_std: "experimental",
    cpp_std: "experimental",
+0 −1
Original line number Original line Diff line number Diff line
cc_defaults {
cc_defaults {
    name: "propertyinfoserializer_defaults",
    name: "propertyinfoserializer_defaults",
    host_supported: true,
    host_supported: true,
    vendor_available: true,
    cpp_std: "experimental",
    cpp_std: "experimental",
    target: {
    target: {
        linux: {
        linux: {
+8 −8
Original line number Original line Diff line number Diff line
@@ -175,18 +175,18 @@ bzip2: bzcat bzip2 bunzip2


one-true-awk: awk
one-true-awk: awk


toolbox: getevent getprop newfs\_msdos
toolbox: getevent newfs\_msdos


toybox: acpi base64 basename blockdev cal cat chcon chgrp chmod chown
toybox: acpi base64 basename blockdev cal cat chcon chgrp chmod chown
chroot chrt cksum clear cmp comm cp cpio cut date df diff dirname dmesg
chroot chrt cksum clear cmp comm cp cpio cut date df diff dirname dmesg
dos2unix du echo env expand expr fallocate false file find flock free
dos2unix du echo env expand expr fallocate false file find flock free
getenforce groups gunzip gzip head hostname hwclock id ifconfig inotifyd
getenforce getprop groups gunzip gzip head hostname hwclock id ifconfig
insmod ionice iorenice kill killall ln load\_policy log logname losetup
inotifyd insmod ionice iorenice kill killall ln load\_policy log logname
ls lsmod lsof lspci lsusb md5sum microcom mkdir mkfifo mknod mkswap
losetup ls lsmod lsof lspci lsusb md5sum microcom mkdir mkfifo mknod
mktemp modinfo modprobe more mount mountpoint mv netstat nice nl nohup
mkswap mktemp modinfo modprobe more mount mountpoint mv netstat nice
od paste patch pgrep pidof pkill pmap printenv printf ps pwd readlink
nl nohup od paste patch pgrep pidof pkill pmap printenv printf ps pwd
realpath renice restorecon rm rmdir rmmod runcon sed sendevent seq
readlink realpath renice restorecon rm rmdir rmmod runcon sed sendevent
setenforce setprop setsid sha1sum sha224sum sha256sum sha384sum
seq setenforce setprop setsid sha1sum sha224sum sha256sum sha384sum
sha512sum sleep sort split start stat stop strings swapoff swapon sync
sha512sum sleep sort split start stat stop strings swapoff swapon sync
sysctl tac tail tar taskset tee time timeout top touch tr true truncate
sysctl tac tail tar taskset tee time timeout top touch tr true truncate
tty ulimit umount uname uniq unix2dos uptime usleep uudecode uuencode
tty ulimit umount uname uniq unix2dos uptime usleep uudecode uuencode
+1 −8
Original line number Original line Diff line number Diff line
@@ -34,7 +34,7 @@ cc_library_static {


genrule {
genrule {
    name: "toolbox_tools",
    name: "toolbox_tools",
    cmd: "echo '/* file generated automatically */' >$(out) && for t in toolbox dd getevent newfs_msdos getprop; do echo \"TOOL($$t)\" >>$(out); done",
    cmd: "echo '/* file generated automatically */' >$(out) && for t in toolbox dd getevent newfs_msdos; do echo \"TOOL($$t)\" >>$(out); done",
    out: ["tools.h"],
    out: ["tools.h"],
}
}


@@ -52,7 +52,6 @@ cc_binary {
    srcs: [
    srcs: [
        "toolbox.c",
        "toolbox.c",
        "getevent.c",
        "getevent.c",
        "getprop.cpp",
        "newfs_msdos.c",
        "newfs_msdos.c",
    ],
    ],
    generated_headers: [
    generated_headers: [
@@ -61,18 +60,12 @@ cc_binary {
    ],
    ],
    whole_static_libs: ["libtoolbox_dd"],
    whole_static_libs: ["libtoolbox_dd"],
    shared_libs: [
    shared_libs: [
        "libbase",
        "libcutils",
        "libcutils",
    ],
    ],
    static_libs: [
        "libpropertyinfoparser",
    ],
    cpp_std: "gnu++1z",


    symlinks: [
    symlinks: [
        "dd",
        "dd",
        "getevent",
        "getevent",
        "getprop",
        "newfs_msdos",
        "newfs_msdos",
    ],
    ],
}
}

toolbox/getprop.cpp

deleted100644 → 0
+0 −126
Original line number Original line Diff line number Diff line
//
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

#include <getopt.h>
#include <sys/system_properties.h>

#include <iostream>
#include <string>
#include <vector>

#include <android-base/properties.h>
#include <property_info_parser/property_info_parser.h>

using android::base::GetProperty;
using android::properties::PropertyInfoAreaFile;

PropertyInfoAreaFile property_info_file;

void PrintAllProperties(bool print_property_context) {
  std::vector<std::pair<std::string, std::string>> properties;
  __system_property_foreach(
      [](const prop_info* pi, void* cookie) {
        __system_property_read_callback(
            pi,
            [](void* cookie, const char* name, const char* value, unsigned) {
              auto properties =
                  reinterpret_cast<std::vector<std::pair<std::string, std::string>>*>(cookie);
              properties->emplace_back(name, value);
            },
            cookie);
      },
      &properties);

  std::sort(properties.begin(), properties.end());

  if (print_property_context) {
    for (auto& [name, value] : properties) {
      const char* context = nullptr;
      property_info_file->GetPropertyInfo(name.c_str(), &context, nullptr);
      value = context;
    }
  }

  for (const auto& [name, value] : properties) {
    std::cout << "[" << name << "]: [" << value << "]" << std::endl;
  }
}

void PrintProperty(const char* name, const char* default_value, bool print_property_context) {
  if (print_property_context) {
    const char* context = nullptr;
    property_info_file->GetPropertyInfo(name, &context, nullptr);
    std::cout << context << std::endl;
  } else {
    std::cout << GetProperty(name, default_value) << std::endl;
  }
}

extern "C" int getprop_main(int argc, char** argv) {
  bool print_property_context = false;

  while (true) {
    static const struct option long_options[] = {
        {"help", no_argument, nullptr, 'h'},
        {nullptr, 0, nullptr, 0},
    };

    int arg = getopt_long(argc, argv, "Z", long_options, nullptr);

    if (arg == -1) {
      break;
    }

    switch (arg) {
      case 'h':
        std::cout << "usage: getprop [-Z] [NAME [DEFAULT]]\n\n"
                     "Gets an Android system property, or lists them all.\n"
                     "Use -Z to return the property context instead of the property value\n"
                  << std::endl;
        return 0;
      case 'Z':
        print_property_context = true;
        break;
      case '?':
        return -1;
      default:
        std::cerr << "getprop: getopt returned invalid result: " << arg << std::endl;
        return -1;
    }
  }

  if (print_property_context) {
    property_info_file.LoadDefaultPath();
    if (!property_info_file) {
      std::cerr << "Unable to load property info file" << std::endl;
      return -1;
    }
  }

  if (optind >= argc) {
    PrintAllProperties(print_property_context);
    return 0;
  }

  if (optind < argc - 2) {
    std::cerr << "getprop: Max 2 arguments (see \"getprop --help\")" << std::endl;
    return -1;
  }

  PrintProperty(argv[optind], (optind == argc - 1) ? "" : argv[optind + 1], print_property_context);

  return 0;
}