e93a0c47 |
1 | /* |
2 | Copyright (C) 2017-2018 The Android Open Source Project |
3 | |
4 | Redistribution and use in source and binary forms, with or without |
5 | modification, are permitted provided that the following conditions are |
6 | met: |
7 | * Redistributions of source code must retain the above copyright |
8 | notice, this list of conditions and the following disclaimer. |
9 | * Redistributions in binary form must reproduce the above |
10 | copyright notice, this list of conditions and the following |
11 | disclaimer in the documentation and/or other materials provided |
12 | with the distribution. |
13 | * Neither the name of The Linux Foundation nor the names of its |
14 | contributors may be used to endorse or promote products derived |
15 | from this software without specific prior written permission. |
16 | |
17 | THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED |
18 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
19 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT |
20 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
21 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
22 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
23 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
24 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
25 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
26 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
27 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | */ |
29 | |
30 | #include <cstdlib> |
31 | #include <unistd.h> |
32 | #include <fcntl.h> |
33 | #include <android-base/logging.h> |
34 | #include <android-base/properties.h> |
35 | |
36 | #include "property_service.h" |
37 | #include "log.h" |
38 | |
39 | namespace android { |
40 | namespace init { |
41 | |
42 | void load_op7pro(const char *model) { |
43 | property_set("ro.product.model", model); |
7c95fb05 |
44 | property_set("ro.product.name", "OnePlus7Pro"); |
e93a0c47 |
45 | property_set("ro.build.product", "OnePlus7Pro"); |
46 | property_set("ro.product.device", "OnePlus7Pro"); |
47 | property_set("ro.vendor.product.device", "OnePlus7Pro"); |
48 | property_set("ro.display.series", "OnePlus 7 Pro"); |
49 | } |
50 | |
51 | void load_op7pro5g(const char *model) { |
52 | property_set("ro.product.model", model); |
7c95fb05 |
53 | property_set("ro.product.name", "OnePlus7ProNR"); |
e93a0c47 |
54 | property_set("ro.build.product", "OnePlus7ProNR"); |
55 | property_set("ro.product.device", "OnePlus7ProNR"); |
56 | property_set("ro.vendor.product.device", "OnePlus7ProNR"); |
57 | property_set("ro.display.series", "OnePlus 7 Pro 5G"); |
58 | } |
59 | |
9461b777 |
60 | void load_op7(const char *model) { |
61 | property_set("ro.product.model", model); |
7c95fb05 |
62 | property_set("ro.product.name", "OnePlus7"); |
9461b777 |
63 | property_set("ro.build.product", "OnePlus7"); |
64 | property_set("ro.product.device", "OnePlus7"); |
65 | property_set("ro.vendor.product.device", "OnePlus7"); |
66 | property_set("ro.display.series", "OnePlus 7"); |
67 | } |
68 | |
e93a0c47 |
69 | void vendor_load_properties() { |
9461b777 |
70 | int project_name = stoi(android::base::GetProperty("ro.boot.project_name", "")); |
e93a0c47 |
71 | int rf_version = stoi(android::base::GetProperty("ro.boot.rf_version", "")); |
9461b777 |
72 | switch(project_name){ |
73 | case 18821: |
74 | switch (rf_version){ |
75 | case 1: |
76 | /* China*/ |
77 | load_op7pro("GM1910"); |
78 | break; |
79 | case 3: |
80 | /* India*/ |
81 | load_op7pro("GM1911"); |
82 | break; |
83 | case 4: |
84 | /* Europe */ |
85 | load_op7pro("GM1913"); |
86 | break; |
87 | case 5: |
88 | /* Global / US Unlocked */ |
89 | load_op7pro("GM1917"); |
90 | break; |
91 | default: |
92 | /* Generic*/ |
93 | load_op7pro("GM1917"); |
94 | break; |
95 | } |
96 | case 18831: |
97 | /* T-Mobile */ |
98 | load_op7pro("GM1915"); |
99 | break; |
100 | case 18827: |
101 | /* 5g Europe */ |
102 | load_op7pro5g("GM1920"); |
103 | break; |
104 | case 18857: |
105 | switch (rf_version){ |
106 | case 1: |
107 | /* China*/ |
108 | load_op7("GM1900"); |
109 | break; |
110 | case 3: |
111 | /* India*/ |
112 | load_op7("GM1901"); |
113 | break; |
114 | case 4: |
115 | /* Europe */ |
116 | load_op7("GM1903"); |
117 | break; |
118 | case 5: |
119 | /* Global / US Unlocked */ |
120 | load_op7("GM1907"); |
121 | break; |
122 | default: |
123 | /* Generic */ |
124 | load_op7("GM1907"); |
125 | break; |
126 | } |
127 | } |
e93a0c47 |
128 | } |
129 | |
130 | } // namespace init |
131 | } // namespace android |